Arbeite an issue #2: Wenn ein Benutzer gelöscht wird, soll vorher

geprüft werden, ob es eine Ausleihe gibt, in der dieser Benutzer
vorhandne ist. Wenn das der Fall ist, soll in einem JDialog ein User
ausgewählt werden können, auf den alle betroffenen Ausleihen
umgeschrieben werden. Anschließend soll noch einmal geprüft werden, ob
der zu löschende User in Benutzung ist (Rekursion).
This commit is contained in:
Servicepoint
2014-12-03 17:39:38 +01:00
parent 0d02edec31
commit 6dae70df05
3 changed files with 82 additions and 11 deletions

View File

@@ -1,8 +1,11 @@
package de.katho.kBorrow.controller; package de.katho.kBorrow.controller;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import de.katho.kBorrow.data.KLending;
import de.katho.kBorrow.db.DbConnector; import de.katho.kBorrow.db.DbConnector;
import de.katho.kBorrow.models.LendingTableModel;
import de.katho.kBorrow.models.UserTableModel; import de.katho.kBorrow.models.UserTableModel;
import de.katho.kBorrow.models.UserListModel; import de.katho.kBorrow.models.UserListModel;
@@ -11,11 +14,13 @@ public class UserController {
private DbConnector dbCon; private DbConnector dbCon;
private UserTableModel userTableModel; private UserTableModel userTableModel;
private UserListModel userListModel; private UserListModel userListModel;
private LendingTableModel lendingTableModel;
public UserController(DbConnector pDbCon, HashMap<String, Object> pModels) { public UserController(DbConnector pDbCon, HashMap<String, Object> pModels) {
dbCon = pDbCon; dbCon = pDbCon;
userTableModel = (UserTableModel)pModels.get("usertablemodel"); userTableModel = (UserTableModel)pModels.get("usertablemodel");
userListModel = (UserListModel)pModels.get("userlistmodel"); userListModel = (UserListModel)pModels.get("userlistmodel");
lendingTableModel = (LendingTableModel)pModels.get("lendingtablemodel");
} }
public int createUser(String pName, String pSurname){ public int createUser(String pName, String pSurname){
@@ -41,6 +46,20 @@ public class UserController {
public boolean deleteUser(int pRow){ public boolean deleteUser(int pRow){
int id = userTableModel.getUserByRow(pRow).getId(); int id = userTableModel.getUserByRow(pRow).getId();
boolean isOccupied = false;
ArrayList<KLending> 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)){ if(dbCon.deleteUser(id)){
userTableModel.updateModel(); userTableModel.updateModel();
userListModel.updateModel(); userListModel.updateModel();
@@ -49,5 +68,6 @@ public class UserController {
} }
return false; return false;
} }
}
} }

View File

@@ -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);
}
}
}
}

View File

@@ -79,7 +79,6 @@ public class LendingTableModel extends AbstractTableModel {
} }
} }
// Die Funktion muss differenzierter werden
public boolean isCellEditable(int row, int col){ public boolean isCellEditable(int row, int col){
if (col > 4) return true; if (col > 4) return true;
return false; return false;
@@ -101,4 +100,8 @@ public class LendingTableModel extends AbstractTableModel {
return null; return null;
} }
public ArrayList<KLending> getLendingList(){
return data;
}
} }