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();
+ }
+
+ }
}