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:
@@ -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<String, Object> 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<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)){
|
||||
userTableModel.updateModel();
|
||||
userListModel.updateModel();
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
48
src/de/katho/kBorrow/gui/RewriteToNewUserDialog.java
Normal file
48
src/de/katho/kBorrow/gui/RewriteToNewUserDialog.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<KLending> getLendingList(){
|
||||
return data;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user