#14: Erste Arbeiten am vereinheitlichten DataModel.

This commit is contained in:
Servicepoint
2014-12-17 17:38:55 +01:00
parent ecb496f35b
commit 401d68cf47
39 changed files with 561 additions and 309 deletions

View File

@@ -10,8 +10,8 @@
<operations public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/>
</display> </display>
</class> </class>
<interface id="2" language="java" name="de.katho.kBorrow.db.DbConnector" project="kBorrow" <interface id="2" language="java" name="de.katho.kBorrow.interfaces.DbConnector" project="kBorrow"
file="/kBorrow/src/de/katho/kBorrow/db/DbConnector.java" binary="false" corner="BOTTOM_RIGHT"> file="/kBorrow/src/de/katho/kBorrow/interfaces/DbConnector.java" binary="false" corner="BOTTOM_RIGHT">
<position height="225" width="217" x="1048" y="1066"/> <position height="225" width="217" x="1048" y="1066"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true"> sort-features="false" accessors="true" visibility="true">
@@ -19,8 +19,8 @@
<operations public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/>
</display> </display>
</interface> </interface>
<class id="3" language="java" name="de.katho.kBorrow.data.KUser" project="kBorrow" <class id="3" language="java" name="de.katho.kBorrow.data.objects.KUser" project="kBorrow"
file="/kBorrow/src/de/katho/kBorrow/data/KUser.java" binary="false" corner="BOTTOM_RIGHT"> file="/kBorrow/src/de/katho/kBorrow/data/objects/KUser.java" binary="false" corner="BOTTOM_RIGHT">
<position height="225" width="143" x="724" y="1066"/> <position height="225" width="143" x="724" y="1066"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true"> sort-features="false" accessors="true" visibility="true">
@@ -163,8 +163,8 @@
<operations public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/>
</display> </display>
</class> </class>
<class id="19" language="java" name="de.katho.kBorrow.data.KArticle" project="kBorrow" <class id="19" language="java" name="de.katho.kBorrow.data.objects.KArticle" project="kBorrow"
file="/kBorrow/src/de/katho/kBorrow/data/KArticle.java" binary="false" corner="BOTTOM_RIGHT"> file="/kBorrow/src/de/katho/kBorrow/data/objects/KArticle.java" binary="false" corner="BOTTOM_RIGHT">
<position height="225" width="154" x="2701" y="1066"/> <position height="225" width="154" x="2701" y="1066"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true"> sort-features="false" accessors="true" visibility="true">
@@ -181,126 +181,114 @@
<operations public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/>
</display> </display>
</class> </class>
<association id="21"> <realization id="21">
<end type="SOURCE" refId="17" navigable="false">
<attribute id="22" name="set">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="23" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="1" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<association id="24">
<bendpoint x="1017" y="639"/>
<end type="SOURCE" refId="4" navigable="false">
<attribute id="25" name="dbCon">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="26" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="2" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<association id="27">
<bendpoint x="2798" y="639"/>
<end type="SOURCE" refId="10" navigable="false">
<attribute id="28" name="dbCon">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="29" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="2" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<generalization id="30">
<end type="SOURCE" refId="13"/>
<end type="TARGET" refId="12"/>
</generalization>
<realization id="31">
<end type="SOURCE" refId="18"/>
<end type="TARGET" refId="2"/>
</realization>
<realization id="32">
<end type="SOURCE" refId="9"/> <end type="SOURCE" refId="9"/>
<end type="TARGET" refId="2"/> <end type="TARGET" refId="2"/>
</realization> </realization>
<association id="33"> <generalization id="22">
<end type="SOURCE" refId="5" navigable="false"> <end type="SOURCE" refId="6"/>
<attribute id="34" name="data"> <end type="TARGET" refId="12"/>
</generalization>
<association id="23">
<bendpoint x="2798" y="639"/>
<end type="SOURCE" refId="10" navigable="false">
<attribute id="24" name="dbCon">
<position height="0" width="0" x="0" y="0"/> <position height="0" width="0" x="0" y="0"/>
</attribute> </attribute>
<multiplicity id="35" minimum="0" maximum="2147483647"> <multiplicity id="25" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="2" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<realization id="26">
<end type="SOURCE" refId="18"/>
<end type="TARGET" refId="2"/>
</realization>
<association id="27">
<end type="SOURCE" refId="5" navigable="false">
<attribute id="28" name="data">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="29" minimum="0" maximum="2147483647">
<position height="0" width="0" x="0" y="0"/> <position height="0" width="0" x="0" y="0"/>
</multiplicity> </multiplicity>
</end> </end>
<end type="TARGET" refId="19" navigable="true"/> <end type="TARGET" refId="19" navigable="true"/>
<display labels="true" multiplicity="true"/> <display labels="true" multiplicity="true"/>
</association> </association>
<generalization id="36"> <association id="30">
<end type="SOURCE" refId="6"/> <bendpoint x="1017" y="639"/>
<end type="TARGET" refId="12"/> <end type="SOURCE" refId="4" navigable="false">
</generalization> <attribute id="31" name="dbCon">
<association id="37">
<end type="SOURCE" refId="14" navigable="false">
<attribute id="38" name="dbCon">
<position height="0" width="0" x="0" y="0"/> <position height="0" width="0" x="0" y="0"/>
</attribute> </attribute>
<multiplicity id="39" minimum="0" maximum="1"> <multiplicity id="32" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/> <position height="0" width="0" x="0" y="0"/>
</multiplicity> </multiplicity>
</end> </end>
<end type="TARGET" refId="2" navigable="true"/> <end type="TARGET" refId="2" navigable="true"/>
<display labels="true" multiplicity="true"/> <display labels="true" multiplicity="true"/>
</association> </association>
<association id="40"> <generalization id="33">
<end type="SOURCE" refId="14" navigable="false"> <end type="SOURCE" refId="13"/>
<attribute id="41" name="data"> <end type="TARGET" refId="12"/>
</generalization>
<generalization id="34">
<end type="SOURCE" refId="8"/>
<end type="TARGET" refId="12"/>
</generalization>
<association id="35">
<end type="SOURCE" refId="5" navigable="false">
<attribute id="36" name="dbCon">
<position height="0" width="0" x="0" y="0"/> <position height="0" width="0" x="0" y="0"/>
</attribute> </attribute>
<multiplicity id="42" minimum="0" maximum="2147483647"> <multiplicity id="37" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="2" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<generalization id="38">
<end type="SOURCE" refId="7"/>
<end type="TARGET" refId="12"/>
</generalization>
<association id="39">
<end type="SOURCE" refId="17" navigable="false">
<attribute id="40" name="set">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="41" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="1" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<association id="42">
<end type="SOURCE" refId="14" navigable="false">
<attribute id="43" name="data">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="44" minimum="0" maximum="2147483647">
<position height="0" width="0" x="0" y="0"/> <position height="0" width="0" x="0" y="0"/>
</multiplicity> </multiplicity>
</end> </end>
<end type="TARGET" refId="3" navigable="true"/> <end type="TARGET" refId="3" navigable="true"/>
<display labels="true" multiplicity="true"/> <display labels="true" multiplicity="true"/>
</association> </association>
<generalization id="43"> <generalization id="45">
<end type="SOURCE" refId="7"/>
<end type="TARGET" refId="12"/>
</generalization>
<association id="44">
<end type="SOURCE" refId="5" navigable="false">
<attribute id="45" name="dbCon">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="46" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="2" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<generalization id="47">
<end type="SOURCE" refId="16"/> <end type="SOURCE" refId="16"/>
<end type="TARGET" refId="12"/> <end type="TARGET" refId="12"/>
</generalization> </generalization>
<generalization id="48"> <association id="46">
<end type="SOURCE" refId="8"/>
<end type="TARGET" refId="12"/>
</generalization>
<association id="49">
<end type="SOURCE" refId="17" navigable="false"> <end type="SOURCE" refId="17" navigable="false">
<attribute id="50" name="dbCon"> <attribute id="47" name="dbCon">
<position height="0" width="0" x="0" y="0"/> <position height="0" width="0" x="0" y="0"/>
</attribute> </attribute>
<multiplicity id="51" minimum="0" maximum="1"> <multiplicity id="48" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/> <position height="0" width="0" x="0" y="0"/>
</multiplicity> </multiplicity>
</end> </end>

