Skip to content

Commit

Permalink
FLAT-005B Created roommate overview [CM,PM] #40
Browse files Browse the repository at this point in the history
  • Loading branch information
petritz committed Apr 29, 2020
1 parent d6304ad commit 5d2b0a1
Show file tree
Hide file tree
Showing 17 changed files with 547 additions and 94 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -116,4 +116,5 @@ hs_err_pid*
# End of https://www.gitignore.io/api/java,intellij+all

flat.db
target/
target/
flat_*.db
4 changes: 2 additions & 2 deletions src/main/java/at/tugraz/asdafternoon3/DatabaseSample.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ private void createSample() {

System.out.println("created id " + flat.getId());

Roommate r1 = new Roommate("Anna", flat);
Roommate r2 = new Roommate("Paul", flat);
Roommate r1 = new Roommate("Anna", 12, flat);
Roommate r2 = new Roommate("Paul", 22, flat);

session.persist(r1);
session.persist(r2);
Expand Down
7 changes: 5 additions & 2 deletions src/main/java/at/tugraz/asdafternoon3/FlatApplication.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package at.tugraz.asdafternoon3;

import at.tugraz.asdafternoon3.businesslogic.DAO;
import at.tugraz.asdafternoon3.businesslogic.FlatDAO;
import at.tugraz.asdafternoon3.data.Flat;
import at.tugraz.asdafternoon3.database.DatabaseConnection;
Expand Down Expand Up @@ -30,12 +31,14 @@ public FlatApplication() {
this.frame = new JFrame("Flat Application");

// Check if a flat is existing
long flatEntryCount = DatabaseConnection.getInstance().createDao(FlatDAO.class).count();
FlatDAO flatDao = DatabaseConnection.getInstance().createDao(FlatDAO.class);
long flatEntryCount = flatDao.count();

if (flatEntryCount == 0) {
frame.setContentPane(new CreateFlatUI().getContentPane());
} else {
frame.setContentPane(new FlatOverview().getContentPane());
Flat flat = flatDao.getCurrentFlat();
frame.setContentPane(new FlatOverview(flat).getContentPane());
}

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/at/tugraz/asdafternoon3/businesslogic/DAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ public Session openSession() {
* @throws Exception if there a fetch problems
*/
public abstract Long count() throws Exception;

public abstract void delete(T object) throws Exception;
}

/*
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/at/tugraz/asdafternoon3/businesslogic/FlatDAO.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package at.tugraz.asdafternoon3.businesslogic;

import at.tugraz.asdafternoon3.data.Flat;
import at.tugraz.asdafternoon3.data.Roommate;
import at.tugraz.asdafternoon3.database.DatabaseConnection;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
Expand All @@ -11,6 +13,7 @@
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.util.List;
import java.util.Set;

public class FlatDAO extends DAO<Flat> {

Expand Down Expand Up @@ -97,6 +100,15 @@ public Long count() throws Exception {
}
}

@Override
public void delete(Flat object) throws Exception {
try (Session session = openSession()) {
Transaction t = session.beginTransaction();
session.delete(object);
t.commit();
}
}

public Flat getCurrentFlat() throws Exception {
try (Session session = openSession()) {
CriteriaBuilder cb = session.getCriteriaBuilder();
Expand Down Expand Up @@ -128,4 +140,16 @@ private void ensureUniqueCurrentFlat(Flat flat) throws Exception {
}
}
}

public List<Roommate> getRoommates(Flat flat) {
try (Session session = openSession()) {
CriteriaBuilder cb = session.getCriteriaBuilder();
CriteriaQuery<Roommate> cr = cb.createQuery(Roommate.class);
Root<Roommate> root = cr.from(Roommate.class);
cr.select(root);
cr.where(cb.equal(root.get("flat"), flat));
Query<Roommate> query = session.createQuery(cr);
return query.getResultList();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,17 @@ public Roommate create(Roommate object) throws Exception {

@Override
public Roommate update(Roommate object) throws Exception {
throw new UnsupportedOperationException("Not implemented yet");
if (!validate(object)) {
return null;
}

try (Session session = openSession()) {
Transaction t = session.beginTransaction();
session.merge(object);
t.commit();
}

return object;
}

@Override
Expand All @@ -79,4 +89,13 @@ public Long count() throws Exception {
return query.getSingleResult();
}
}

@Override
public void delete(Roommate object) throws Exception {
try (Session session = openSession()) {
Transaction t = session.beginTransaction();
session.delete(object);
t.commit();
}
}
}
4 changes: 2 additions & 2 deletions src/main/java/at/tugraz/asdafternoon3/data/Flat.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public class Flat extends DatabaseObject {
private String name;

@Column
private int size;
private Integer size;

@Column
private String address;
Expand Down Expand Up @@ -44,7 +44,7 @@ public String getName() {
return name;
}

public int getSize() {
public Integer getSize() {
return size;
}

Expand Down
19 changes: 18 additions & 1 deletion src/main/java/at/tugraz/asdafternoon3/data/Roommate.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,23 @@ public class Roommate extends DatabaseObject {
@Column
private String name;

@Column
private Integer age;

@ManyToOne
@JoinColumn(nullable = false)
private Flat flat;

public Roommate() {
this.name = "";
this.id = 0;
this.age = 0;
this.flat = null;
}

public Roommate(String name, Flat flat) {
public Roommate(String name, Integer age, Flat flat) {
this.name = name;
this.age = age;
this.flat = flat;
}

Expand All @@ -39,6 +44,18 @@ public int getId() {
return id;
}

public Integer getAge() {
return age;
}

public void setName(String name) {
this.name = name;
}

public void setAge(Integer age) {
this.age = age;
}

@Override
public String toString() {
return "Roommate{" +
Expand Down
13 changes: 2 additions & 11 deletions src/main/java/at/tugraz/asdafternoon3/ui/CreateFlatUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,26 +48,17 @@ private void createFlat() {

if (!creator.validate(newFlat)) {
JOptionPane.showMessageDialog(contentPane, "Flat data is not valid");
}
else {
} else {
newFlat = creator.create(newFlat);
JOptionPane.showMessageDialog(contentPane, "Created flat with id " + newFlat.getId());
FlatApplication.get().setContentPane(new FlatOverview().getContentPane());
FlatApplication.get().setContentPane(new FlatOverview(newFlat).getContentPane());
}
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(contentPane, "Could not create flat");
}
}

public static void main(String[] args) {
JFrame frame = new JFrame("MainUI");
frame.setContentPane(new CreateFlatUI().contentPane);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}

public JPanel getContentPane() {
return contentPane;
}
Expand Down
18 changes: 2 additions & 16 deletions src/main/java/at/tugraz/asdafternoon3/ui/FlatList.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,12 @@

import at.tugraz.asdafternoon3.businesslogic.FlatDAO;
import at.tugraz.asdafternoon3.database.DatabaseConnection;
import at.tugraz.asdafternoon3.ui.table.FlatTableModel;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;

import javax.swing.*;
import java.awt.*;
import java.sql.SQLException;
import javax.swing.table.DefaultTableModel;

public class FlatList {

Expand All @@ -18,7 +16,7 @@ public class FlatList {

public FlatList() {
try {
FlatModel model = new FlatModel(DatabaseConnection.getInstance().createDao(FlatDAO.class).getAll());
FlatTableModel model = new FlatTableModel(DatabaseConnection.getInstance().createDao(FlatDAO.class).getAll());
flatTable.setModel(model);
} catch (Exception e) {
// TODO
Expand All @@ -34,17 +32,6 @@ public JPanel getContentPane() {
return contentPane;
}

public static void main(String[] args) {

JFrame frame = new JFrame("FlatList");
FlatList overview = new FlatList();

frame.setContentPane(overview.contentPane);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}

{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
Expand Down Expand Up @@ -103,5 +90,4 @@ public static void main(String[] args) {
public JComponent $$$getRootComponent$$$() {
return contentPane;
}

}
2 changes: 1 addition & 1 deletion src/main/java/at/tugraz/asdafternoon3/ui/FlatOverview.form
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@
<text value="Finance flat"/>
</properties>
</component>
<component id="6d577" class="javax.swing.JButton" binding="button1" default-binding="true">
<component id="6d577" class="javax.swing.JButton" binding="roomMateButton">
<constraints>
<grid row="1" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
Expand Down
59 changes: 23 additions & 36 deletions src/main/java/at/tugraz/asdafternoon3/ui/FlatOverview.java
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
package at.tugraz.asdafternoon3.ui;

import at.tugraz.asdafternoon3.FlatApplication;
import at.tugraz.asdafternoon3.data.Flat;
import at.tugraz.asdafternoon3.database.DatabaseConnection;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import jdk.dynalink.StandardNamespace;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class FlatOverview {
private JPanel contentPane;
private JPanel main;
private JPanel BasicOverview;
private JPanel Navigation;
private JButton button1;
private JButton roomMateButton;
private JButton shoppingListButton;
private JButton cleaningScheduleButton;
private JButton financeFurnitureAndEquipmentButton;
Expand All @@ -24,24 +25,27 @@ public class FlatOverview {
private JTextArea taSize;
private JTextArea taAddress;

public FlatOverview()
{
setFlatInformation();
}
public FlatOverview(Flat flat) {
setFlatInformation(flat);

public static void main(String[] args) {
JFrame frame = new JFrame("FlatOverview");
FlatOverview overview = new FlatOverview();
frame.setContentPane(overview.contentPane);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
roomMateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
FlatApplication.get().setContentPane(new RoommateOverview(flat).getContentPane());
}
});
}

public JPanel getContentPane() {
return contentPane;
}

public void setFlatInformation(Flat flat) {
taName.setText(flat.getName());
taAddress.setText(flat.getAddress());
taSize.setText(flat.getSize().toString());
}

{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
Expand Down Expand Up @@ -134,11 +138,11 @@ public JPanel getContentPane() {
financeFlatButton.setForeground(new Color(-1));
financeFlatButton.setText("Finance flat");
Navigation.add(financeFlatButton, new GridConstraints(9, 1, 1, 2, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
button1 = new JButton();
button1.setBackground(new Color(-12816512));
button1.setForeground(new Color(-1));
button1.setText("Roommates");
Navigation.add(button1, new GridConstraints(1, 1, 1, 2, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
roomMateButton = new JButton();
roomMateButton.setBackground(new Color(-12816512));
roomMateButton.setForeground(new Color(-1));
roomMateButton.setText("Roommates");
Navigation.add(roomMateButton, new GridConstraints(1, 1, 1, 2, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final Spacer spacer7 = new Spacer();
Navigation.add(spacer7, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 5, false));
final Spacer spacer8 = new Spacer();
Expand Down Expand Up @@ -182,21 +186,4 @@ public JPanel getContentPane() {
public JComponent $$$getRootComponent$$$() {
return contentPane;
}

public void setFlatInformation()
{
/*try
{
Dao<Flat, Integer> dao = DatabaseConnection.getInstance().getFlatDao();
Flat flat = dao.queryForId(1);
taName.setText(flat.getName());
taAddress.setText(flat.getAddress());
taSize.setText(String.format("%d", flat.getSize()));
}
catch (Exception e)
{
JOptionPane.showMessageDialog(contentPane, "Could not find flat");
}*/
}

}
Loading

0 comments on commit 5d2b0a1

Please sign in to comment.