diff --git a/src/de/katho/kBorrow/controller/UserController.java b/src/de/katho/kBorrow/controller/UserController.java index d8250f9..824872d 100644 --- a/src/de/katho/kBorrow/controller/UserController.java +++ b/src/de/katho/kBorrow/controller/UserController.java @@ -1,8 +1,11 @@ package de.katho.kBorrow.controller; +import java.util.ArrayList; import java.util.HashMap; +import de.katho.kBorrow.data.KLending; import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.models.LendingTableModel; import de.katho.kBorrow.models.UserTableModel; import de.katho.kBorrow.models.UserListModel; @@ -11,11 +14,13 @@ public class UserController { private DbConnector dbCon; private UserTableModel userTableModel; private UserListModel userListModel; + private LendingTableModel lendingTableModel; public UserController(DbConnector pDbCon, HashMap pModels) { dbCon = pDbCon; userTableModel = (UserTableModel)pModels.get("usertablemodel"); userListModel = (UserListModel)pModels.get("userlistmodel"); + lendingTableModel = (LendingTableModel)pModels.get("lendingtablemodel"); } public int createUser(String pName, String pSurname){ @@ -41,13 +46,28 @@ public class UserController { public boolean deleteUser(int pRow){ int id = userTableModel.getUserByRow(pRow).getId(); - if(dbCon.deleteUser(id)){ - userTableModel.updateModel(); - userListModel.updateModel(); - - return true; + boolean isOccupied = false; + ArrayList lendingList = lendingTableModel.getLendingList(); + for(KLending elem : lendingList){ + if(elem.getUserId() == id){ + isOccupied = true; + break; + } + } + + if(isOccupied){ + //select und rewrite + return deleteUser(pRow); + } + else { + if(dbCon.deleteUser(id)){ + userTableModel.updateModel(); + userListModel.updateModel(); + + return true; + } + return false; } - return false; } } diff --git a/src/de/katho/kBorrow/gui/RewriteToNewUserDialog.java b/src/de/katho/kBorrow/gui/RewriteToNewUserDialog.java new file mode 100644 index 0000000..77c85aa --- /dev/null +++ b/src/de/katho/kBorrow/gui/RewriteToNewUserDialog.java @@ -0,0 +1,48 @@ +package de.katho.kBorrow.gui; + +import java.awt.BorderLayout; +import java.awt.FlowLayout; + +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JPanel; +import javax.swing.border.EmptyBorder; + +public class RewriteToNewUserDialog extends JDialog { + + /** + * + */ + private static final long serialVersionUID = -6002073589194176368L; + private final JPanel contentPanel = new JPanel(); + + /** + * Create the dialog. + */ + public RewriteToNewUserDialog() { + setBounds(100, 100, 450, 300); + setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); + getContentPane().setLayout(new BorderLayout()); + setVisible(true); + contentPanel.setLayout(new FlowLayout()); + contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); + getContentPane().add(contentPanel, BorderLayout.CENTER); + { + JPanel buttonPane = new JPanel(); + buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); + getContentPane().add(buttonPane, BorderLayout.SOUTH); + { + JButton okButton = new JButton("OK"); + okButton.setActionCommand("OK"); + buttonPane.add(okButton); + getRootPane().setDefaultButton(okButton); + } + { + JButton cancelButton = new JButton("Cancel"); + cancelButton.setActionCommand("Cancel"); + buttonPane.add(cancelButton); + } + } + } + +} diff --git a/src/de/katho/kBorrow/models/LendingTableModel.java b/src/de/katho/kBorrow/models/LendingTableModel.java index 1ce4101..da80c44 100644 --- a/src/de/katho/kBorrow/models/LendingTableModel.java +++ b/src/de/katho/kBorrow/models/LendingTableModel.java @@ -79,11 +79,10 @@ public class LendingTableModel extends AbstractTableModel { } } - // Die Funktion muss differenzierter werden - public boolean isCellEditable(int row, int col){ - if (col > 4) return true; - return false; - } + public boolean isCellEditable(int row, int col){ + if (col > 4) return true; + return false; + } public void updateModel(){ data = dbCon.getActiveLendingList(); @@ -100,5 +99,9 @@ public class LendingTableModel extends AbstractTableModel { } return null; } + + public ArrayList getLendingList(){ + return data; + } }