View File

@@ -2,7 +2,8 @@ package de.katho.kBorrow.controller;
import java.util.HashMap; 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.ArticleTableModel;
import de.katho.kBorrow.models.FreeArticleTableModel; import de.katho.kBorrow.models.FreeArticleTableModel;
@@ -11,10 +12,10 @@ public class ArticleController {
private ArticleTableModel articleTableModel; private ArticleTableModel articleTableModel;
private FreeArticleTableModel freeArticleTableModel; private FreeArticleTableModel freeArticleTableModel;
public ArticleController(DbConnector pDbCon, HashMap<String, Object> pModels){ public ArticleController(DbConnector pDbCon, HashMap<String, KDataModel> models){
dbCon = pDbCon; dbCon = pDbCon;
articleTableModel = (ArticleTableModel)pModels.get("articletablemodel"); articleTableModel = (ArticleTableModel)models.get("articletablemodel");
freeArticleTableModel = (FreeArticleTableModel)pModels.get("freearticletablemodel"); freeArticleTableModel = (FreeArticleTableModel)models.get("freearticletablemodel");
} }
/** /**

View File

@@ -3,8 +3,9 @@ package de.katho.kBorrow.controller;
import java.util.HashMap; import java.util.HashMap;
import de.katho.kBorrow.Util; import de.katho.kBorrow.Util;
import de.katho.kBorrow.data.KLending; import de.katho.kBorrow.data.objects.KLending;
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.ArticleTableModel;
import de.katho.kBorrow.models.FreeArticleTableModel; import de.katho.kBorrow.models.FreeArticleTableModel;
import de.katho.kBorrow.models.LendingTableModel; import de.katho.kBorrow.models.LendingTableModel;
@@ -16,12 +17,12 @@ public class ManageLendingsController {
private ArticleTableModel articleTableModel; private ArticleTableModel articleTableModel;
private LendingTableModel lendingTableModel; private LendingTableModel lendingTableModel;
public ManageLendingsController(DbConnector pDbCon, HashMap<String, Object> pModels){ public ManageLendingsController(DbConnector pDbCon, HashMap<String, KDataModel> models){
dbCon = pDbCon; dbCon = pDbCon;
freeArticleTableModel = (FreeArticleTableModel)pModels.get("freearticletablemodel"); freeArticleTableModel = (FreeArticleTableModel)models.get("freearticletablemodel");
articleTableModel = (ArticleTableModel)pModels.get("articletablemodel"); articleTableModel = (ArticleTableModel)models.get("articletablemodel");
lendingTableModel = (LendingTableModel)pModels.get("lendingtablemodel"); lendingTableModel = (LendingTableModel)models.get("lendingtablemodel");
} }
public void returnLending(int pRow) { public void returnLending(int pRow) {

View File

@@ -19,11 +19,12 @@ import java.util.HashMap;
import de.katho.kBorrow.Settings; import de.katho.kBorrow.Settings;
import de.katho.kBorrow.Util; import de.katho.kBorrow.Util;
import de.katho.kBorrow.data.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.data.KLending; import de.katho.kBorrow.data.objects.KLending;
import de.katho.kBorrow.data.KUser; import de.katho.kBorrow.data.objects.KUser;
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.ArticleTableModel;
import de.katho.kBorrow.models.FreeArticleTableModel; import de.katho.kBorrow.models.FreeArticleTableModel;
import de.katho.kBorrow.models.LenderModel; import de.katho.kBorrow.models.LenderModel;
@@ -39,13 +40,13 @@ public class NewLendingController {
private ArticleTableModel articleTableModel; private ArticleTableModel articleTableModel;
private Settings settings; private Settings settings;
public NewLendingController(DbConnector pDbCon, HashMap<String, Object> pModels, final Settings pSettings){ public NewLendingController(DbConnector pDbCon, HashMap<String, KDataModel> models, final Settings pSettings){
dbCon = pDbCon; dbCon = pDbCon;
userListModel = (UserListModel)pModels.get("userlistmodel"); userListModel = (UserListModel)models.get("userlistmodel");
lenderModel = (LenderModel)pModels.get("lendermodel"); lenderModel = (LenderModel)models.get("lendermodel");
freeArticleModel = (FreeArticleTableModel)pModels.get("freearticletablemodel"); freeArticleModel = (FreeArticleTableModel)models.get("freearticletablemodel");
articleTableModel = (ArticleTableModel)pModels.get("articletablemodel"); articleTableModel = (ArticleTableModel)models.get("articletablemodel");
lendingTableModel = (LendingTableModel)pModels.get("lendingtablemodel"); lendingTableModel = (LendingTableModel)models.get("lendingtablemodel");
settings = pSettings; settings = pSettings;
} }

View File

@@ -1,6 +1,6 @@
package de.katho.kBorrow.controller; package de.katho.kBorrow.controller;
import de.katho.kBorrow.db.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
public class RewriteToNewUserController { public class RewriteToNewUserController {

View File

@@ -2,33 +2,31 @@ package de.katho.kBorrow.controller;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.logging.Level;
import de.katho.kBorrow.data.KLending; import de.katho.kBorrow.KLogger;
import de.katho.kBorrow.db.DbConnector; import de.katho.kBorrow.data.KLendingModel;
import de.katho.kBorrow.data.objects.KLending;
import de.katho.kBorrow.gui.RewriteToNewUserDialog; import de.katho.kBorrow.gui.RewriteToNewUserDialog;
import de.katho.kBorrow.models.LendingTableModel; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.models.UserTableModel; import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.models.UserListModel;
public class UserController { public class UserController {
private DbConnector dbCon; private DbConnector dbCon;
private UserTableModel userTableModel; private KDataModel userModel;
private UserListModel userListModel; private KDataModel lendingModel;
private LendingTableModel lendingTableModel;
public UserController(DbConnector pDbCon, HashMap<String, Object> pModels) { public UserController(DbConnector pDbCon, HashMap<String, KDataModel> models) {
dbCon = pDbCon; dbCon = pDbCon;
userTableModel = (UserTableModel)pModels.get("usertablemodel"); userModel = models.get("kusermodel");
userListModel = (UserListModel)pModels.get("userlistmodel"); lendingModel = models.get("klendingmodel");
lendingTableModel = (LendingTableModel)pModels.get("lendingtablemodel");
} }
public int createUser(String pName, String pSurname){ public int createUser(String pName, String pSurname){
int status = dbCon.createUser(pName, pSurname); int status = dbCon.createUser(pName, pSurname);
userTableModel.updateModel(); userModel.updateModel();
userListModel.updateModel();
return status; return status;
} }
@@ -37,42 +35,43 @@ public class UserController {
int status = dbCon.editUser(pId, pName, pSurname); int status = dbCon.editUser(pId, pName, pSurname);
if(status == 0){ if(status == 0){
userTableModel.updateModel(); userModel.updateModel();
userListModel.updateModel();
} }
return status; return status;
} }
public boolean deleteUser(int pRow) { public boolean deleteUser(int pId) {
int id = userTableModel.getUserByRow(pRow).getId(); if(!(lendingModel instanceof KLendingModel)) {
KLogger.log(Level.SEVERE, "UserController: lendingModel type error!", new Exception("UserController: lendingModel type error!"));
return false;
}
boolean isOccupied = false; boolean isOccupied = false;
ArrayList<KLending> lendingList = lendingTableModel.getLendingList();
ArrayList<KLending> lendingList = ((KLendingModel)lendingModel).getData();
for(KLending elem : lendingList){ for(KLending elem : lendingList){
if(elem.getUserId() == id){ if(elem.getUserId() == pId){
isOccupied = true; isOccupied = true;
break; break;
} }
} }
if(isOccupied){ if(isOccupied){
RewriteToNewUserDialog dialog = new RewriteToNewUserDialog(id, dbCon); RewriteToNewUserDialog dialog = new RewriteToNewUserDialog(pId, dbCon);
if(dialog.getResult() == 0){ if(dialog.getResult() == 0){
lendingTableModel.updateModel(); lendingModel.updateModel();
userTableModel.updateModel(); userModel.updateModel();
userListModel.updateModel();
return deleteUser(pRow); return deleteUser(pId);
} }
else return false; else return false;
} }
else { else {
if(dbCon.deleteUser(id)){ if(dbCon.deleteUser(pId)){
userTableModel.updateModel(); userModel.updateModel();
userListModel.updateModel(); lendingModel.updateModel();
lendingTableModel.updateModel();
return true; return true;
} }

View File

@@ -2,7 +2,7 @@ package de.katho.kBorrow.converter;
import org.jdesktop.swingx.autocomplete.ObjectToStringConverter; import org.jdesktop.swingx.autocomplete.ObjectToStringConverter;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.objects.KLender;
public class LenderNameConverter extends ObjectToStringConverter { public class LenderNameConverter extends ObjectToStringConverter {

View File

@@ -2,7 +2,7 @@ package de.katho.kBorrow.converter;
import org.jdesktop.swingx.autocomplete.ObjectToStringConverter; import org.jdesktop.swingx.autocomplete.ObjectToStringConverter;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.objects.KLender;
public class LenderStudentnumberConverter extends ObjectToStringConverter { public class LenderStudentnumberConverter extends ObjectToStringConverter {

View File

@@ -2,7 +2,7 @@ package de.katho.kBorrow.converter;
import org.jdesktop.swingx.autocomplete.ObjectToStringConverter; import org.jdesktop.swingx.autocomplete.ObjectToStringConverter;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.objects.KLender;
public class LenderSurnameConverter extends ObjectToStringConverter { public class LenderSurnameConverter extends ObjectToStringConverter {

View File

@@ -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<KGuiModel> models = new ArrayList<KGuiModel>();
private ArrayList<KArticle> data = new ArrayList<KArticle>();
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<KArticle> getData() {
return data;
}
public Object get(int id) {
if(data.size() > id) return data.get(id);
return null;
}
}

View File

@@ -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<KGuiModel> models = new ArrayList<KGuiModel>();
private ArrayList<KLender> data = new ArrayList<KLender>();
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<KLender> getData() {
return data;
}
public Object get(int id) {
if(data.size() > id) return data.get(id);
return null;
}
}

View File

@@ -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<KGuiModel> models = new ArrayList<KGuiModel>();
private ArrayList<KLending> data = new ArrayList<KLending>();
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<KLending> getData() {
return data;
}
public Object get(int id) {
if(data.size() > id) return data.get(id);
return null;
}
}

View File

@@ -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<KGuiModel> models = new ArrayList<KGuiModel>();
private ArrayList<KUser> data = new ArrayList<KUser>();
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<KUser> getData() {
return data;
}
public Object get(int id) {
if(data.size() > id) return data.get(id);
return null;
}
}

View File

@@ -1,4 +1,4 @@
package de.katho.kBorrow.data; package de.katho.kBorrow.data.objects;
public class KArticle { public class KArticle {
private int id; private int id;

View File

@@ -1,4 +1,4 @@
package de.katho.kBorrow.data; package de.katho.kBorrow.data.objects;
public class KLender { public class KLender {
private String name; private String name;

View File

@@ -1,4 +1,4 @@
package de.katho.kBorrow.data; package de.katho.kBorrow.data.objects;
public class KLending { public class KLending {
private int id; private int id;

View File

@@ -1,4 +1,4 @@
package de.katho.kBorrow.data; package de.katho.kBorrow.data.objects;
public class KUser { public class KUser {
private String name; private String name;

View File

@@ -2,10 +2,11 @@ package de.katho.kBorrow.db;
import java.util.ArrayList; import java.util.ArrayList;
import de.katho.kBorrow.data.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.data.KLending; import de.katho.kBorrow.data.objects.KLending;
import de.katho.kBorrow.data.KUser; import de.katho.kBorrow.data.objects.KUser;
import de.katho.kBorrow.interfaces.DbConnector;
public class SqlConnector implements DbConnector{ public class SqlConnector implements DbConnector{
@@ -116,5 +117,11 @@ public class SqlConnector implements DbConnector{
// TODO Auto-generated method stub // TODO Auto-generated method stub
return false; return false;
} }
@Override
public ArrayList<KLending> getLendingList() {
// TODO Auto-generated method stub
return null;
}
} }

View File

@@ -13,10 +13,11 @@ import java.util.Hashtable;
import java.util.Map.Entry; import java.util.Map.Entry;
import de.katho.kBorrow.Util; import de.katho.kBorrow.Util;
import de.katho.kBorrow.data.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.data.KLending; import de.katho.kBorrow.data.objects.KLending;
import de.katho.kBorrow.data.KUser; import de.katho.kBorrow.data.objects.KUser;
import de.katho.kBorrow.interfaces.DbConnector;
/** /**
* @class sqliteConnector * @class sqliteConnector
@@ -287,6 +288,25 @@ public class SqliteConnector implements DbConnector {
} }
} }
public ArrayList<KLending> getLendingList(){
ArrayList<KLending> lendingArr = new ArrayList<KLending>();
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<KLending> getActiveLendingList() { public ArrayList<KLending> getActiveLendingList() {
ArrayList<KLending> lendingArr = new ArrayList<KLending>(); ArrayList<KLending> lendingArr = new ArrayList<KLending>();

View File

@@ -11,8 +11,9 @@ import javax.swing.JLabel;
import javax.swing.JTable; import javax.swing.JTable;
import javax.swing.JTextArea; import javax.swing.JTextArea;
import de.katho.kBorrow.data.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.db.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.models.ArticleInspectTableModel; import de.katho.kBorrow.models.ArticleInspectTableModel;
import de.katho.kBorrow.models.ArticleTableModel; import de.katho.kBorrow.models.ArticleTableModel;
@@ -31,8 +32,8 @@ public class ArticleInspectFrame extends JFrame {
/** /**
* Create the frame. * Create the frame.
*/ */
public ArticleInspectFrame(int pRow, final DbConnector dbCon, HashMap<String, Object> pModels) { public ArticleInspectFrame(int pRow, final DbConnector dbCon, HashMap<String, KDataModel> models) {
articleModel = (ArticleTableModel)pModels.get("articletablemodel"); articleModel = (ArticleTableModel)models.get("articletablemodel");
article = articleModel.getArticleByRow(pRow); article = articleModel.getArticleByRow(pRow);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
@@ -71,7 +72,7 @@ public class ArticleInspectFrame extends JFrame {
panelInfo.add(taArticleDesc); panelInfo.add(taArticleDesc);
// Table // Table
artInsModel = new ArticleInspectTableModel(pRow, dbCon, pModels); artInsModel = new ArticleInspectTableModel(pRow, dbCon, models);
table = new JTable(artInsModel); table = new JTable(artInsModel);
table.setFillsViewportHeight(true); table.setFillsViewportHeight(true);
table.setRowHeight(30); table.setRowHeight(30);

View File

@@ -24,8 +24,9 @@ import javax.swing.UIManager;
import javax.swing.border.TitledBorder; import javax.swing.border.TitledBorder;
import de.katho.kBorrow.controller.ArticleController; import de.katho.kBorrow.controller.ArticleController;
import de.katho.kBorrow.data.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.db.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.listener.ArticleDeleteTableButton; import de.katho.kBorrow.listener.ArticleDeleteTableButton;
import de.katho.kBorrow.listener.ArticleEditTableButton; import de.katho.kBorrow.listener.ArticleEditTableButton;
import de.katho.kBorrow.listener.ArticleInspectTableButton; import de.katho.kBorrow.listener.ArticleInspectTableButton;
@@ -48,11 +49,11 @@ public class ArticlePanel extends JPanel implements ActionListener, KeyListener
* Create the panel. * Create the panel.
* @throws IOException * @throws IOException
*/ */
public ArticlePanel(final DbConnector dbCon, HashMap<String, Object> pModels) throws IOException { public ArticlePanel(final DbConnector dbCon, HashMap<String, KDataModel> models) throws IOException {
super(); super();
this.setLayout(null); this.setLayout(null);
articleTableModel = (ArticleTableModel)pModels.get("articletablemodel"); articleTableModel = (ArticleTableModel)models.get("articletablemodel");
articleController = new ArticleController(dbCon, pModels); articleController = new ArticleController(dbCon, models);
/* /*
* Tabelle und drumherum * Tabelle und drumherum
@@ -62,7 +63,7 @@ public class ArticlePanel extends JPanel implements ActionListener, KeyListener
articleTable.setRowHeight(30); articleTable.setRowHeight(30);
ArticleDeleteTableButton articleDeleteTableButton = new ArticleDeleteTableButton("L<EFBFBD>schen", articleTable, this, articleController); ArticleDeleteTableButton articleDeleteTableButton = new ArticleDeleteTableButton("L<EFBFBD>schen", articleTable, this, articleController);
ArticleEditTableButton articleEditTableButton = new ArticleEditTableButton("Bearbeiten", articleTable, this); 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++){ for (int i = 3; i <= 5; i++){
articleTable.getColumnModel().getColumn(i).setCellEditor(i == 3 ? articleInspectTableButton : i == 4 ? articleEditTableButton : articleDeleteTableButton); articleTable.getColumnModel().getColumn(i).setCellEditor(i == 3 ? articleInspectTableButton : i == 4 ? articleEditTableButton : articleDeleteTableButton);

View File

@@ -12,16 +12,14 @@ import java.util.HashMap;
import de.katho.kBorrow.Settings; import de.katho.kBorrow.Settings;
import de.katho.kBorrow.Util; 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.SqlConnector;
import de.katho.kBorrow.db.SqliteConnector; import de.katho.kBorrow.db.SqliteConnector;
import de.katho.kBorrow.models.ArticleTableModel; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.models.FreeArticleTableModel; import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.models.LenderModel;
import de.katho.kBorrow.models.LendingTableModel;
import de.katho.kBorrow.models.UserTableModel;
import de.katho.kBorrow.models.UserListModel;
public class MainWindow { public class MainWindow {
@@ -33,7 +31,7 @@ public class MainWindow {
private Settings set; private Settings set;
private HashMap<String, Object> models; private HashMap<String, KDataModel> models;
/** /**
* Create the application. * Create the application.
@@ -71,14 +69,12 @@ public class MainWindow {
dbCon = new SqlConnector(); dbCon = new SqlConnector();
} }
models = new HashMap<String, Object>(); models = new HashMap<String, KDataModel>();
models.put("usertablemodel", new UserTableModel(dbCon)); models.put("karticlemodel", new KArticleModel(dbCon));
models.put("userlistmodel", new UserListModel(dbCon)); models.put("klendermodel", new KLenderModel(dbCon));
models.put("articletablemodel", new ArticleTableModel(dbCon)); models.put("klendingmodel", new KLendingModel(dbCon));
models.put("freearticletablemodel", new FreeArticleTableModel(dbCon)); models.put("kusermodel", new KUserModel(dbCon));
models.put("lendermodel", new LenderModel(dbCon));
models.put("lendingtablemodel", new LendingTableModel(dbCon, models));
tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane = new JTabbedPane(JTabbedPane.TOP);
frame.getContentPane().add(tabbedPane, BorderLayout.CENTER); frame.getContentPane().add(tabbedPane, BorderLayout.CENTER);
tabbedPane.addTab("Neue Ausleihe", new NewLendingPanel(this.dbCon, models, set)); tabbedPane.addTab("Neue Ausleihe", new NewLendingPanel(this.dbCon, models, set));

View File

@@ -4,10 +4,11 @@ import java.util.HashMap;
import javax.swing.JPanel; import javax.swing.JPanel;
import de.katho.kBorrow.controller.ManageLendingsController; 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.listener.LendingReturnTableButton;
import de.katho.kBorrow.models.LendingTableModel; import de.katho.kBorrow.models.LendingTableModel;
@@ -29,7 +30,7 @@ public class ManageLendingsPanel extends JPanel {
private LendingTableModel lendingTableModel; private LendingTableModel lendingTableModel;
private ManageLendingsController manageLendingsController; private ManageLendingsController manageLendingsController;
public ManageLendingsPanel(DbConnector dbCon, HashMap<String, Object> models) throws IOException { public ManageLendingsPanel(DbConnector dbCon, HashMap<String, KDataModel> models) throws IOException {
lendingTableModel = (LendingTableModel)models.get("lendingtablemodel"); lendingTableModel = (LendingTableModel)models.get("lendingtablemodel");
manageLendingsController = new ManageLendingsController(dbCon, models); manageLendingsController = new ManageLendingsController(dbCon, models);

View File

@@ -34,9 +34,10 @@ import de.katho.kBorrow.controller.NewLendingController;
import de.katho.kBorrow.converter.LenderNameConverter; import de.katho.kBorrow.converter.LenderNameConverter;
import de.katho.kBorrow.converter.LenderStudentnumberConverter; import de.katho.kBorrow.converter.LenderStudentnumberConverter;
import de.katho.kBorrow.converter.LenderSurnameConverter; import de.katho.kBorrow.converter.LenderSurnameConverter;
import de.katho.kBorrow.data.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.db.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.listener.NewLendingTableButton; import de.katho.kBorrow.listener.NewLendingTableButton;
import de.katho.kBorrow.models.FreeArticleTableModel; import de.katho.kBorrow.models.FreeArticleTableModel;
import de.katho.kBorrow.models.LenderModel; import de.katho.kBorrow.models.LenderModel;
@@ -58,7 +59,7 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
private JLabel lblStartDate; private JLabel lblStartDate;
private JLabel lblArticleName; private JLabel lblArticleName;
private int articleId; private int articleId;
private LenderModel lenderModel; //private LenderModel lenderModel;
private JButton btnCancel; private JButton btnCancel;
private JButton btnSave; private JButton btnSave;
private NewLendingController newLendingController; private NewLendingController newLendingController;
@@ -71,15 +72,15 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
* @param dbCon * @param dbCon
* @throws IOException * @throws IOException
*/ */
public NewLendingPanel(final DbConnector dbCon, HashMap<String, Object> pModel, final Settings pSettings) throws IOException { public NewLendingPanel(final DbConnector dbCon, HashMap<String, KDataModel> models, final Settings pSettings) throws IOException {
setLayout(null); setLayout(null);
articleId = -1; articleId = -1;
// FreeArticleTable // FreeArticleTable
freeArticleTableModel = (FreeArticleTableModel)pModel.get("freearticletablemodel"); freeArticleTableModel = (FreeArticleTableModel)models.get("freearticletablemodel");
userListModel = (UserListModel)pModel.get("userlistmodel"); userListModel = new UserListModel(models.get("kusermodel"));
lenderModel = (LenderModel)pModel.get("lendermodel"); lenderModel = (LenderModel)models.get("lendermodel");
newLendingController = new NewLendingController(dbCon, pModel, pSettings); newLendingController = new NewLendingController(dbCon, models, pSettings);
JTable freeArticleTable = new JTable(freeArticleTableModel); JTable freeArticleTable = new JTable(freeArticleTableModel);
freeArticleTable.setRowHeight(30); freeArticleTable.setRowHeight(30);

View File

@@ -10,11 +10,12 @@ import javax.swing.border.EmptyBorder;
import javax.swing.JComboBox; import javax.swing.JComboBox;
import de.katho.kBorrow.controller.RewriteToNewUserController; 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 de.katho.kBorrow.models.RewriteUserModel;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.JLabel; import javax.swing.JLabel;
public class RewriteToNewUserDialog extends JDialog implements ActionListener { public class RewriteToNewUserDialog extends JDialog implements ActionListener {

View File

@@ -20,8 +20,9 @@ import javax.swing.UIManager;
import javax.swing.border.TitledBorder; import javax.swing.border.TitledBorder;
import de.katho.kBorrow.controller.UserController; import de.katho.kBorrow.controller.UserController;
import de.katho.kBorrow.data.KUser; import de.katho.kBorrow.data.objects.KUser;
import de.katho.kBorrow.db.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.listener.UserDeleteTableButton; import de.katho.kBorrow.listener.UserDeleteTableButton;
import de.katho.kBorrow.listener.UserEditTableButton; import de.katho.kBorrow.listener.UserEditTableButton;
import de.katho.kBorrow.models.UserTableModel; import de.katho.kBorrow.models.UserTableModel;
@@ -39,11 +40,11 @@ public class UserPanel extends JPanel implements ActionListener, KeyListener {
private UserTableModel userTableModel; private UserTableModel userTableModel;
private UserController userController; private UserController userController;
public UserPanel(final DbConnector dbCon, HashMap<String, Object> pModels) throws IOException{ public UserPanel(final DbConnector dbCon, HashMap<String, KDataModel> models) throws IOException{
super(); super();
setLayout(null); setLayout(null);
userTableModel = (UserTableModel)pModels.get("usertablemodel"); userTableModel = (UserTableModel)models.get("usertablemodel");
userController = new UserController(dbCon, pModels); userController = new UserController(dbCon, models);
//Tabelle und drumherum //Tabelle und drumherum
JTable userTable = new JTable(userTableModel); JTable userTable = new JTable(userTableModel);

View File

@@ -1,11 +1,11 @@
package de.katho.kBorrow.db; package de.katho.kBorrow.interfaces;
import java.util.ArrayList; import java.util.ArrayList;
import de.katho.kBorrow.data.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.data.KLending; import de.katho.kBorrow.data.objects.KLending;
import de.katho.kBorrow.data.KUser; import de.katho.kBorrow.data.objects.KUser;
public interface DbConnector { public interface DbConnector {
@@ -23,6 +23,7 @@ public interface DbConnector {
public int createNewLender(String pLName, String pLSurname, String pLSN); public int createNewLender(String pLName, String pLSurname, String pLSN);
public ArrayList<KLending> getActiveLendingList(); public ArrayList<KLending> getActiveLendingList();
public int returnLending(int lendingId, int artId, String string); public int returnLending(int lendingId, int artId, String string);
public ArrayList<KLending> getLendingList();
public ArrayList<KLending> getLendingListForArticle(int pArtId); public ArrayList<KLending> getLendingListForArticle(int pArtId);
public ArrayList<KUser> getRewriteUserList(int id); public ArrayList<KUser> getRewriteUserList(int id);
public boolean rewriteToNewUser(int pOldId, int pNewId); public boolean rewriteToNewUser(int pOldId, int pNewId);

View File

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

View File

@@ -0,0 +1,6 @@
package de.katho.kBorrow.interfaces;
public interface KGuiModel {
public void fetchData(KDataModel pModel);
}

View File

@@ -10,8 +10,9 @@ import javax.swing.ImageIcon;
import javax.swing.JTable; import javax.swing.JTable;
import sun.tools.jar.Main; import sun.tools.jar.Main;
import de.katho.kBorrow.db.DbConnector;
import de.katho.kBorrow.gui.ArticleInspectFrame; import de.katho.kBorrow.gui.ArticleInspectFrame;
import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel;
public class ArticleInspectTableButton extends TableButton { public class ArticleInspectTableButton extends TableButton {
@@ -20,7 +21,7 @@ public class ArticleInspectTableButton extends TableButton {
*/ */
private static final long serialVersionUID = -2591133864537097893L; private static final long serialVersionUID = -2591133864537097893L;
public ArticleInspectTableButton(String pLabel, final JTable pTable, final DbConnector dbCon, final HashMap<String, Object> pModels) throws IOException { public ArticleInspectTableButton(String pLabel, final JTable pTable, final DbConnector dbCon, final HashMap<String, KDataModel> models) throws IOException {
super(pLabel); super(pLabel);
URL url = Main.class.getResource("/icons/system-search.png"); URL url = Main.class.getResource("/icons/system-search.png");
ImageIcon icon = new ImageIcon(url); ImageIcon icon = new ImageIcon(url);
@@ -34,7 +35,7 @@ public class ArticleInspectTableButton extends TableButton {
int row = pTable.getSelectedRow(); int row = pTable.getSelectedRow();
new ArticleInspectFrame(row, dbCon, pModels); new ArticleInspectFrame(row, dbCon, models);
} }
}); });
} }

View File

@@ -11,6 +11,7 @@ import javax.swing.JTable;
import sun.tools.jar.Main; import sun.tools.jar.Main;
import de.katho.kBorrow.controller.UserController; import de.katho.kBorrow.controller.UserController;
import de.katho.kBorrow.gui.UserPanel; import de.katho.kBorrow.gui.UserPanel;
import de.katho.kBorrow.models.UserTableModel;
public class UserDeleteTableButton extends TableButton { public class UserDeleteTableButton extends TableButton {
@@ -29,8 +30,9 @@ public class UserDeleteTableButton extends TableButton {
fireEditingStopped(); fireEditingStopped();
int row = pTable.getSelectedRow(); int row = pTable.getSelectedRow();
int id = ((UserTableModel)pTable.getModel()).rowToId(row);
if(pController.deleteUser(row)) pPanel.setStatusLabel("Benutzer erfolgreich gel<65>scht."); if(pController.deleteUser(id)) pPanel.setStatusLabel("Benutzer erfolgreich gel<65>scht.");
else pPanel.setStatusLabel("Beuntzer konnte nicht gel<65>scht werden."); else pPanel.setStatusLabel("Beuntzer konnte nicht gel<65>scht werden.");
pPanel.resetModeEditUser(); pPanel.resetModeEditUser();

View File

@@ -5,13 +5,15 @@ import java.util.HashMap;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
import de.katho.kBorrow.data.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.data.KLending; import de.katho.kBorrow.data.objects.KLending;
import de.katho.kBorrow.data.KUser; import de.katho.kBorrow.data.objects.KUser;
import de.katho.kBorrow.db.DbConnector; 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; private LenderModel lenderModel;
public ArticleInspectTableModel(int pRow, DbConnector pDbCon, HashMap<String, Object> pModels){ public ArticleInspectTableModel(int pRow, DbConnector pDbCon, HashMap<String, KDataModel> models){
header = new String[] {"ID", "Verliehen von:", "Ausgeliehen an:", "Ausleihdatum", "Vor. R<>ckgabe", "R<EFBFBD>ckgabe"}; header = new String[] {"ID", "Verliehen von:", "Ausgeliehen an:", "Ausleihdatum", "Vor. R<>ckgabe", "R<EFBFBD>ckgabe"};
dbCon = pDbCon; dbCon = pDbCon;
articleModel = (ArticleTableModel)pModels.get("articletablemodel"); articleModel = (ArticleTableModel)models.get("articletablemodel");
userModel = (UserTableModel)pModels.get("usertablemodel"); userModel = (UserTableModel)models.get("usertablemodel");
lenderModel = (LenderModel)pModels.get("lendermodel"); lenderModel = (LenderModel)models.get("lendermodel");
article = articleModel.getArticleByRow(pRow); article = articleModel.getArticleByRow(pRow);

View File

@@ -4,10 +4,11 @@ import java.util.ArrayList;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
import de.katho.kBorrow.data.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.db.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KGuiModel;
public class ArticleTableModel extends AbstractTableModel { public class ArticleTableModel extends AbstractTableModel implements KGuiModel {
/** /**
* *

View File

@@ -1,8 +1,9 @@
package de.katho.kBorrow.models; 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 {
/** /**
* *

View File

@@ -2,20 +2,16 @@ package de.katho.kBorrow.models;
import java.util.ArrayList; import java.util.ArrayList;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.KLenderModel;
import de.katho.kBorrow.db.DbConnector; 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<KLender> data; private ArrayList<KLender> data;
private DbConnector dbCon;
public LenderModel(DbConnector pDbCon){ public LenderModel(KDataModel pModel){
dbCon = pDbCon; pModel.register(this);
updateModel();
}
public void updateModel(){
data = dbCon.getLenderList();
} }
public ArrayList<KLender> getList(){ public ArrayList<KLender> getList(){
@@ -115,4 +111,10 @@ public class LenderModel {
public KLender getLenderByRow(int pRow){ public KLender getLenderByRow(int pRow){
return data.get(pRow); return data.get(pRow);
} }
public void fetchData(KDataModel pModel) {
if(pModel instanceof KLenderModel){
data = ((KLenderModel)pModel).getData();
}
}
} }

View File

@@ -5,32 +5,34 @@ import java.util.HashMap;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
import de.katho.kBorrow.data.KArticle; import de.katho.kBorrow.data.KLendingModel;
import de.katho.kBorrow.data.KLender; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.data.KLending; import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.data.KUser; import de.katho.kBorrow.data.objects.KLending;
import de.katho.kBorrow.db.DbConnector; 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 static final long serialVersionUID = 1375465648631587292L;
private DbConnector dbCon;
private String[] header = {"ID", "Artikel", "Verliehen von:", "Ausgeliehen an:", "Ausleihdatum", "Vor. R<>ckgabe", ""}; private String[] header = {"ID", "Artikel", "Verliehen von:", "Ausgeliehen an:", "Ausleihdatum", "Vor. R<>ckgabe", ""};
private ArrayList<KLending> data = new ArrayList<KLending>(); private ArrayList<KLending> data = new ArrayList<KLending>();
private ArticleTableModel articleModel; private KDataModel articleModel;
private LenderModel lenderModel; private KDataModel lenderModel;
private UserTableModel userTableModel; private KDataModel userModel;
private KDataModel lendingModel;
public LendingTableModel(DbConnector pDbCon, HashMap<String, Object> pModels ) { public LendingTableModel(HashMap<String, KDataModel> pModels ) {
dbCon = pDbCon; articleModel = pModels.get("karticlemodel");
articleModel = (ArticleTableModel)pModels.get("articletablemodel"); lenderModel = pModels.get("klendermodel");
lenderModel = (LenderModel)pModels.get("lendermodel"); userModel = pModels.get("kusermodel");
userTableModel = (UserTableModel)pModels.get("usertablemodel"); lendingModel = pModels.get("klendingmodel");
updateModel(); lendingModel.register(this);
} }
public int getColumnCount() { public int getColumnCount() {
@@ -52,19 +54,19 @@ public class LendingTableModel extends AbstractTableModel {
case 1: case 1:
int artId = data.get(row).getArticleId(); int artId = data.get(row).getArticleId();
KArticle art = articleModel.getArticleById(artId); KArticle art = (KArticle) articleModel.get(artId);
return art.getName(); return art.getName();
case 2: case 2:
int uId = data.get(row).getUserId(); int uId = data.get(row).getUserId();
KUser user = userTableModel.getUserById(uId); KUser user = (KUser) userModel.get(uId);
return user.getName()+" "+user.getSurname(); return user.getName()+" "+user.getSurname();
case 3: case 3:
int lenderId = data.get(row).getLenderId(); int lenderId = data.get(row).getLenderId();
KLender lender = lenderModel.getLenderById(lenderId); KLender lender = (KLender) lenderModel.get(lenderId);
return lender.getName()+" "+lender.getSurname()+" ("+lender.getStudentnumber()+")"; return lender.getName()+" "+lender.getSurname()+" ("+lender.getStudentnumber()+")";
@@ -83,11 +85,6 @@ public class LendingTableModel extends AbstractTableModel {
if (col > 4) return true; if (col > 4) return true;
return false; return false;
} }
public void updateModel(){
data = dbCon.getActiveLendingList();
fireTableDataChanged();
}
public KLending getLendingByRow(int row) { public KLending getLendingByRow(int row) {
return data.get(row); return data.get(row);
@@ -99,9 +96,14 @@ public class LendingTableModel extends AbstractTableModel {
} }
return null; return null;
} }
public ArrayList<KLending> getLendingList(){ public void fetchData(KDataModel pModel) {
return data; if(pModel instanceof KLendingModel){
for(KLending elem : ((KLendingModel)pModel).getData()){
if(elem.getEndDate().equals("")) data.add(elem);
}
fireTableDataChanged();
}
} }
} }

View File

@@ -1,6 +1,12 @@
package de.katho.kBorrow.models; 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 { public class RewriteUserModel extends UserListModel {
@@ -10,18 +16,26 @@ public class RewriteUserModel extends UserListModel {
private static final long serialVersionUID = -78927566018961799L; private static final long serialVersionUID = -78927566018961799L;
private int id; private int id;
public RewriteUserModel(DbConnector pDbCon, int pId) { public RewriteUserModel(KDataModel pModel, int pId) {
super(pDbCon); super(pModel);
id = pId; id = pId;
updateModel(); pModel.register(this);
} }
public void updateModel(){ public void fetchData(KDataModel pModel){
data = dbCon.getRewriteUserList(id); if(pModel instanceof KUserModel){
data = new ArrayList<KUser>();
if(data.size() > 0) setSelectedItem(data.get(0).getName()+" "+data.get(0).getSurname());
for(KUser elem : ((KUserModel)pModel).getData()){
fireIntervalAdded(this, 0, data.size()-1); 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!"));
}
} }
} }

View File

@@ -5,32 +5,23 @@ import java.util.ArrayList;
import javax.swing.AbstractListModel; import javax.swing.AbstractListModel;
import javax.swing.ComboBoxModel; import javax.swing.ComboBoxModel;
import de.katho.kBorrow.data.KUser; import de.katho.kBorrow.data.KUserModel;
import de.katho.kBorrow.db.DbConnector; import de.katho.kBorrow.data.objects.KUser;
import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.interfaces.KGuiModel;
public class UserListModel extends AbstractListModel<String> implements ComboBoxModel<String> { public class UserListModel extends AbstractListModel<String> implements ComboBoxModel<String>, KGuiModel {
/** /**
* *
*/ */
private static final long serialVersionUID = -8653066929273274524L; private static final long serialVersionUID = -8653066929273274524L;
protected DbConnector dbCon;
protected ArrayList<KUser> data; protected ArrayList<KUser> data;
protected String selectedItem = null; protected String selectedItem = null;
public UserListModel(DbConnector pDbCon){ public UserListModel(KDataModel pUserModel){
super(); super();
dbCon = pDbCon; pUserModel.register(this);
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);
} }
public void setSelectedItem(Object object) { public void setSelectedItem(Object object) {
@@ -78,6 +69,16 @@ public class UserListModel extends AbstractListModel<String> implements ComboBox
} }
return null; 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);
}
} }

View File

@@ -4,30 +4,30 @@ import java.util.ArrayList;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
import de.katho.kBorrow.data.KUser; import de.katho.kBorrow.data.KUserModel;
import de.katho.kBorrow.db.DbConnector; 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 static final long serialVersionUID = 435829735305533728L;
private DbConnector dbCon;
private String[] header = {"ID", "Vorname", "Nachname", "", ""}; private String[] header = {"ID", "Vorname", "Nachname", "", ""};
private ArrayList<KUser> data = new ArrayList<KUser>(); private ArrayList<KUser> data;
public UserTableModel(DbConnector pDbCon){ public UserTableModel(KDataModel pModel){
dbCon = pDbCon; pModel.register(this);
updateModel();
} }
public int getColumnCount() { public int getColumnCount() {
return this.header.length; return header.length;
} }
public int getRowCount() { public int getRowCount() {
return this.data.size(); return data.size();
} }
public String getValueAt(int row, int col) { public String getValueAt(int row, int col) {
@@ -50,11 +50,6 @@ public class UserTableModel extends AbstractTableModel {
return header[index]; return header[index];
} }
public void updateModel(){
data = dbCon.getUserList();
fireTableDataChanged();
}
// Die Funktion muss differenzierter werden // Die Funktion muss differenzierter werden
public boolean isCellEditable(int row, int col){ public boolean isCellEditable(int row, int col){
if (col > 2) return true; if (col > 2) return true;
@@ -82,5 +77,18 @@ public class UserTableModel extends AbstractTableModel {
if(elem.getId() == pId) return elem; if(elem.getId() == pId) return elem;
} }
return null; 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();
}
}
} }