diff --git a/kBorrow.ucls b/kBorrow.ucls index d0f13b6..b81e8ce 100644 --- a/kBorrow.ucls +++ b/kBorrow.ucls @@ -10,8 +10,8 @@ - + @@ -19,8 +19,8 @@ - + @@ -163,8 +163,8 @@ - + @@ -181,126 +181,114 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + + + + + + - + + + + + + + + + + + + + + + + + - - - - - - - + + + + - + - - - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + - - - - - + - + - + diff --git a/src/de/katho/kBorrow/controller/ArticleController.java b/src/de/katho/kBorrow/controller/ArticleController.java index 1e44d14..fe6ac0e 100644 --- a/src/de/katho/kBorrow/controller/ArticleController.java +++ b/src/de/katho/kBorrow/controller/ArticleController.java @@ -2,7 +2,8 @@ package de.katho.kBorrow.controller; import java.util.HashMap; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.models.ArticleTableModel; import de.katho.kBorrow.models.FreeArticleTableModel; @@ -11,10 +12,10 @@ public class ArticleController { private ArticleTableModel articleTableModel; private FreeArticleTableModel freeArticleTableModel; - public ArticleController(DbConnector pDbCon, HashMap pModels){ + public ArticleController(DbConnector pDbCon, HashMap models){ dbCon = pDbCon; - articleTableModel = (ArticleTableModel)pModels.get("articletablemodel"); - freeArticleTableModel = (FreeArticleTableModel)pModels.get("freearticletablemodel"); + articleTableModel = (ArticleTableModel)models.get("articletablemodel"); + freeArticleTableModel = (FreeArticleTableModel)models.get("freearticletablemodel"); } /** diff --git a/src/de/katho/kBorrow/controller/ManageLendingsController.java b/src/de/katho/kBorrow/controller/ManageLendingsController.java index 7a585b2..736b375 100644 --- a/src/de/katho/kBorrow/controller/ManageLendingsController.java +++ b/src/de/katho/kBorrow/controller/ManageLendingsController.java @@ -3,8 +3,9 @@ package de.katho.kBorrow.controller; import java.util.HashMap; import de.katho.kBorrow.Util; -import de.katho.kBorrow.data.KLending; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.objects.KLending; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.models.ArticleTableModel; import de.katho.kBorrow.models.FreeArticleTableModel; import de.katho.kBorrow.models.LendingTableModel; @@ -16,12 +17,12 @@ public class ManageLendingsController { private ArticleTableModel articleTableModel; private LendingTableModel lendingTableModel; - public ManageLendingsController(DbConnector pDbCon, HashMap pModels){ + public ManageLendingsController(DbConnector pDbCon, HashMap models){ dbCon = pDbCon; - freeArticleTableModel = (FreeArticleTableModel)pModels.get("freearticletablemodel"); - articleTableModel = (ArticleTableModel)pModels.get("articletablemodel"); - lendingTableModel = (LendingTableModel)pModels.get("lendingtablemodel"); + freeArticleTableModel = (FreeArticleTableModel)models.get("freearticletablemodel"); + articleTableModel = (ArticleTableModel)models.get("articletablemodel"); + lendingTableModel = (LendingTableModel)models.get("lendingtablemodel"); } public void returnLending(int pRow) { diff --git a/src/de/katho/kBorrow/controller/NewLendingController.java b/src/de/katho/kBorrow/controller/NewLendingController.java index 5947339..8a6c94d 100644 --- a/src/de/katho/kBorrow/controller/NewLendingController.java +++ b/src/de/katho/kBorrow/controller/NewLendingController.java @@ -19,11 +19,12 @@ import java.util.HashMap; import de.katho.kBorrow.Settings; import de.katho.kBorrow.Util; -import de.katho.kBorrow.data.KArticle; -import de.katho.kBorrow.data.KLender; -import de.katho.kBorrow.data.KLending; -import de.katho.kBorrow.data.KUser; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.data.objects.KLender; +import de.katho.kBorrow.data.objects.KLending; +import de.katho.kBorrow.data.objects.KUser; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.models.ArticleTableModel; import de.katho.kBorrow.models.FreeArticleTableModel; import de.katho.kBorrow.models.LenderModel; @@ -39,13 +40,13 @@ public class NewLendingController { private ArticleTableModel articleTableModel; private Settings settings; - public NewLendingController(DbConnector pDbCon, HashMap pModels, final Settings pSettings){ + public NewLendingController(DbConnector pDbCon, HashMap models, final Settings pSettings){ dbCon = pDbCon; - userListModel = (UserListModel)pModels.get("userlistmodel"); - lenderModel = (LenderModel)pModels.get("lendermodel"); - freeArticleModel = (FreeArticleTableModel)pModels.get("freearticletablemodel"); - articleTableModel = (ArticleTableModel)pModels.get("articletablemodel"); - lendingTableModel = (LendingTableModel)pModels.get("lendingtablemodel"); + userListModel = (UserListModel)models.get("userlistmodel"); + lenderModel = (LenderModel)models.get("lendermodel"); + freeArticleModel = (FreeArticleTableModel)models.get("freearticletablemodel"); + articleTableModel = (ArticleTableModel)models.get("articletablemodel"); + lendingTableModel = (LendingTableModel)models.get("lendingtablemodel"); settings = pSettings; } diff --git a/src/de/katho/kBorrow/controller/RewriteToNewUserController.java b/src/de/katho/kBorrow/controller/RewriteToNewUserController.java index 82f9d54..a625ce5 100644 --- a/src/de/katho/kBorrow/controller/RewriteToNewUserController.java +++ b/src/de/katho/kBorrow/controller/RewriteToNewUserController.java @@ -1,6 +1,6 @@ package de.katho.kBorrow.controller; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.interfaces.DbConnector; public class RewriteToNewUserController { diff --git a/src/de/katho/kBorrow/controller/UserController.java b/src/de/katho/kBorrow/controller/UserController.java index a8aa84f..afaecc4 100644 --- a/src/de/katho/kBorrow/controller/UserController.java +++ b/src/de/katho/kBorrow/controller/UserController.java @@ -2,33 +2,31 @@ package de.katho.kBorrow.controller; import java.util.ArrayList; import java.util.HashMap; +import java.util.logging.Level; -import de.katho.kBorrow.data.KLending; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.KLogger; +import de.katho.kBorrow.data.KLendingModel; +import de.katho.kBorrow.data.objects.KLending; import de.katho.kBorrow.gui.RewriteToNewUserDialog; -import de.katho.kBorrow.models.LendingTableModel; -import de.katho.kBorrow.models.UserTableModel; -import de.katho.kBorrow.models.UserListModel; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; public class UserController { private DbConnector dbCon; - private UserTableModel userTableModel; - private UserListModel userListModel; - private LendingTableModel lendingTableModel; + private KDataModel userModel; + private KDataModel lendingModel; - public UserController(DbConnector pDbCon, HashMap pModels) { + public UserController(DbConnector pDbCon, HashMap models) { dbCon = pDbCon; - userTableModel = (UserTableModel)pModels.get("usertablemodel"); - userListModel = (UserListModel)pModels.get("userlistmodel"); - lendingTableModel = (LendingTableModel)pModels.get("lendingtablemodel"); + userModel = models.get("kusermodel"); + lendingModel = models.get("klendingmodel"); } public int createUser(String pName, String pSurname){ int status = dbCon.createUser(pName, pSurname); - userTableModel.updateModel(); - userListModel.updateModel(); + userModel.updateModel(); return status; } @@ -37,42 +35,43 @@ public class UserController { int status = dbCon.editUser(pId, pName, pSurname); if(status == 0){ - userTableModel.updateModel(); - userListModel.updateModel(); + userModel.updateModel(); } return status; } - public boolean deleteUser(int pRow) { - int id = userTableModel.getUserByRow(pRow).getId(); + public boolean deleteUser(int pId) { + if(!(lendingModel instanceof KLendingModel)) { + KLogger.log(Level.SEVERE, "UserController: lendingModel type error!", new Exception("UserController: lendingModel type error!")); + return false; + } boolean isOccupied = false; - ArrayList lendingList = lendingTableModel.getLendingList(); + + ArrayList lendingList = ((KLendingModel)lendingModel).getData(); for(KLending elem : lendingList){ - if(elem.getUserId() == id){ + if(elem.getUserId() == pId){ isOccupied = true; break; } } if(isOccupied){ - RewriteToNewUserDialog dialog = new RewriteToNewUserDialog(id, dbCon); + RewriteToNewUserDialog dialog = new RewriteToNewUserDialog(pId, dbCon); if(dialog.getResult() == 0){ - lendingTableModel.updateModel(); - userTableModel.updateModel(); - userListModel.updateModel(); + lendingModel.updateModel(); + userModel.updateModel(); - return deleteUser(pRow); + return deleteUser(pId); } else return false; } else { - if(dbCon.deleteUser(id)){ - userTableModel.updateModel(); - userListModel.updateModel(); - lendingTableModel.updateModel(); + if(dbCon.deleteUser(pId)){ + userModel.updateModel(); + lendingModel.updateModel(); return true; } diff --git a/src/de/katho/kBorrow/converter/LenderNameConverter.java b/src/de/katho/kBorrow/converter/LenderNameConverter.java index bfea559..d7605cd 100644 --- a/src/de/katho/kBorrow/converter/LenderNameConverter.java +++ b/src/de/katho/kBorrow/converter/LenderNameConverter.java @@ -2,7 +2,7 @@ package de.katho.kBorrow.converter; import org.jdesktop.swingx.autocomplete.ObjectToStringConverter; -import de.katho.kBorrow.data.KLender; +import de.katho.kBorrow.data.objects.KLender; public class LenderNameConverter extends ObjectToStringConverter { diff --git a/src/de/katho/kBorrow/converter/LenderStudentnumberConverter.java b/src/de/katho/kBorrow/converter/LenderStudentnumberConverter.java index 3ccb2af..dca54c2 100644 --- a/src/de/katho/kBorrow/converter/LenderStudentnumberConverter.java +++ b/src/de/katho/kBorrow/converter/LenderStudentnumberConverter.java @@ -2,7 +2,7 @@ package de.katho.kBorrow.converter; import org.jdesktop.swingx.autocomplete.ObjectToStringConverter; -import de.katho.kBorrow.data.KLender; +import de.katho.kBorrow.data.objects.KLender; public class LenderStudentnumberConverter extends ObjectToStringConverter { diff --git a/src/de/katho/kBorrow/converter/LenderSurnameConverter.java b/src/de/katho/kBorrow/converter/LenderSurnameConverter.java index e9cc6ea..51afa3f 100644 --- a/src/de/katho/kBorrow/converter/LenderSurnameConverter.java +++ b/src/de/katho/kBorrow/converter/LenderSurnameConverter.java @@ -2,7 +2,7 @@ package de.katho.kBorrow.converter; import org.jdesktop.swingx.autocomplete.ObjectToStringConverter; -import de.katho.kBorrow.data.KLender; +import de.katho.kBorrow.data.objects.KLender; public class LenderSurnameConverter extends ObjectToStringConverter { diff --git a/src/de/katho/kBorrow/data/KArticleModel.java b/src/de/katho/kBorrow/data/KArticleModel.java new file mode 100644 index 0000000..5d76a50 --- /dev/null +++ b/src/de/katho/kBorrow/data/KArticleModel.java @@ -0,0 +1,45 @@ +package de.katho.kBorrow.data; + +import java.util.ArrayList; + +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; +import de.katho.kBorrow.interfaces.KGuiModel; + +public class KArticleModel implements KDataModel { + + private ArrayList models = new ArrayList(); + private ArrayList data = new ArrayList(); + private DbConnector dbCon; + + public KArticleModel(DbConnector pDbCon) { + dbCon = pDbCon; + updateModel(); + } + + public void register(KGuiModel pModel) { + if(!models.contains(pModel)){ + pModel.fetchData(this); + models.add(pModel); + } + } + + public void updateModel() { + data = dbCon.getArticleList(); + + for(KGuiModel model : models){ + model.fetchData(this); + } + } + + public ArrayList getData() { + return data; + } + + public Object get(int id) { + if(data.size() > id) return data.get(id); + return null; + } + +} diff --git a/src/de/katho/kBorrow/data/KLenderModel.java b/src/de/katho/kBorrow/data/KLenderModel.java new file mode 100644 index 0000000..f523212 --- /dev/null +++ b/src/de/katho/kBorrow/data/KLenderModel.java @@ -0,0 +1,46 @@ +package de.katho.kBorrow.data; + +import java.util.ArrayList; + +import de.katho.kBorrow.data.objects.KLender; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; +import de.katho.kBorrow.interfaces.KGuiModel; + +public class KLenderModel implements KDataModel { + + private ArrayList models = new ArrayList(); + private ArrayList data = new ArrayList(); + private DbConnector dbCon; + + public KLenderModel(DbConnector pDbCon) { + dbCon = pDbCon; + updateModel(); + } + + public void register(KGuiModel pModel) { + if(!models.contains(pModel)){ + pModel.fetchData(this); + models.add(pModel); + } + } + + public void updateModel() { + data = dbCon.getLenderList(); + + for(KGuiModel model : models){ + model.fetchData(this); + } + + } + + public ArrayList getData() { + return data; + } + + public Object get(int id) { + if(data.size() > id) return data.get(id); + return null; + } + +} diff --git a/src/de/katho/kBorrow/data/KLendingModel.java b/src/de/katho/kBorrow/data/KLendingModel.java new file mode 100644 index 0000000..a08b2f8 --- /dev/null +++ b/src/de/katho/kBorrow/data/KLendingModel.java @@ -0,0 +1,46 @@ +package de.katho.kBorrow.data; + +import java.util.ArrayList; + +import de.katho.kBorrow.data.objects.KLending; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; +import de.katho.kBorrow.interfaces.KGuiModel; + +public class KLendingModel implements KDataModel { + + private ArrayList models = new ArrayList(); + private ArrayList data = new ArrayList(); + private DbConnector dbCon; + + public KLendingModel(DbConnector pDbCon) { + dbCon = pDbCon; + updateModel(); + } + + public void register(KGuiModel pModel) { + if(!models.contains(pModel)){ + pModel.fetchData(this); + models.add(pModel); + } + + } + + public void updateModel() { + data = dbCon.getLendingList(); + + for(KGuiModel model : models){ + model.fetchData(this); + } + } + + public ArrayList getData() { + return data; + } + + public Object get(int id) { + if(data.size() > id) return data.get(id); + return null; + } + +} diff --git a/src/de/katho/kBorrow/data/KUserModel.java b/src/de/katho/kBorrow/data/KUserModel.java new file mode 100644 index 0000000..5e947b6 --- /dev/null +++ b/src/de/katho/kBorrow/data/KUserModel.java @@ -0,0 +1,45 @@ +package de.katho.kBorrow.data; + +import java.util.ArrayList; + +import de.katho.kBorrow.data.objects.KUser; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; +import de.katho.kBorrow.interfaces.KGuiModel; + +public class KUserModel implements KDataModel { + + private ArrayList models = new ArrayList(); + private ArrayList data = new ArrayList(); + private DbConnector dbCon; + + public KUserModel(DbConnector pDbCon){ + dbCon = pDbCon; + updateModel(); + } + + public void updateModel(){ + data = dbCon.getUserList(); + + for(KGuiModel model : models){ + model.fetchData(this); + } + } + + public void register(KGuiModel pModel) { + if(!models.contains(pModel)) { + pModel.fetchData(this); + models.add(pModel); + } + } + + public ArrayList getData() { + return data; + } + + public Object get(int id) { + if(data.size() > id) return data.get(id); + return null; + } + +} diff --git a/src/de/katho/kBorrow/data/KArticle.java b/src/de/katho/kBorrow/data/objects/KArticle.java similarity index 88% rename from src/de/katho/kBorrow/data/KArticle.java rename to src/de/katho/kBorrow/data/objects/KArticle.java index 225af82..203cfee 100644 --- a/src/de/katho/kBorrow/data/KArticle.java +++ b/src/de/katho/kBorrow/data/objects/KArticle.java @@ -1,4 +1,4 @@ -package de.katho.kBorrow.data; +package de.katho.kBorrow.data.objects; public class KArticle { private int id; diff --git a/src/de/katho/kBorrow/data/KLender.java b/src/de/katho/kBorrow/data/objects/KLender.java similarity index 87% rename from src/de/katho/kBorrow/data/KLender.java rename to src/de/katho/kBorrow/data/objects/KLender.java index d8a2769..26e9cc9 100644 --- a/src/de/katho/kBorrow/data/KLender.java +++ b/src/de/katho/kBorrow/data/objects/KLender.java @@ -1,4 +1,4 @@ -package de.katho.kBorrow.data; +package de.katho.kBorrow.data.objects; public class KLender { private String name; diff --git a/src/de/katho/kBorrow/data/KLending.java b/src/de/katho/kBorrow/data/objects/KLending.java similarity index 90% rename from src/de/katho/kBorrow/data/KLending.java rename to src/de/katho/kBorrow/data/objects/KLending.java index fff8218..49a076a 100644 --- a/src/de/katho/kBorrow/data/KLending.java +++ b/src/de/katho/kBorrow/data/objects/KLending.java @@ -1,4 +1,4 @@ -package de.katho.kBorrow.data; +package de.katho.kBorrow.data.objects; public class KLending { private int id; diff --git a/src/de/katho/kBorrow/data/KUser.java b/src/de/katho/kBorrow/data/objects/KUser.java similarity index 87% rename from src/de/katho/kBorrow/data/KUser.java rename to src/de/katho/kBorrow/data/objects/KUser.java index 9286ee7..e4ca0ff 100644 --- a/src/de/katho/kBorrow/data/KUser.java +++ b/src/de/katho/kBorrow/data/objects/KUser.java @@ -1,4 +1,4 @@ -package de.katho.kBorrow.data; +package de.katho.kBorrow.data.objects; public class KUser { private String name; diff --git a/src/de/katho/kBorrow/db/SqlConnector.java b/src/de/katho/kBorrow/db/SqlConnector.java index 244bd3e..2e7b523 100644 --- a/src/de/katho/kBorrow/db/SqlConnector.java +++ b/src/de/katho/kBorrow/db/SqlConnector.java @@ -2,10 +2,11 @@ package de.katho.kBorrow.db; import java.util.ArrayList; -import de.katho.kBorrow.data.KArticle; -import de.katho.kBorrow.data.KLender; -import de.katho.kBorrow.data.KLending; -import de.katho.kBorrow.data.KUser; +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.data.objects.KLender; +import de.katho.kBorrow.data.objects.KLending; +import de.katho.kBorrow.data.objects.KUser; +import de.katho.kBorrow.interfaces.DbConnector; public class SqlConnector implements DbConnector{ @@ -116,5 +117,11 @@ public class SqlConnector implements DbConnector{ // TODO Auto-generated method stub return false; } + + @Override + public ArrayList getLendingList() { + // TODO Auto-generated method stub + return null; + } } diff --git a/src/de/katho/kBorrow/db/SqliteConnector.java b/src/de/katho/kBorrow/db/SqliteConnector.java index 338e3ac..00c647f 100644 --- a/src/de/katho/kBorrow/db/SqliteConnector.java +++ b/src/de/katho/kBorrow/db/SqliteConnector.java @@ -13,10 +13,11 @@ import java.util.Hashtable; import java.util.Map.Entry; import de.katho.kBorrow.Util; -import de.katho.kBorrow.data.KArticle; -import de.katho.kBorrow.data.KLender; -import de.katho.kBorrow.data.KLending; -import de.katho.kBorrow.data.KUser; +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.data.objects.KLender; +import de.katho.kBorrow.data.objects.KLending; +import de.katho.kBorrow.data.objects.KUser; +import de.katho.kBorrow.interfaces.DbConnector; /** * @class sqliteConnector @@ -287,6 +288,25 @@ public class SqliteConnector implements DbConnector { } } + public ArrayList getLendingList(){ + ArrayList lendingArr = new ArrayList(); + + try { + Statement st = connection.createStatement(); + String query = "SELECT id, user_id, lender_id, article_id, start_date, expected_end_date, end_date FROM lending"; + + ResultSet rs = st.executeQuery(query); + + while (rs.next()){ + lendingArr.add(new KLending(rs.getInt("id"), rs.getInt("user_id"), rs.getInt("lender_id"), rs.getInt("article_id"), rs.getString("start_date"), rs.getString("expected_end_date"), rs.getString("end_date"))); + } + } + catch(SQLException e){ + Util.showWarning(e); + } + return lendingArr; + } + public ArrayList getActiveLendingList() { ArrayList lendingArr = new ArrayList(); diff --git a/src/de/katho/kBorrow/gui/ArticleInspectFrame.java b/src/de/katho/kBorrow/gui/ArticleInspectFrame.java index d62b45e..27cefb2 100644 --- a/src/de/katho/kBorrow/gui/ArticleInspectFrame.java +++ b/src/de/katho/kBorrow/gui/ArticleInspectFrame.java @@ -11,8 +11,9 @@ import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.JTextArea; -import de.katho.kBorrow.data.KArticle; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.models.ArticleInspectTableModel; import de.katho.kBorrow.models.ArticleTableModel; @@ -31,8 +32,8 @@ public class ArticleInspectFrame extends JFrame { /** * Create the frame. */ - public ArticleInspectFrame(int pRow, final DbConnector dbCon, HashMap pModels) { - articleModel = (ArticleTableModel)pModels.get("articletablemodel"); + public ArticleInspectFrame(int pRow, final DbConnector dbCon, HashMap models) { + articleModel = (ArticleTableModel)models.get("articletablemodel"); article = articleModel.getArticleByRow(pRow); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); @@ -71,7 +72,7 @@ public class ArticleInspectFrame extends JFrame { panelInfo.add(taArticleDesc); // Table - artInsModel = new ArticleInspectTableModel(pRow, dbCon, pModels); + artInsModel = new ArticleInspectTableModel(pRow, dbCon, models); table = new JTable(artInsModel); table.setFillsViewportHeight(true); table.setRowHeight(30); diff --git a/src/de/katho/kBorrow/gui/ArticlePanel.java b/src/de/katho/kBorrow/gui/ArticlePanel.java index 1c782bb..8746ffa 100644 --- a/src/de/katho/kBorrow/gui/ArticlePanel.java +++ b/src/de/katho/kBorrow/gui/ArticlePanel.java @@ -24,8 +24,9 @@ import javax.swing.UIManager; import javax.swing.border.TitledBorder; import de.katho.kBorrow.controller.ArticleController; -import de.katho.kBorrow.data.KArticle; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.listener.ArticleDeleteTableButton; import de.katho.kBorrow.listener.ArticleEditTableButton; import de.katho.kBorrow.listener.ArticleInspectTableButton; @@ -48,11 +49,11 @@ public class ArticlePanel extends JPanel implements ActionListener, KeyListener * Create the panel. * @throws IOException */ - public ArticlePanel(final DbConnector dbCon, HashMap pModels) throws IOException { + public ArticlePanel(final DbConnector dbCon, HashMap models) throws IOException { super(); this.setLayout(null); - articleTableModel = (ArticleTableModel)pModels.get("articletablemodel"); - articleController = new ArticleController(dbCon, pModels); + articleTableModel = (ArticleTableModel)models.get("articletablemodel"); + articleController = new ArticleController(dbCon, models); /* * Tabelle und drumherum @@ -62,7 +63,7 @@ public class ArticlePanel extends JPanel implements ActionListener, KeyListener articleTable.setRowHeight(30); ArticleDeleteTableButton articleDeleteTableButton = new ArticleDeleteTableButton("Löschen", articleTable, this, articleController); ArticleEditTableButton articleEditTableButton = new ArticleEditTableButton("Bearbeiten", articleTable, this); - ArticleInspectTableButton articleInspectTableButton = new ArticleInspectTableButton("Details", articleTable, dbCon, pModels); + ArticleInspectTableButton articleInspectTableButton = new ArticleInspectTableButton("Details", articleTable, dbCon, models); for (int i = 3; i <= 5; i++){ articleTable.getColumnModel().getColumn(i).setCellEditor(i == 3 ? articleInspectTableButton : i == 4 ? articleEditTableButton : articleDeleteTableButton); diff --git a/src/de/katho/kBorrow/gui/MainWindow.java b/src/de/katho/kBorrow/gui/MainWindow.java index ff70f67..0de05ad 100644 --- a/src/de/katho/kBorrow/gui/MainWindow.java +++ b/src/de/katho/kBorrow/gui/MainWindow.java @@ -12,16 +12,14 @@ import java.util.HashMap; import de.katho.kBorrow.Settings; import de.katho.kBorrow.Util; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.KArticleModel; +import de.katho.kBorrow.data.KLenderModel; +import de.katho.kBorrow.data.KLendingModel; +import de.katho.kBorrow.data.KUserModel; import de.katho.kBorrow.db.SqlConnector; import de.katho.kBorrow.db.SqliteConnector; -import de.katho.kBorrow.models.ArticleTableModel; -import de.katho.kBorrow.models.FreeArticleTableModel; -import de.katho.kBorrow.models.LenderModel; -import de.katho.kBorrow.models.LendingTableModel; -import de.katho.kBorrow.models.UserTableModel; -import de.katho.kBorrow.models.UserListModel; - +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; public class MainWindow { @@ -33,7 +31,7 @@ public class MainWindow { private Settings set; - private HashMap models; + private HashMap models; /** * Create the application. @@ -71,14 +69,12 @@ public class MainWindow { dbCon = new SqlConnector(); } - models = new HashMap(); - models.put("usertablemodel", new UserTableModel(dbCon)); - models.put("userlistmodel", new UserListModel(dbCon)); - models.put("articletablemodel", new ArticleTableModel(dbCon)); - models.put("freearticletablemodel", new FreeArticleTableModel(dbCon)); - models.put("lendermodel", new LenderModel(dbCon)); - models.put("lendingtablemodel", new LendingTableModel(dbCon, models)); - + models = new HashMap(); + models.put("karticlemodel", new KArticleModel(dbCon)); + models.put("klendermodel", new KLenderModel(dbCon)); + models.put("klendingmodel", new KLendingModel(dbCon)); + models.put("kusermodel", new KUserModel(dbCon)); + tabbedPane = new JTabbedPane(JTabbedPane.TOP); frame.getContentPane().add(tabbedPane, BorderLayout.CENTER); tabbedPane.addTab("Neue Ausleihe", new NewLendingPanel(this.dbCon, models, set)); diff --git a/src/de/katho/kBorrow/gui/ManageLendingsPanel.java b/src/de/katho/kBorrow/gui/ManageLendingsPanel.java index c50c543..41f2ed7 100644 --- a/src/de/katho/kBorrow/gui/ManageLendingsPanel.java +++ b/src/de/katho/kBorrow/gui/ManageLendingsPanel.java @@ -4,10 +4,11 @@ import java.util.HashMap; import javax.swing.JPanel; import de.katho.kBorrow.controller.ManageLendingsController; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.listener.LendingReturnTableButton; import de.katho.kBorrow.models.LendingTableModel; @@ -29,7 +30,7 @@ public class ManageLendingsPanel extends JPanel { private LendingTableModel lendingTableModel; private ManageLendingsController manageLendingsController; - public ManageLendingsPanel(DbConnector dbCon, HashMap models) throws IOException { + public ManageLendingsPanel(DbConnector dbCon, HashMap models) throws IOException { lendingTableModel = (LendingTableModel)models.get("lendingtablemodel"); manageLendingsController = new ManageLendingsController(dbCon, models); diff --git a/src/de/katho/kBorrow/gui/NewLendingPanel.java b/src/de/katho/kBorrow/gui/NewLendingPanel.java index 0458441..612329b 100644 --- a/src/de/katho/kBorrow/gui/NewLendingPanel.java +++ b/src/de/katho/kBorrow/gui/NewLendingPanel.java @@ -34,9 +34,10 @@ import de.katho.kBorrow.controller.NewLendingController; import de.katho.kBorrow.converter.LenderNameConverter; import de.katho.kBorrow.converter.LenderStudentnumberConverter; import de.katho.kBorrow.converter.LenderSurnameConverter; -import de.katho.kBorrow.data.KArticle; -import de.katho.kBorrow.data.KLender; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.data.objects.KLender; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.listener.NewLendingTableButton; import de.katho.kBorrow.models.FreeArticleTableModel; import de.katho.kBorrow.models.LenderModel; @@ -58,7 +59,7 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList private JLabel lblStartDate; private JLabel lblArticleName; private int articleId; - private LenderModel lenderModel; + //private LenderModel lenderModel; private JButton btnCancel; private JButton btnSave; private NewLendingController newLendingController; @@ -71,15 +72,15 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList * @param dbCon * @throws IOException */ - public NewLendingPanel(final DbConnector dbCon, HashMap pModel, final Settings pSettings) throws IOException { + public NewLendingPanel(final DbConnector dbCon, HashMap models, final Settings pSettings) throws IOException { setLayout(null); articleId = -1; // FreeArticleTable - freeArticleTableModel = (FreeArticleTableModel)pModel.get("freearticletablemodel"); - userListModel = (UserListModel)pModel.get("userlistmodel"); - lenderModel = (LenderModel)pModel.get("lendermodel"); - newLendingController = new NewLendingController(dbCon, pModel, pSettings); + freeArticleTableModel = (FreeArticleTableModel)models.get("freearticletablemodel"); + userListModel = new UserListModel(models.get("kusermodel")); + lenderModel = (LenderModel)models.get("lendermodel"); + newLendingController = new NewLendingController(dbCon, models, pSettings); JTable freeArticleTable = new JTable(freeArticleTableModel); freeArticleTable.setRowHeight(30); diff --git a/src/de/katho/kBorrow/gui/RewriteToNewUserDialog.java b/src/de/katho/kBorrow/gui/RewriteToNewUserDialog.java index 58a0d82..d1bce84 100644 --- a/src/de/katho/kBorrow/gui/RewriteToNewUserDialog.java +++ b/src/de/katho/kBorrow/gui/RewriteToNewUserDialog.java @@ -10,11 +10,12 @@ import javax.swing.border.EmptyBorder; import javax.swing.JComboBox; import de.katho.kBorrow.controller.RewriteToNewUserController; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.interfaces.DbConnector; import de.katho.kBorrow.models.RewriteUserModel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; + import javax.swing.JLabel; public class RewriteToNewUserDialog extends JDialog implements ActionListener { diff --git a/src/de/katho/kBorrow/gui/UserPanel.java b/src/de/katho/kBorrow/gui/UserPanel.java index 28190a0..3e00ee8 100644 --- a/src/de/katho/kBorrow/gui/UserPanel.java +++ b/src/de/katho/kBorrow/gui/UserPanel.java @@ -20,8 +20,9 @@ import javax.swing.UIManager; import javax.swing.border.TitledBorder; import de.katho.kBorrow.controller.UserController; -import de.katho.kBorrow.data.KUser; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.objects.KUser; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.listener.UserDeleteTableButton; import de.katho.kBorrow.listener.UserEditTableButton; import de.katho.kBorrow.models.UserTableModel; @@ -39,11 +40,11 @@ public class UserPanel extends JPanel implements ActionListener, KeyListener { private UserTableModel userTableModel; private UserController userController; - public UserPanel(final DbConnector dbCon, HashMap pModels) throws IOException{ + public UserPanel(final DbConnector dbCon, HashMap models) throws IOException{ super(); setLayout(null); - userTableModel = (UserTableModel)pModels.get("usertablemodel"); - userController = new UserController(dbCon, pModels); + userTableModel = (UserTableModel)models.get("usertablemodel"); + userController = new UserController(dbCon, models); //Tabelle und drumherum JTable userTable = new JTable(userTableModel); diff --git a/src/de/katho/kBorrow/db/DbConnector.java b/src/de/katho/kBorrow/interfaces/DbConnector.java similarity index 77% rename from src/de/katho/kBorrow/db/DbConnector.java rename to src/de/katho/kBorrow/interfaces/DbConnector.java index 02cf7f1..130cc19 100644 --- a/src/de/katho/kBorrow/db/DbConnector.java +++ b/src/de/katho/kBorrow/interfaces/DbConnector.java @@ -1,11 +1,11 @@ -package de.katho.kBorrow.db; +package de.katho.kBorrow.interfaces; import java.util.ArrayList; -import de.katho.kBorrow.data.KArticle; -import de.katho.kBorrow.data.KLender; -import de.katho.kBorrow.data.KLending; -import de.katho.kBorrow.data.KUser; +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.data.objects.KLender; +import de.katho.kBorrow.data.objects.KLending; +import de.katho.kBorrow.data.objects.KUser; public interface DbConnector { @@ -23,6 +23,7 @@ public interface DbConnector { public int createNewLender(String pLName, String pLSurname, String pLSN); public ArrayList getActiveLendingList(); public int returnLending(int lendingId, int artId, String string); + public ArrayList getLendingList(); public ArrayList getLendingListForArticle(int pArtId); public ArrayList getRewriteUserList(int id); public boolean rewriteToNewUser(int pOldId, int pNewId); diff --git a/src/de/katho/kBorrow/interfaces/KDataModel.java b/src/de/katho/kBorrow/interfaces/KDataModel.java new file mode 100644 index 0000000..194ab11 --- /dev/null +++ b/src/de/katho/kBorrow/interfaces/KDataModel.java @@ -0,0 +1,10 @@ +package de.katho.kBorrow.interfaces; + +import java.util.ArrayList; + +public interface KDataModel { + public void register(KGuiModel pModel); + public void updateModel(); + public ArrayList getData(); + public Object get(int id); +} diff --git a/src/de/katho/kBorrow/interfaces/KGuiModel.java b/src/de/katho/kBorrow/interfaces/KGuiModel.java new file mode 100644 index 0000000..9fc5531 --- /dev/null +++ b/src/de/katho/kBorrow/interfaces/KGuiModel.java @@ -0,0 +1,6 @@ +package de.katho.kBorrow.interfaces; + + +public interface KGuiModel { + public void fetchData(KDataModel pModel); +} diff --git a/src/de/katho/kBorrow/listener/ArticleInspectTableButton.java b/src/de/katho/kBorrow/listener/ArticleInspectTableButton.java index aea1e5f..b0ce81a 100644 --- a/src/de/katho/kBorrow/listener/ArticleInspectTableButton.java +++ b/src/de/katho/kBorrow/listener/ArticleInspectTableButton.java @@ -10,8 +10,9 @@ import javax.swing.ImageIcon; import javax.swing.JTable; import sun.tools.jar.Main; -import de.katho.kBorrow.db.DbConnector; import de.katho.kBorrow.gui.ArticleInspectFrame; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; public class ArticleInspectTableButton extends TableButton { @@ -20,7 +21,7 @@ public class ArticleInspectTableButton extends TableButton { */ private static final long serialVersionUID = -2591133864537097893L; - public ArticleInspectTableButton(String pLabel, final JTable pTable, final DbConnector dbCon, final HashMap pModels) throws IOException { + public ArticleInspectTableButton(String pLabel, final JTable pTable, final DbConnector dbCon, final HashMap models) throws IOException { super(pLabel); URL url = Main.class.getResource("/icons/system-search.png"); ImageIcon icon = new ImageIcon(url); @@ -34,7 +35,7 @@ public class ArticleInspectTableButton extends TableButton { int row = pTable.getSelectedRow(); - new ArticleInspectFrame(row, dbCon, pModels); + new ArticleInspectFrame(row, dbCon, models); } }); } diff --git a/src/de/katho/kBorrow/listener/UserDeleteTableButton.java b/src/de/katho/kBorrow/listener/UserDeleteTableButton.java index 0085894..36d365b 100644 --- a/src/de/katho/kBorrow/listener/UserDeleteTableButton.java +++ b/src/de/katho/kBorrow/listener/UserDeleteTableButton.java @@ -11,6 +11,7 @@ import javax.swing.JTable; import sun.tools.jar.Main; import de.katho.kBorrow.controller.UserController; import de.katho.kBorrow.gui.UserPanel; +import de.katho.kBorrow.models.UserTableModel; public class UserDeleteTableButton extends TableButton { @@ -29,8 +30,9 @@ public class UserDeleteTableButton extends TableButton { fireEditingStopped(); int row = pTable.getSelectedRow(); + int id = ((UserTableModel)pTable.getModel()).rowToId(row); - if(pController.deleteUser(row)) pPanel.setStatusLabel("Benutzer erfolgreich gelöscht."); + if(pController.deleteUser(id)) pPanel.setStatusLabel("Benutzer erfolgreich gelöscht."); else pPanel.setStatusLabel("Beuntzer konnte nicht gelöscht werden."); pPanel.resetModeEditUser(); diff --git a/src/de/katho/kBorrow/models/ArticleInspectTableModel.java b/src/de/katho/kBorrow/models/ArticleInspectTableModel.java index 1f7a173..f30d49b 100644 --- a/src/de/katho/kBorrow/models/ArticleInspectTableModel.java +++ b/src/de/katho/kBorrow/models/ArticleInspectTableModel.java @@ -5,13 +5,15 @@ import java.util.HashMap; import javax.swing.table.AbstractTableModel; -import de.katho.kBorrow.data.KArticle; -import de.katho.kBorrow.data.KLender; -import de.katho.kBorrow.data.KLending; -import de.katho.kBorrow.data.KUser; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.data.objects.KLender; +import de.katho.kBorrow.data.objects.KLending; +import de.katho.kBorrow.data.objects.KUser; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KDataModel; +import de.katho.kBorrow.interfaces.KGuiModel; -public class ArticleInspectTableModel extends AbstractTableModel { +public class ArticleInspectTableModel extends AbstractTableModel implements KGuiModel { /** * @@ -26,12 +28,12 @@ public class ArticleInspectTableModel extends AbstractTableModel { private LenderModel lenderModel; - public ArticleInspectTableModel(int pRow, DbConnector pDbCon, HashMap pModels){ + public ArticleInspectTableModel(int pRow, DbConnector pDbCon, HashMap models){ header = new String[] {"ID", "Verliehen von:", "Ausgeliehen an:", "Ausleihdatum", "Vor. Rückgabe", "Rückgabe"}; dbCon = pDbCon; - articleModel = (ArticleTableModel)pModels.get("articletablemodel"); - userModel = (UserTableModel)pModels.get("usertablemodel"); - lenderModel = (LenderModel)pModels.get("lendermodel"); + articleModel = (ArticleTableModel)models.get("articletablemodel"); + userModel = (UserTableModel)models.get("usertablemodel"); + lenderModel = (LenderModel)models.get("lendermodel"); article = articleModel.getArticleByRow(pRow); diff --git a/src/de/katho/kBorrow/models/ArticleTableModel.java b/src/de/katho/kBorrow/models/ArticleTableModel.java index b63726a..d92d2ef 100644 --- a/src/de/katho/kBorrow/models/ArticleTableModel.java +++ b/src/de/katho/kBorrow/models/ArticleTableModel.java @@ -4,10 +4,11 @@ import java.util.ArrayList; import javax.swing.table.AbstractTableModel; -import de.katho.kBorrow.data.KArticle; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KGuiModel; -public class ArticleTableModel extends AbstractTableModel { +public class ArticleTableModel extends AbstractTableModel implements KGuiModel { /** * diff --git a/src/de/katho/kBorrow/models/FreeArticleTableModel.java b/src/de/katho/kBorrow/models/FreeArticleTableModel.java index aa41789..bb6dead 100644 --- a/src/de/katho/kBorrow/models/FreeArticleTableModel.java +++ b/src/de/katho/kBorrow/models/FreeArticleTableModel.java @@ -1,8 +1,9 @@ package de.katho.kBorrow.models; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.interfaces.DbConnector; +import de.katho.kBorrow.interfaces.KGuiModel; -public class FreeArticleTableModel extends ArticleTableModel { +public class FreeArticleTableModel extends ArticleTableModel implements KGuiModel { /** * diff --git a/src/de/katho/kBorrow/models/LenderModel.java b/src/de/katho/kBorrow/models/LenderModel.java index 7297e32..e8e5a94 100644 --- a/src/de/katho/kBorrow/models/LenderModel.java +++ b/src/de/katho/kBorrow/models/LenderModel.java @@ -2,20 +2,16 @@ package de.katho.kBorrow.models; import java.util.ArrayList; -import de.katho.kBorrow.data.KLender; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.KLenderModel; +import de.katho.kBorrow.data.objects.KLender; +import de.katho.kBorrow.interfaces.KDataModel; +import de.katho.kBorrow.interfaces.KGuiModel; -public class LenderModel { +public class LenderModel implements KGuiModel { private ArrayList data; - private DbConnector dbCon; - public LenderModel(DbConnector pDbCon){ - dbCon = pDbCon; - updateModel(); - } - - public void updateModel(){ - data = dbCon.getLenderList(); + public LenderModel(KDataModel pModel){ + pModel.register(this); } public ArrayList getList(){ @@ -115,4 +111,10 @@ public class LenderModel { public KLender getLenderByRow(int pRow){ return data.get(pRow); } + + public void fetchData(KDataModel pModel) { + if(pModel instanceof KLenderModel){ + data = ((KLenderModel)pModel).getData(); + } + } } diff --git a/src/de/katho/kBorrow/models/LendingTableModel.java b/src/de/katho/kBorrow/models/LendingTableModel.java index da80c44..6b5aa77 100644 --- a/src/de/katho/kBorrow/models/LendingTableModel.java +++ b/src/de/katho/kBorrow/models/LendingTableModel.java @@ -5,32 +5,34 @@ import java.util.HashMap; import javax.swing.table.AbstractTableModel; -import de.katho.kBorrow.data.KArticle; -import de.katho.kBorrow.data.KLender; -import de.katho.kBorrow.data.KLending; -import de.katho.kBorrow.data.KUser; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.KLendingModel; +import de.katho.kBorrow.data.objects.KArticle; +import de.katho.kBorrow.data.objects.KLender; +import de.katho.kBorrow.data.objects.KLending; +import de.katho.kBorrow.data.objects.KUser; +import de.katho.kBorrow.interfaces.KDataModel; +import de.katho.kBorrow.interfaces.KGuiModel; -public class LendingTableModel extends AbstractTableModel { +public class LendingTableModel extends AbstractTableModel implements KGuiModel { /** * */ private static final long serialVersionUID = 1375465648631587292L; - private DbConnector dbCon; private String[] header = {"ID", "Artikel", "Verliehen von:", "Ausgeliehen an:", "Ausleihdatum", "Vor. Rückgabe", ""}; private ArrayList data = new ArrayList(); - private ArticleTableModel articleModel; - private LenderModel lenderModel; - private UserTableModel userTableModel; + private KDataModel articleModel; + private KDataModel lenderModel; + private KDataModel userModel; + private KDataModel lendingModel; - public LendingTableModel(DbConnector pDbCon, HashMap pModels ) { - dbCon = pDbCon; - articleModel = (ArticleTableModel)pModels.get("articletablemodel"); - lenderModel = (LenderModel)pModels.get("lendermodel"); - userTableModel = (UserTableModel)pModels.get("usertablemodel"); + public LendingTableModel(HashMap pModels ) { + articleModel = pModels.get("karticlemodel"); + lenderModel = pModels.get("klendermodel"); + userModel = pModels.get("kusermodel"); + lendingModel = pModels.get("klendingmodel"); - updateModel(); + lendingModel.register(this); } public int getColumnCount() { @@ -52,19 +54,19 @@ public class LendingTableModel extends AbstractTableModel { case 1: int artId = data.get(row).getArticleId(); - KArticle art = articleModel.getArticleById(artId); + KArticle art = (KArticle) articleModel.get(artId); return art.getName(); case 2: int uId = data.get(row).getUserId(); - KUser user = userTableModel.getUserById(uId); + KUser user = (KUser) userModel.get(uId); return user.getName()+" "+user.getSurname(); case 3: int lenderId = data.get(row).getLenderId(); - KLender lender = lenderModel.getLenderById(lenderId); + KLender lender = (KLender) lenderModel.get(lenderId); return lender.getName()+" "+lender.getSurname()+" ("+lender.getStudentnumber()+")"; @@ -83,11 +85,6 @@ public class LendingTableModel extends AbstractTableModel { if (col > 4) return true; return false; } - - public void updateModel(){ - data = dbCon.getActiveLendingList(); - fireTableDataChanged(); - } public KLending getLendingByRow(int row) { return data.get(row); @@ -99,9 +96,14 @@ public class LendingTableModel extends AbstractTableModel { } return null; } - - public ArrayList getLendingList(){ - return data; + + public void fetchData(KDataModel pModel) { + if(pModel instanceof KLendingModel){ + for(KLending elem : ((KLendingModel)pModel).getData()){ + if(elem.getEndDate().equals("")) data.add(elem); + } + fireTableDataChanged(); + } } } diff --git a/src/de/katho/kBorrow/models/RewriteUserModel.java b/src/de/katho/kBorrow/models/RewriteUserModel.java index b16f56a..1742287 100644 --- a/src/de/katho/kBorrow/models/RewriteUserModel.java +++ b/src/de/katho/kBorrow/models/RewriteUserModel.java @@ -1,6 +1,12 @@ package de.katho.kBorrow.models; -import de.katho.kBorrow.db.DbConnector; +import java.util.ArrayList; +import java.util.logging.Level; + +import de.katho.kBorrow.KLogger; +import de.katho.kBorrow.data.KUserModel; +import de.katho.kBorrow.data.objects.KUser; +import de.katho.kBorrow.interfaces.KDataModel; public class RewriteUserModel extends UserListModel { @@ -10,18 +16,26 @@ public class RewriteUserModel extends UserListModel { private static final long serialVersionUID = -78927566018961799L; private int id; - public RewriteUserModel(DbConnector pDbCon, int pId) { - super(pDbCon); + public RewriteUserModel(KDataModel pModel, int pId) { + super(pModel); id = pId; - updateModel(); + pModel.register(this); } - public void updateModel(){ - data = dbCon.getRewriteUserList(id); - - if(data.size() > 0) setSelectedItem(data.get(0).getName()+" "+data.get(0).getSurname()); - - fireIntervalAdded(this, 0, data.size()-1); + public void fetchData(KDataModel pModel){ + if(pModel instanceof KUserModel){ + data = new ArrayList(); + + for(KUser elem : ((KUserModel)pModel).getData()){ + if(elem.getId() != id) data.add(elem); + } + + if(data.size() > 0) setSelectedItem(data.get(0).getName()+" "+data.get(0).getSurname()); + + fireIntervalAdded(this, 0, data.size()-1); + } + else { + KLogger.log(Level.SEVERE, "RewriteUserModel: Typecast error!", new Exception("RewriteUserModel: Typecast error!")); + } } - } diff --git a/src/de/katho/kBorrow/models/UserListModel.java b/src/de/katho/kBorrow/models/UserListModel.java index 0e7a5cf..fe677eb 100644 --- a/src/de/katho/kBorrow/models/UserListModel.java +++ b/src/de/katho/kBorrow/models/UserListModel.java @@ -5,32 +5,23 @@ import java.util.ArrayList; import javax.swing.AbstractListModel; import javax.swing.ComboBoxModel; -import de.katho.kBorrow.data.KUser; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.KUserModel; +import de.katho.kBorrow.data.objects.KUser; +import de.katho.kBorrow.interfaces.KDataModel; +import de.katho.kBorrow.interfaces.KGuiModel; -public class UserListModel extends AbstractListModel implements ComboBoxModel { +public class UserListModel extends AbstractListModel implements ComboBoxModel, KGuiModel { /** * */ private static final long serialVersionUID = -8653066929273274524L; - protected DbConnector dbCon; protected ArrayList data; protected String selectedItem = null; - public UserListModel(DbConnector pDbCon){ + public UserListModel(KDataModel pUserModel){ super(); - dbCon = pDbCon; - updateModel(); - } - - - public void updateModel() { - data = dbCon.getUserList(); - - if(data.size() > 0) setSelectedItem(data.get(0).getName()+" "+data.get(0).getSurname()); - - fireIntervalAdded(this, 0, data.size()-1); + pUserModel.register(this); } public void setSelectedItem(Object object) { @@ -78,6 +69,16 @@ public class UserListModel extends AbstractListModel implements ComboBox } return null; } + + public void fetchData(KDataModel pModel) { + if(pModel instanceof KUserModel){ + data = ((KUserModel)pModel).getData(); + } + + if(data.size() > 0) setSelectedItem(data.get(0).getName()+" "+data.get(0).getSurname()); + + fireIntervalAdded(this, 0, data.size()-1); + } } diff --git a/src/de/katho/kBorrow/models/UserTableModel.java b/src/de/katho/kBorrow/models/UserTableModel.java index 09022cc..b905cd1 100644 --- a/src/de/katho/kBorrow/models/UserTableModel.java +++ b/src/de/katho/kBorrow/models/UserTableModel.java @@ -4,30 +4,30 @@ import java.util.ArrayList; import javax.swing.table.AbstractTableModel; -import de.katho.kBorrow.data.KUser; -import de.katho.kBorrow.db.DbConnector; +import de.katho.kBorrow.data.KUserModel; +import de.katho.kBorrow.data.objects.KUser; +import de.katho.kBorrow.interfaces.KDataModel; +import de.katho.kBorrow.interfaces.KGuiModel; -public class UserTableModel extends AbstractTableModel { +public class UserTableModel extends AbstractTableModel implements KGuiModel { /** * */ private static final long serialVersionUID = 435829735305533728L; - private DbConnector dbCon; private String[] header = {"ID", "Vorname", "Nachname", "", ""}; - private ArrayList data = new ArrayList(); + private ArrayList data; - public UserTableModel(DbConnector pDbCon){ - dbCon = pDbCon; - updateModel(); + public UserTableModel(KDataModel pModel){ + pModel.register(this); } public int getColumnCount() { - return this.header.length; + return header.length; } public int getRowCount() { - return this.data.size(); + return data.size(); } public String getValueAt(int row, int col) { @@ -50,11 +50,6 @@ public class UserTableModel extends AbstractTableModel { return header[index]; } - public void updateModel(){ - data = dbCon.getUserList(); - fireTableDataChanged(); - } - // Die Funktion muss differenzierter werden public boolean isCellEditable(int row, int col){ if (col > 2) return true; @@ -82,5 +77,18 @@ public class UserTableModel extends AbstractTableModel { if(elem.getId() == pId) return elem; } return null; - } + } + + public int rowToId(int pRow){ + return getUserByRow(pRow).getId(); + } + + public void fetchData(KDataModel pModel) { + if(pModel instanceof KUserModel){ + data = ((KUserModel)pModel).getData(); + + fireTableDataChanged(); + } + + } }