Add cottage list GUI
This commit is contained in:
parent
e8067d46a8
commit
abdfd1a3b2
6 changed files with 250 additions and 34 deletions
|
@ -1,12 +1,16 @@
|
|||
package DB;
|
||||
|
||||
import Objects.Cottage;
|
||||
import Objects.Owner;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Request {
|
||||
public static Owner getOwner(String lastName, String zip) {
|
||||
Owner owner = null;
|
||||
Connection c = Connexion.getConnexion();
|
||||
try {
|
||||
PreparedStatement ps = c.prepareStatement("SELECT IDPROPRIO, PRENOMPROPRIO, NOMPROPRIO, ADPROPRIO, CPPROPRIO, VILLEPROPRIO FROM PROPRIETAIRE WHERE NOMPROPRIO = ? AND CPPROPRIO = ?");
|
||||
|
@ -15,17 +19,47 @@ public class Request {
|
|||
if (ps.execute()) {
|
||||
ResultSet rs = ps.getResultSet();
|
||||
if (rs.next())
|
||||
return new Owner(rs.getInt("IDPROPRIO"),
|
||||
owner = new Owner(rs.getInt("IDPROPRIO"),
|
||||
rs.getString("PRENOMPROPRIO"),
|
||||
rs.getString("NOMPROPRIO"),
|
||||
rs.getString("ADPROPRIO"),
|
||||
rs.getString("CPPROPRIO"),
|
||||
rs.getString("VILLEPROPRIO"));
|
||||
}
|
||||
return null;
|
||||
ps.close();
|
||||
c.close();
|
||||
} catch (SQLException e) {
|
||||
System.err.println(e);
|
||||
JOptionPane.showMessageDialog(null, "Error when query owner !");
|
||||
return null;
|
||||
}
|
||||
return owner;
|
||||
}
|
||||
|
||||
public static List<Cottage> getCottages(Owner owner) {
|
||||
List<Cottage> cottages = new ArrayList<>();
|
||||
Connection c = Connexion.getConnexion();
|
||||
try {
|
||||
PreparedStatement ps = c.prepareStatement("SELECT IDGITE, NOMGITE, ADGITE, CPGITE, VILLEGITE, NBPLACES, NBCHAMBRES, SURFACE, PRIX FROM GITE WHERE IDPROPRIO = ?");
|
||||
ps.setInt(1, owner.getId());
|
||||
if (ps.execute()) {
|
||||
for (ResultSet rs = ps.getResultSet(); rs.next(); )
|
||||
cottages.add(new Cottage(rs.getInt("IDGITE"),
|
||||
rs.getString("NOMGITE"),
|
||||
rs.getString("ADGITE"),
|
||||
rs.getString("CPGITE"),
|
||||
rs.getString("VILLEGITE"),
|
||||
rs.getInt("NBPLACES"),
|
||||
rs.getInt("NBCHAMBRES"),
|
||||
rs.getInt("SURFACE"),
|
||||
rs.getInt("PRIX"),
|
||||
owner));
|
||||
}
|
||||
ps.close();
|
||||
c.close();
|
||||
} catch (SQLException e) {
|
||||
System.err.println(e);
|
||||
JOptionPane.showMessageDialog(null, "Error when query cottages !");
|
||||
}
|
||||
return cottages;
|
||||
}
|
||||
}
|
||||
|
|
63
src/GUI/ListCottageGUI.form
Normal file
63
src/GUI/ListCottageGUI.form
Normal file
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="GUI.ListCottageGUI">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="297"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="e3588" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="5723f" class="javax.swing.JButton" binding="exitButton">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Exit"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="51ebf" class="javax.swing.JButton" binding="actionButton" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<enabled value="false"/>
|
||||
<text value="Action"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<scrollpane id="c326d">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="39c0c" class="javax.swing.JList" binding="cottageList">
|
||||
<constraints/>
|
||||
<properties/>
|
||||
</component>
|
||||
</children>
|
||||
</scrollpane>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
59
src/GUI/ListCottageGUI.java
Normal file
59
src/GUI/ListCottageGUI.java
Normal file
|
@ -0,0 +1,59 @@
|
|||
package GUI;
|
||||
|
||||
import DB.Request;
|
||||
import Objects.Cottage;
|
||||
import Objects.Owner;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.*;
|
||||
|
||||
public class ListCottageGUI extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton exitButton;
|
||||
private JList cottageList;
|
||||
private JButton actionButton;
|
||||
|
||||
public ListCottageGUI(Owner owner) {
|
||||
setTitle("List cottage");
|
||||
setLocationRelativeTo(null);
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(actionButton);
|
||||
fillCottageList(owner);
|
||||
|
||||
actionButton.addActionListener(actionEvent -> onAction());
|
||||
|
||||
exitButton.addActionListener(actionEvent -> onExit());
|
||||
|
||||
// call onCancel() when cross is clicked
|
||||
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
|
||||
addWindowListener(new WindowAdapter() {
|
||||
public void windowClosing(WindowEvent e) {
|
||||
onExit();
|
||||
}
|
||||
});
|
||||
|
||||
// call onCancel() on ESCAPE
|
||||
contentPane.registerKeyboardAction(actionEvent -> onExit(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
|
||||
pack();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private void onAction() {
|
||||
// add your code here
|
||||
dispose();
|
||||
}
|
||||
|
||||
private void onExit() {
|
||||
// add your code here if necessary
|
||||
dispose();
|
||||
}
|
||||
|
||||
private void fillCottageList(Owner owner) {
|
||||
DefaultListModel listModel = new DefaultListModel();
|
||||
for (Cottage c: Request.getCottages(owner))
|
||||
listModel.addElement(c);
|
||||
|
||||
cottageList.setModel(listModel);
|
||||
}
|
||||
}
|
|
@ -21,7 +21,7 @@
|
|||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
</hspacer>
|
||||
<grid id="9538f" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="true" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<grid id="9538f" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
|
@ -29,20 +29,20 @@
|
|||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<component id="5723f" class="javax.swing.JButton" binding="cancelButton">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="OK"/>
|
||||
<text value="Cancel"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="5723f" class="javax.swing.JButton" binding="buttonCancel">
|
||||
<component id="e7465" class="javax.swing.JButton" binding="logginButton">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Cancel"/>
|
||||
<text value="Login"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
|
|
|
@ -8,27 +8,21 @@ import java.awt.event.*;
|
|||
|
||||
public class LoginGUI extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JButton buttonCancel;
|
||||
private JButton logginButton;
|
||||
private JButton cancelButton;
|
||||
private JTextField lastNameField;
|
||||
private JTextField zipField;
|
||||
|
||||
public LoginGUI() {
|
||||
setTitle("Login");
|
||||
setLocationRelativeTo(null);
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
getRootPane().setDefaultButton(logginButton);
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
logginButton.addActionListener(actionEvent -> onLogin());
|
||||
|
||||
buttonCancel.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onCancel();
|
||||
}
|
||||
});
|
||||
cancelButton.addActionListener(actionEvent -> onCancel());
|
||||
|
||||
// call onCancel() when cross is clicked
|
||||
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
|
||||
|
@ -39,20 +33,17 @@ public class LoginGUI extends JDialog {
|
|||
});
|
||||
|
||||
// call onCancel() on ESCAPE
|
||||
contentPane.registerKeyboardAction(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onCancel();
|
||||
}
|
||||
}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
|
||||
contentPane.registerKeyboardAction(actionEvent -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
|
||||
pack();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
private void onLogin() {
|
||||
Owner owner = Request.getOwner(lastNameField.getText(), zipField.getText());
|
||||
if (owner != null) {
|
||||
System.out.println(owner);
|
||||
dispose();
|
||||
}
|
||||
else
|
||||
new ListCottageGUI(owner);
|
||||
} else
|
||||
JOptionPane.showMessageDialog(null, "Invalid login !");
|
||||
}
|
||||
|
||||
|
@ -62,9 +53,6 @@ public class LoginGUI extends JDialog {
|
|||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
LoginGUI dialog = new LoginGUI();
|
||||
dialog.pack();
|
||||
dialog.setVisible(true);
|
||||
System.exit(0);
|
||||
new LoginGUI();
|
||||
}
|
||||
}
|
||||
|
|
72
src/Objects/Cottage.java
Normal file
72
src/Objects/Cottage.java
Normal file
|
@ -0,0 +1,72 @@
|
|||
package Objects;
|
||||
|
||||
public class Cottage {
|
||||
private int id;
|
||||
private String name;
|
||||
private String address;
|
||||
private String zip;
|
||||
private String city;
|
||||
private int numberPlaces;
|
||||
private int numberBedrooms;
|
||||
private int area;
|
||||
private int price;
|
||||
private Owner owner;
|
||||
|
||||
public Cottage(int id, String name, String address, String zip, String city, int numberPlaces, int numberBedrooms, int area, int price, Owner owner) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.address = address;
|
||||
this.zip = zip;
|
||||
this.city = city;
|
||||
this.numberPlaces = numberPlaces;
|
||||
this.numberBedrooms = numberBedrooms;
|
||||
this.area = area;
|
||||
this.price = price;
|
||||
this.owner = owner;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public String getZip() {
|
||||
return zip;
|
||||
}
|
||||
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
public int getNumberPlaces() {
|
||||
return numberPlaces;
|
||||
}
|
||||
|
||||
public int getNumberBedrooms() {
|
||||
return numberBedrooms;
|
||||
}
|
||||
|
||||
public int getArea() {
|
||||
return area;
|
||||
}
|
||||
|
||||
public int getPrice() {
|
||||
return price;
|
||||
}
|
||||
|
||||
public Owner getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "N°" + id + " " + name + " " + address + ", " + zip + ", " + city + ". places: " + numberPlaces + ", bedrooms: " + numberBedrooms + ", area: " + area + ", price:" + price + ", id owner: " + owner.getId();
|
||||
}
|
||||
}
|
Reference in a new issue