Es können nun bestehende Ausleihen wieder zurückgebucht werden. Außerdem
einiges an Refactoring betrieben.
This commit is contained in:
BIN
assets/icons/edit-undo.png
Normal file
BIN
assets/icons/edit-undo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1011 B |
BIN
assets/icons/system-search.png
Normal file
BIN
assets/icons/system-search.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
184
kBorrow.ucls
184
kBorrow.ucls
@@ -182,100 +182,101 @@
|
|||||||
</display>
|
</display>
|
||||||
</class>
|
</class>
|
||||||
<association id="21">
|
<association id="21">
|
||||||
<bendpoint x="2798" y="639"/>
|
<end type="SOURCE" refId="17" navigable="false">
|
||||||
<end type="SOURCE" refId="10" navigable="false">
|
<attribute id="22" name="set">
|
||||||
<attribute id="22" name="dbCon">
|
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
<position height="0" width="0" x="0" y="0"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<multiplicity id="23" minimum="0" maximum="1">
|
<multiplicity id="23" 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="1" navigable="true"/>
|
||||||
<display labels="true" multiplicity="true"/>
|
<display labels="true" multiplicity="true"/>
|
||||||
</association>
|
</association>
|
||||||
<association id="24">
|
<association id="24">
|
||||||
<end type="SOURCE" refId="14" navigable="false">
|
<bendpoint x="1017" y="639"/>
|
||||||
<attribute id="25" name="data">
|
<end type="SOURCE" refId="4" navigable="false">
|
||||||
|
<attribute id="25" name="dbCon">
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
<position height="0" width="0" x="0" y="0"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<multiplicity id="26" minimum="0" maximum="2147483647">
|
<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="TARGET" refId="2"/>
|
||||||
|
</realization>
|
||||||
|
<association id="33">
|
||||||
|
<end type="SOURCE" refId="5" navigable="false">
|
||||||
|
<attribute id="34" name="data">
|
||||||
|
<position height="0" width="0" x="0" y="0"/>
|
||||||
|
</attribute>
|
||||||
|
<multiplicity id="35" minimum="0" maximum="2147483647">
|
||||||
|
<position height="0" width="0" x="0" y="0"/>
|
||||||
|
</multiplicity>
|
||||||
|
</end>
|
||||||
|
<end type="TARGET" refId="19" navigable="true"/>
|
||||||
|
<display labels="true" multiplicity="true"/>
|
||||||
|
</association>
|
||||||
|
<generalization id="36">
|
||||||
|
<end type="SOURCE" refId="6"/>
|
||||||
|
<end type="TARGET" refId="12"/>
|
||||||
|
</generalization>
|
||||||
|
<association id="37">
|
||||||
|
<end type="SOURCE" refId="14" navigable="false">
|
||||||
|
<attribute id="38" name="dbCon">
|
||||||
|
<position height="0" width="0" x="0" y="0"/>
|
||||||
|
</attribute>
|
||||||
|
<multiplicity id="39" 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="40">
|
||||||
|
<end type="SOURCE" refId="14" navigable="false">
|
||||||
|
<attribute id="41" name="data">
|
||||||
|
<position height="0" width="0" x="0" y="0"/>
|
||||||
|
</attribute>
|
||||||
|
<multiplicity id="42" 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="27">
|
<generalization id="43">
|
||||||
<end type="SOURCE" refId="6"/>
|
|
||||||
<end type="TARGET" refId="12"/>
|
|
||||||
</generalization>
|
|
||||||
<generalization id="28">
|
|
||||||
<end type="SOURCE" refId="7"/>
|
<end type="SOURCE" refId="7"/>
|
||||||
<end type="TARGET" refId="12"/>
|
<end type="TARGET" refId="12"/>
|
||||||
</generalization>
|
</generalization>
|
||||||
<association id="29">
|
|
||||||
<end type="SOURCE" refId="17" navigable="false">
|
|
||||||
<attribute id="30" name="set">
|
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
|
||||||
</attribute>
|
|
||||||
<multiplicity id="31" 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="32">
|
|
||||||
<end type="SOURCE" refId="10" navigable="false">
|
|
||||||
<attribute id="33" name="articleModel">
|
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
|
||||||
</attribute>
|
|
||||||
<multiplicity id="34" minimum="0" maximum="1">
|
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
|
||||||
</multiplicity>
|
|
||||||
</end>
|
|
||||||
<end type="TARGET" refId="5" navigable="true"/>
|
|
||||||
<display labels="true" multiplicity="true"/>
|
|
||||||
</association>
|
|
||||||
<realization id="35">
|
|
||||||
<end type="SOURCE" refId="9"/>
|
|
||||||
<end type="TARGET" refId="2"/>
|
|
||||||
</realization>
|
|
||||||
<generalization id="36">
|
|
||||||
<end type="SOURCE" refId="16"/>
|
|
||||||
<end type="TARGET" refId="12"/>
|
|
||||||
</generalization>
|
|
||||||
<realization id="37">
|
|
||||||
<end type="SOURCE" refId="18"/>
|
|
||||||
<end type="TARGET" refId="2"/>
|
|
||||||
</realization>
|
|
||||||
<association id="38">
|
|
||||||
<end type="SOURCE" refId="14" navigable="false">
|
|
||||||
<attribute id="39" name="dbCon">
|
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
|
||||||
</attribute>
|
|
||||||
<multiplicity id="40" 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="41">
|
|
||||||
<end type="SOURCE" refId="5" navigable="false">
|
|
||||||
<attribute id="42" name="dbCon">
|
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
|
||||||
</attribute>
|
|
||||||
<multiplicity id="43" 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="44">
|
<association id="44">
|
||||||
<end type="SOURCE" refId="17" navigable="false">
|
<end type="SOURCE" refId="5" navigable="false">
|
||||||
<attribute id="45" name="dbCon">
|
<attribute id="45" name="dbCon">
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
<position height="0" width="0" x="0" y="0"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
@@ -286,39 +287,26 @@
|
|||||||
<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="47">
|
<generalization id="47">
|
||||||
<bendpoint x="1017" y="639"/>
|
<end type="SOURCE" refId="16"/>
|
||||||
<end type="SOURCE" refId="4" navigable="false">
|
<end type="TARGET" refId="12"/>
|
||||||
<attribute id="48" name="dbCon">
|
</generalization>
|
||||||
|
<generalization id="48">
|
||||||
|
<end type="SOURCE" refId="8"/>
|
||||||
|
<end type="TARGET" refId="12"/>
|
||||||
|
</generalization>
|
||||||
|
<association id="49">
|
||||||
|
<end type="SOURCE" refId="17" navigable="false">
|
||||||
|
<attribute id="50" name="dbCon">
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
<position height="0" width="0" x="0" y="0"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<multiplicity id="49" minimum="0" maximum="1">
|
<multiplicity id="51" 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="50">
|
|
||||||
<end type="SOURCE" refId="5" navigable="false">
|
|
||||||
<attribute id="51" name="data">
|
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
|
||||||
</attribute>
|
|
||||||
<multiplicity id="52" minimum="0" maximum="2147483647">
|
|
||||||
<position height="0" width="0" x="0" y="0"/>
|
|
||||||
</multiplicity>
|
|
||||||
</end>
|
|
||||||
<end type="TARGET" refId="19" navigable="true"/>
|
|
||||||
<display labels="true" multiplicity="true"/>
|
|
||||||
</association>
|
|
||||||
<generalization id="53">
|
|
||||||
<end type="SOURCE" refId="8"/>
|
|
||||||
<end type="TARGET" refId="12"/>
|
|
||||||
</generalization>
|
|
||||||
<generalization id="54">
|
|
||||||
<end type="SOURCE" refId="13"/>
|
|
||||||
<end type="TARGET" refId="12"/>
|
|
||||||
</generalization>
|
|
||||||
<classifier-display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
<classifier-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">
|
||||||
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ public class ArticleController {
|
|||||||
|
|
||||||
public ArticleController(DbConnector pDbCon, HashMap<String, Object> pModels){
|
public ArticleController(DbConnector pDbCon, HashMap<String, Object> pModels){
|
||||||
dbCon = pDbCon;
|
dbCon = pDbCon;
|
||||||
articleTableModel = (ArticleTableModel)pModels.get("articlemodel");
|
articleTableModel = (ArticleTableModel)pModels.get("articletablemodel");
|
||||||
freeArticleTableModel = (FreeArticleTableModel)pModels.get("freearticlemodel");
|
freeArticleTableModel = (FreeArticleTableModel)pModels.get("freearticletablemodel");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -59,10 +59,13 @@ public class ArticleController {
|
|||||||
/**
|
/**
|
||||||
* L<>scht den Artikel mit der gegebenen ID in der Datenbank und aktualisiert die Tabelle.
|
* L<>scht den Artikel mit der gegebenen ID in der Datenbank und aktualisiert die Tabelle.
|
||||||
*
|
*
|
||||||
* @param id ID des Artikels, der gel<65>scht werden soll.
|
* @param pRow Row des Artikels, der gel<65>scht werden soll.
|
||||||
* @return true, wenn der Artikel erfolgreich gel<65>scht wurde. false, wenn ein Fehler aufgetreten ist.
|
* @return true, wenn der Artikel erfolgreich gel<65>scht wurde. false, wenn ein Fehler aufgetreten ist.
|
||||||
*/
|
*/
|
||||||
public boolean deleteArticle(int id) {
|
public boolean deleteArticle(int pRow) {
|
||||||
|
|
||||||
|
int id = articleTableModel.getArticleByRow(pRow).getId();
|
||||||
|
|
||||||
if(this.dbCon.deleteArticle(id)){
|
if(this.dbCon.deleteArticle(id)){
|
||||||
articleTableModel.updateModel();
|
articleTableModel.updateModel();
|
||||||
freeArticleTableModel.updateModel();
|
freeArticleTableModel.updateModel();
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
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.models.FreeArticleTableModel;
|
||||||
|
import de.katho.kBorrow.models.LendingTableModel;
|
||||||
|
|
||||||
|
public class ManageLendingsController {
|
||||||
|
|
||||||
|
private DbConnector dbCon;
|
||||||
|
private FreeArticleTableModel freeArticleTableModel;
|
||||||
|
private LendingTableModel lendingTableModel;
|
||||||
|
|
||||||
|
public ManageLendingsController(DbConnector pDbCon, HashMap<String, Object> pModels){
|
||||||
|
dbCon = pDbCon;
|
||||||
|
|
||||||
|
freeArticleTableModel = (FreeArticleTableModel)pModels.get("freearticletablemodel");
|
||||||
|
lendingTableModel = (LendingTableModel)pModels.get("lendingtablemodel");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void returnLending(int pRow) {
|
||||||
|
KLending lending = lendingTableModel.getLendingByRow(pRow);
|
||||||
|
|
||||||
|
int artId = lending.getArticleId();
|
||||||
|
int lendingId = lending.getId();
|
||||||
|
|
||||||
|
dbCon.returnLending(lendingId, artId, Util.getCurrentDate());
|
||||||
|
|
||||||
|
freeArticleTableModel.updateModel();
|
||||||
|
lendingTableModel.updateModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@ import de.katho.kBorrow.data.KLender;
|
|||||||
import de.katho.kBorrow.db.DbConnector;
|
import de.katho.kBorrow.db.DbConnector;
|
||||||
import de.katho.kBorrow.models.FreeArticleTableModel;
|
import de.katho.kBorrow.models.FreeArticleTableModel;
|
||||||
import de.katho.kBorrow.models.LenderModel;
|
import de.katho.kBorrow.models.LenderModel;
|
||||||
|
import de.katho.kBorrow.models.LendingTableModel;
|
||||||
import de.katho.kBorrow.models.UserListModel;
|
import de.katho.kBorrow.models.UserListModel;
|
||||||
|
|
||||||
public class NewLendingController {
|
public class NewLendingController {
|
||||||
@@ -17,12 +18,14 @@ public class NewLendingController {
|
|||||||
private UserListModel userListModel;
|
private UserListModel userListModel;
|
||||||
private LenderModel lenderModel;
|
private LenderModel lenderModel;
|
||||||
private FreeArticleTableModel freeArticleModel;
|
private FreeArticleTableModel freeArticleModel;
|
||||||
|
private LendingTableModel lendingTableModel;
|
||||||
|
|
||||||
public NewLendingController(DbConnector pDbCon, HashMap<String, Object> pModels){
|
public NewLendingController(DbConnector pDbCon, HashMap<String, Object> pModels){
|
||||||
dbCon = pDbCon;
|
dbCon = pDbCon;
|
||||||
userListModel = (UserListModel)pModels.get("userlistmodel");
|
userListModel = (UserListModel)pModels.get("userlistmodel");
|
||||||
lenderModel = (LenderModel)pModels.get("lendermodel");
|
lenderModel = (LenderModel)pModels.get("lendermodel");
|
||||||
freeArticleModel = (FreeArticleTableModel)pModels.get("freearticlemodel");
|
freeArticleModel = (FreeArticleTableModel)pModels.get("freearticletablemodel");
|
||||||
|
lendingTableModel = (LendingTableModel)pModels.get("lendingtablemodel");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,10 +37,12 @@ public class NewLendingController {
|
|||||||
* 3: Das R<>ckgabedatum ist fr<66>her oder gleich dem Ausleihdatum
|
* 3: Das R<>ckgabedatum ist fr<66>her oder gleich dem Ausleihdatum
|
||||||
* 4: Die gegebene Kombination aus Lender-Name, -Surname und -Studentnumber
|
* 4: Die gegebene Kombination aus Lender-Name, -Surname und -Studentnumber
|
||||||
* existiert mehrmals in der Datenbank. Das darf nicht sein und wirft daher einen Fehler!
|
* existiert mehrmals in der Datenbank. Das darf nicht sein und wirft daher einen Fehler!
|
||||||
|
* 5: Matrikelnummer muss eine Zahl sein!
|
||||||
*/
|
*/
|
||||||
public int newLending(int pArtId, String pLName, String pLSurname, String pLSN, String pStartDate, Date pEstEndDate, String pUsername){
|
public int newLending(int pArtId, String pLName, String pLSurname, String pLSN, String pStartDate, Date pEstEndDate, String pUsername){
|
||||||
if (pArtId == -1 || pStartDate.isEmpty() || pEstEndDate == null || pLName.isEmpty() || pLSurname.isEmpty() || pUsername.isEmpty()) return 2;
|
if(pArtId == -1 || pStartDate.isEmpty() || pEstEndDate == null || pLName.isEmpty() || pLSurname.isEmpty() || pUsername.isEmpty()) return 2;
|
||||||
if (pEstEndDate.before(new Date())) return 3;
|
if(pEstEndDate.before(new Date())) return 3;
|
||||||
|
if(!pLSN.matches("[0-9]+")) return 5;
|
||||||
|
|
||||||
ArrayList<KLender> lenders = lenderModel.getLenders(pLName, pLSurname, pLSN);
|
ArrayList<KLender> lenders = lenderModel.getLenders(pLName, pLSurname, pLSN);
|
||||||
if(lenders.size() == 0) {
|
if(lenders.size() == 0) {
|
||||||
@@ -45,6 +50,7 @@ public class NewLendingController {
|
|||||||
|
|
||||||
if(result == 0){
|
if(result == 0){
|
||||||
lenderModel.updateModel();
|
lenderModel.updateModel();
|
||||||
|
|
||||||
return newLending(pArtId, pLName, pLSurname, pLSN, pStartDate, pEstEndDate, pUsername);
|
return newLending(pArtId, pLName, pLSurname, pLSN, pStartDate, pEstEndDate, pUsername);
|
||||||
}
|
}
|
||||||
else return result;
|
else return result;
|
||||||
@@ -57,6 +63,7 @@ public class NewLendingController {
|
|||||||
|
|
||||||
if(result == 0){
|
if(result == 0){
|
||||||
freeArticleModel.updateModel();
|
freeArticleModel.updateModel();
|
||||||
|
lendingTableModel.updateModel();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
else return result;
|
else return result;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class UserController {
|
|||||||
|
|
||||||
public UserController(DbConnector pDbCon, HashMap<String, Object> pModels) {
|
public UserController(DbConnector pDbCon, HashMap<String, Object> pModels) {
|
||||||
dbCon = pDbCon;
|
dbCon = pDbCon;
|
||||||
userTableModel = (UserTableModel)pModels.get("usermodel");
|
userTableModel = (UserTableModel)pModels.get("usertablemodel");
|
||||||
userListModel = (UserListModel)pModels.get("userlistmodel");
|
userListModel = (UserListModel)pModels.get("userlistmodel");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,7 +38,9 @@ public class UserController {
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean deleteUser(int id){
|
public boolean deleteUser(int pRow){
|
||||||
|
int id = userTableModel.getUserByRow(pRow).getId();
|
||||||
|
|
||||||
if(dbCon.deleteUser(id)){
|
if(dbCon.deleteUser(id)){
|
||||||
userTableModel.updateModel();
|
userTableModel.updateModel();
|
||||||
userListModel.updateModel();
|
userListModel.updateModel();
|
||||||
|
|||||||
49
src/de/katho/kBorrow/data/KLending.java
Normal file
49
src/de/katho/kBorrow/data/KLending.java
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
package de.katho.kBorrow.data;
|
||||||
|
|
||||||
|
public class KLending {
|
||||||
|
private int id;
|
||||||
|
private int user_id;
|
||||||
|
private int article_id;
|
||||||
|
private int lender_id;
|
||||||
|
private String start_date;
|
||||||
|
private String expected_end_date;
|
||||||
|
private String end_date;
|
||||||
|
|
||||||
|
public KLending(int pId, int pUserId, int pLenderId, int pArticleId, String pStartDate, String pExpEndDate, String pEndDate){
|
||||||
|
id = pId;
|
||||||
|
user_id = pUserId;
|
||||||
|
article_id = pArticleId;
|
||||||
|
lender_id = pLenderId;
|
||||||
|
start_date = pStartDate;
|
||||||
|
expected_end_date = pExpEndDate;
|
||||||
|
end_date = pEndDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId(){
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUserId(){
|
||||||
|
return user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLenderId(){
|
||||||
|
return lender_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getArticleId(){
|
||||||
|
return article_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStartDate() {
|
||||||
|
return start_date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getExpectedEndDate() {
|
||||||
|
return expected_end_date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEndDate(){
|
||||||
|
return end_date;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
import de.katho.kBorrow.data.KArticle;
|
import de.katho.kBorrow.data.KArticle;
|
||||||
import de.katho.kBorrow.data.KLender;
|
import de.katho.kBorrow.data.KLender;
|
||||||
|
import de.katho.kBorrow.data.KLending;
|
||||||
import de.katho.kBorrow.data.KUser;
|
import de.katho.kBorrow.data.KUser;
|
||||||
|
|
||||||
public interface DbConnector {
|
public interface DbConnector {
|
||||||
@@ -20,5 +21,6 @@ public interface DbConnector {
|
|||||||
public ArrayList<KLender> getLenderList();
|
public ArrayList<KLender> getLenderList();
|
||||||
public int createNewLending(int pArtId, int pUId, int pLId, String pStartDate, String pEstEndDate);
|
public int createNewLending(int pArtId, int pUId, int pLId, String pStartDate, String pEstEndDate);
|
||||||
public int createNewLender(String pLName, String pLSurname, String pLSN);
|
public int createNewLender(String pLName, String pLSurname, String pLSN);
|
||||||
|
public ArrayList<KLending> getActiveLendingList();
|
||||||
|
public int returnLending(int lendingId, int artId, String string);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
import de.katho.kBorrow.data.KArticle;
|
import de.katho.kBorrow.data.KArticle;
|
||||||
import de.katho.kBorrow.data.KLender;
|
import de.katho.kBorrow.data.KLender;
|
||||||
|
import de.katho.kBorrow.data.KLending;
|
||||||
import de.katho.kBorrow.data.KUser;
|
import de.katho.kBorrow.data.KUser;
|
||||||
|
|
||||||
public class SqlConnector implements DbConnector{
|
public class SqlConnector implements DbConnector{
|
||||||
@@ -85,5 +86,17 @@ public class SqlConnector implements DbConnector{
|
|||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList<KLending> getActiveLendingList() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int returnLending(int id, int artId, String end_date) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import java.util.Map.Entry;
|
|||||||
|
|
||||||
import de.katho.kBorrow.data.KArticle;
|
import de.katho.kBorrow.data.KArticle;
|
||||||
import de.katho.kBorrow.data.KLender;
|
import de.katho.kBorrow.data.KLender;
|
||||||
|
import de.katho.kBorrow.data.KLending;
|
||||||
import de.katho.kBorrow.data.KUser;
|
import de.katho.kBorrow.data.KUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -264,6 +265,27 @@ public class SqliteConnector implements DbConnector {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList<KLending> getActiveLendingList() {
|
||||||
|
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 WHERE end_date IS NULL";
|
||||||
|
|
||||||
|
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")));
|
||||||
|
}
|
||||||
|
|
||||||
|
return lendingArr;
|
||||||
|
}
|
||||||
|
catch(SQLException e){
|
||||||
|
e.printStackTrace();
|
||||||
|
return lendingArr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return 0: Benutzer erfolgreich erzeugt
|
* @return 0: Benutzer erfolgreich erzeugt
|
||||||
@@ -403,5 +425,22 @@ public class SqliteConnector implements DbConnector {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int returnLending(int lendingId, int artId, String end_date) {
|
||||||
|
try{
|
||||||
|
Statement st = connection.createStatement();
|
||||||
|
String query = "UPDATE article SET is_free = 1 WHERE id = '"+artId+"';"
|
||||||
|
+ "UPDATE lending SET end_date = '"+end_date+"' WHERE id = '"+lendingId+"';";
|
||||||
|
|
||||||
|
st.executeUpdate(query);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
catch(SQLException e){
|
||||||
|
e.printStackTrace();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ 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.db.DbConnector;
|
import de.katho.kBorrow.db.DbConnector;
|
||||||
import de.katho.kBorrow.listener.ArticleDeleteTableButton;
|
import de.katho.kBorrow.listener.ArticleDeleteTableButton;
|
||||||
import de.katho.kBorrow.listener.ArticleEditTableButton;
|
import de.katho.kBorrow.listener.ArticleEditTableButton;
|
||||||
@@ -49,7 +50,7 @@ public class ArticlePanel extends JPanel implements ActionListener, KeyListener
|
|||||||
public ArticlePanel(final DbConnector dbCon, HashMap<String, Object> pModels) throws IOException {
|
public ArticlePanel(final DbConnector dbCon, HashMap<String, Object> pModels) throws IOException {
|
||||||
super();
|
super();
|
||||||
this.setLayout(null);
|
this.setLayout(null);
|
||||||
articleTableModel = (ArticleTableModel)pModels.get("articlemodel");
|
articleTableModel = (ArticleTableModel)pModels.get("articletablemodel");
|
||||||
articleController = new ArticleController(dbCon, pModels);
|
articleController = new ArticleController(dbCon, pModels);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -170,11 +171,13 @@ public class ArticlePanel extends JPanel implements ActionListener, KeyListener
|
|||||||
this.textAreaArticleDescription.setText("");
|
this.textAreaArticleDescription.setText("");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setModeEditArticle(int articleId, String articleName, String articleDescription) {
|
public void setModeEditArticle(int pRow) {
|
||||||
|
KArticle art = articleTableModel.getArticleByRow(pRow);
|
||||||
|
|
||||||
this.articleModeEdit = true;
|
this.articleModeEdit = true;
|
||||||
this.articleEditId = articleId;
|
this.articleEditId = art.getId();
|
||||||
this.textFieldArticleName.setText(articleName);
|
this.textFieldArticleName.setText(art.getName());
|
||||||
this.textAreaArticleDescription.setText(articleDescription);
|
this.textAreaArticleDescription.setText(art.getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveButtonPressed(){
|
private void saveButtonPressed(){
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import de.katho.kBorrow.db.SqliteConnector;
|
|||||||
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;
|
||||||
|
import de.katho.kBorrow.models.LendingTableModel;
|
||||||
import de.katho.kBorrow.models.UserTableModel;
|
import de.katho.kBorrow.models.UserTableModel;
|
||||||
import de.katho.kBorrow.models.UserListModel;
|
import de.katho.kBorrow.models.UserListModel;
|
||||||
|
|
||||||
@@ -62,11 +63,12 @@ public class MainWindow {
|
|||||||
}
|
}
|
||||||
|
|
||||||
models = new HashMap<String, Object>();
|
models = new HashMap<String, Object>();
|
||||||
models.put("usermodel", new UserTableModel(dbCon));
|
models.put("usertablemodel", new UserTableModel(dbCon));
|
||||||
models.put("userlistmodel", new UserListModel(dbCon));
|
models.put("userlistmodel", new UserListModel(dbCon));
|
||||||
models.put("articlemodel", new ArticleTableModel(dbCon));
|
models.put("articletablemodel", new ArticleTableModel(dbCon));
|
||||||
models.put("freearticlemodel", new FreeArticleTableModel(dbCon));
|
models.put("freearticletablemodel", new FreeArticleTableModel(dbCon));
|
||||||
models.put("lendermodel", new LenderModel(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(this.tabbedPane, BorderLayout.CENTER);
|
frame.getContentPane().add(this.tabbedPane, BorderLayout.CENTER);
|
||||||
|
|||||||
@@ -1,24 +1,63 @@
|
|||||||
package de.katho.kBorrow.gui;
|
package de.katho.kBorrow.gui;
|
||||||
|
import java.awt.Color;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
|
import de.katho.kBorrow.controller.ManageLendingsController;
|
||||||
import de.katho.kBorrow.db.DbConnector;
|
import de.katho.kBorrow.db.DbConnector;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import de.katho.kBorrow.listener.LendingReturnTableButton;
|
||||||
|
import de.katho.kBorrow.models.LendingTableModel;
|
||||||
|
|
||||||
|
import javax.swing.JScrollPane;
|
||||||
|
import javax.swing.JTable;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
import javax.swing.border.TitledBorder;
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
|
||||||
public class ManageLendingsPanel extends JPanel {
|
public class ManageLendingsPanel extends JPanel {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -1559803834099586468L;
|
private static final long serialVersionUID = 925691137664223491L;
|
||||||
|
|
||||||
/**
|
|
||||||
* Create the panel.
|
|
||||||
* @param dbCon
|
|
||||||
*/
|
|
||||||
public ManageLendingsPanel(DbConnector dbCon, HashMap<String, Object> pModels) {
|
|
||||||
|
|
||||||
|
private LendingTableModel lendingTableModel;
|
||||||
|
private ManageLendingsController manageLendingsController;
|
||||||
|
|
||||||
|
public ManageLendingsPanel(DbConnector dbCon, HashMap<String, Object> models) throws IOException {
|
||||||
|
|
||||||
|
lendingTableModel = (LendingTableModel)models.get("lendingtablemodel");
|
||||||
|
manageLendingsController = new ManageLendingsController(dbCon, models);
|
||||||
|
|
||||||
|
// Lending-Table
|
||||||
|
JTable lendingTable = new JTable(lendingTableModel);
|
||||||
|
lendingTable.setFillsViewportHeight(true);
|
||||||
|
lendingTable.setRowHeight(30);
|
||||||
|
|
||||||
|
LendingReturnTableButton lrtb = new LendingReturnTableButton("Ausleihe beenden", lendingTable, manageLendingsController);
|
||||||
|
|
||||||
|
for(int i = 5; i <= 6; i++){
|
||||||
|
lendingTable.getColumnModel().getColumn(i).setCellEditor(i == 5 ? null : lrtb);
|
||||||
|
lendingTable.getColumnModel().getColumn(i).setCellRenderer(i == 5 ? null : lrtb);
|
||||||
|
|
||||||
|
lendingTable.getColumnModel().getColumn(i).setMinWidth(30);
|
||||||
|
lendingTable.getColumnModel().getColumn(i).setMaxWidth(30);
|
||||||
|
lendingTable.getColumnModel().getColumn(i).setPreferredWidth(30);
|
||||||
|
}
|
||||||
|
lendingTable.getColumnModel().getColumn(0).setMinWidth(30);
|
||||||
|
lendingTable.getColumnModel().getColumn(0).setMaxWidth(30);
|
||||||
|
lendingTable.getColumnModel().getColumn(0).setPreferredWidth(30);
|
||||||
|
|
||||||
|
setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Aktive Ausleihen", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
||||||
|
setLayout(new BorderLayout(0, 0));
|
||||||
|
add(new JScrollPane(lendingTable));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ 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.KLender;
|
import de.katho.kBorrow.data.KLender;
|
||||||
import de.katho.kBorrow.db.DbConnector;
|
import de.katho.kBorrow.db.DbConnector;
|
||||||
import de.katho.kBorrow.listener.NewLendingTableButton;
|
import de.katho.kBorrow.listener.NewLendingTableButton;
|
||||||
@@ -74,7 +75,7 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
|||||||
articleId = -1;
|
articleId = -1;
|
||||||
|
|
||||||
// FreeArticleTable
|
// FreeArticleTable
|
||||||
freeArticleTableModel = (FreeArticleTableModel)pModel.get("freearticlemodel");
|
freeArticleTableModel = (FreeArticleTableModel)pModel.get("freearticletablemodel");
|
||||||
userListModel = (UserListModel)pModel.get("userlistmodel");
|
userListModel = (UserListModel)pModel.get("userlistmodel");
|
||||||
lenderModel = (LenderModel)pModel.get("lendermodel");
|
lenderModel = (LenderModel)pModel.get("lendermodel");
|
||||||
newLendingController = new NewLendingController(dbCon, pModel);
|
newLendingController = new NewLendingController(dbCon, pModel);
|
||||||
@@ -244,14 +245,18 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
|||||||
lblStatus.setText("Die gegebene Kombination aus Lender-Name, -Surname und -Studentnumber" +
|
lblStatus.setText("Die gegebene Kombination aus Lender-Name, -Surname und -Studentnumber" +
|
||||||
"existiert mehrmals in der Datenbank. Das darf nicht sein und wirft daher einen Fehler!");
|
"existiert mehrmals in der Datenbank. Das darf nicht sein und wirft daher einen Fehler!");
|
||||||
break;
|
break;
|
||||||
|
case 5:
|
||||||
|
lblStatus.setText("Matrikelnummer muss eine Zahl sein!");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setModeNewLending(int pArticleId, String articleName) {
|
public void setModeNewLending(int pRow) {
|
||||||
|
KArticle art = freeArticleTableModel.getArticleByRow(pRow);
|
||||||
|
|
||||||
lblStartDate.setText(Util.getCurrentDate());
|
lblStartDate.setText(Util.getCurrentDate());
|
||||||
lblArticleName.setText(articleName);
|
lblArticleName.setText(art.getName());
|
||||||
articleId = pArticleId;
|
articleId = art.getId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ 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.db.DbConnector;
|
import de.katho.kBorrow.db.DbConnector;
|
||||||
import de.katho.kBorrow.listener.UserDeleteTableButton;
|
import de.katho.kBorrow.listener.UserDeleteTableButton;
|
||||||
import de.katho.kBorrow.listener.UserEditTableButton;
|
import de.katho.kBorrow.listener.UserEditTableButton;
|
||||||
@@ -41,7 +42,7 @@ public class UserPanel extends JPanel implements ActionListener, KeyListener {
|
|||||||
public UserPanel(final DbConnector dbCon, HashMap<String, Object> pModels) throws IOException{
|
public UserPanel(final DbConnector dbCon, HashMap<String, Object> pModels) throws IOException{
|
||||||
super();
|
super();
|
||||||
setLayout(null);
|
setLayout(null);
|
||||||
userTableModel = (UserTableModel)pModels.get("usermodel");
|
userTableModel = (UserTableModel)pModels.get("usertablemodel");
|
||||||
userController = new UserController(dbCon, pModels);
|
userController = new UserController(dbCon, pModels);
|
||||||
|
|
||||||
//Tabelle und drumherum
|
//Tabelle und drumherum
|
||||||
@@ -146,11 +147,13 @@ public class UserPanel extends JPanel implements ActionListener, KeyListener {
|
|||||||
this.textFieldUserSurname.setText("");
|
this.textFieldUserSurname.setText("");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setModeEditUser(int pId, String pName, String pSurname){
|
public void setModeEditUser(int pRow){
|
||||||
|
KUser user = userTableModel.getUserByRow(pRow);
|
||||||
|
|
||||||
this.userModeEdit = true;
|
this.userModeEdit = true;
|
||||||
this.userEditId = pId;
|
this.userEditId = user.getId();
|
||||||
this.textFieldUserName.setText(pName);
|
this.textFieldUserName.setText(user.getName());
|
||||||
this.textFieldUserSurname.setText(pSurname);
|
this.textFieldUserSurname.setText(user.getSurname());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveButtonPressed(){
|
private void saveButtonPressed(){
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import javax.swing.JTable;
|
|||||||
|
|
||||||
import de.katho.kBorrow.controller.ArticleController;
|
import de.katho.kBorrow.controller.ArticleController;
|
||||||
import de.katho.kBorrow.gui.ArticlePanel;
|
import de.katho.kBorrow.gui.ArticlePanel;
|
||||||
import de.katho.kBorrow.models.ArticleTableModel;
|
|
||||||
|
|
||||||
public class ArticleDeleteTableButton extends TableButton {
|
public class ArticleDeleteTableButton extends TableButton {
|
||||||
|
|
||||||
@@ -31,12 +30,9 @@ public class ArticleDeleteTableButton extends TableButton {
|
|||||||
public void actionPerformed(ActionEvent e){
|
public void actionPerformed(ActionEvent e){
|
||||||
fireEditingStopped();
|
fireEditingStopped();
|
||||||
|
|
||||||
ArticleTableModel model = (ArticleTableModel) pTable.getModel();
|
|
||||||
|
|
||||||
int row = pTable.getSelectedRow();
|
int row = pTable.getSelectedRow();
|
||||||
int id = model.getArticleId(row);
|
|
||||||
|
|
||||||
pController.deleteArticle(id);
|
pController.deleteArticle(row);
|
||||||
pPanel.resetModeEditArticle();
|
pPanel.resetModeEditArticle();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import javax.swing.ImageIcon;
|
|||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
|
|
||||||
import de.katho.kBorrow.gui.ArticlePanel;
|
import de.katho.kBorrow.gui.ArticlePanel;
|
||||||
import de.katho.kBorrow.models.ArticleTableModel;
|
|
||||||
|
|
||||||
public class ArticleEditTableButton extends TableButton {
|
public class ArticleEditTableButton extends TableButton {
|
||||||
|
|
||||||
@@ -30,10 +29,9 @@ public class ArticleEditTableButton extends TableButton {
|
|||||||
public void actionPerformed(ActionEvent e){
|
public void actionPerformed(ActionEvent e){
|
||||||
fireEditingStopped();
|
fireEditingStopped();
|
||||||
|
|
||||||
ArticleTableModel model = (ArticleTableModel) pTable.getModel();
|
|
||||||
int row = pTable.getSelectedRow();
|
int row = pTable.getSelectedRow();
|
||||||
|
|
||||||
articleTab.setModeEditArticle(model.getArticleId(row), model.getArticleName(row), model.getArticleDescription(row));
|
articleTab.setModeEditArticle(row);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
40
src/de/katho/kBorrow/listener/LendingReturnTableButton.java
Normal file
40
src/de/katho/kBorrow/listener/LendingReturnTableButton.java
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
package de.katho.kBorrow.listener;
|
||||||
|
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
|
import javax.swing.JTable;
|
||||||
|
|
||||||
|
import de.katho.kBorrow.controller.ManageLendingsController;
|
||||||
|
|
||||||
|
public class LendingReturnTableButton extends TableButton {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 4841475504601928160L;
|
||||||
|
|
||||||
|
public LendingReturnTableButton(String pLabel, final JTable pTable, final ManageLendingsController pController) throws IOException {
|
||||||
|
super(pLabel);
|
||||||
|
|
||||||
|
ImageIcon icon = new ImageIcon(ImageIO.read(new File("assets/icons/edit-undo.png")));
|
||||||
|
|
||||||
|
this.buttonE.setIcon(icon);
|
||||||
|
this.buttonR.setIcon(icon);
|
||||||
|
|
||||||
|
this.buttonE.addActionListener(new ActionListener(){
|
||||||
|
public void actionPerformed(ActionEvent e){
|
||||||
|
fireEditingStopped();
|
||||||
|
|
||||||
|
int row = pTable.getSelectedRow();
|
||||||
|
|
||||||
|
pController.returnLending(row);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -10,7 +10,6 @@ import javax.swing.ImageIcon;
|
|||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
|
|
||||||
import de.katho.kBorrow.gui.NewLendingPanel;
|
import de.katho.kBorrow.gui.NewLendingPanel;
|
||||||
import de.katho.kBorrow.models.FreeArticleTableModel;
|
|
||||||
|
|
||||||
public class NewLendingTableButton extends TableButton {
|
public class NewLendingTableButton extends TableButton {
|
||||||
|
|
||||||
@@ -30,10 +29,9 @@ public class NewLendingTableButton extends TableButton {
|
|||||||
public void actionPerformed(ActionEvent e){
|
public void actionPerformed(ActionEvent e){
|
||||||
fireEditingStopped();
|
fireEditingStopped();
|
||||||
|
|
||||||
FreeArticleTableModel model = (FreeArticleTableModel) pTable.getModel();
|
|
||||||
int row = pTable.getSelectedRow();
|
int row = pTable.getSelectedRow();
|
||||||
|
|
||||||
pPanel.setModeNewLending(model.getArticleId(row), model.getArticleName(row));
|
pPanel.setModeNewLending(row);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import javax.swing.JTable;
|
|||||||
|
|
||||||
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 {
|
||||||
|
|
||||||
@@ -28,12 +27,9 @@ public class UserDeleteTableButton extends TableButton {
|
|||||||
public void actionPerformed(ActionEvent e){
|
public void actionPerformed(ActionEvent e){
|
||||||
fireEditingStopped();
|
fireEditingStopped();
|
||||||
|
|
||||||
UserTableModel model = (UserTableModel) pTable.getModel();
|
|
||||||
|
|
||||||
int row = pTable.getSelectedRow();
|
int row = pTable.getSelectedRow();
|
||||||
int id = model.getUserId(row);
|
|
||||||
|
|
||||||
pController.deleteUser(id);
|
pController.deleteUser(row);
|
||||||
pPanel.resetModeEditUser();
|
pPanel.resetModeEditUser();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import javax.swing.ImageIcon;
|
|||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
|
|
||||||
import de.katho.kBorrow.gui.UserPanel;
|
import de.katho.kBorrow.gui.UserPanel;
|
||||||
import de.katho.kBorrow.models.UserTableModel;
|
|
||||||
|
|
||||||
public class UserEditTableButton extends TableButton {
|
public class UserEditTableButton extends TableButton {
|
||||||
|
|
||||||
@@ -30,10 +29,9 @@ public class UserEditTableButton extends TableButton {
|
|||||||
public void actionPerformed(ActionEvent e){
|
public void actionPerformed(ActionEvent e){
|
||||||
fireEditingStopped();
|
fireEditingStopped();
|
||||||
|
|
||||||
UserTableModel model = (UserTableModel) pTable.getModel();
|
|
||||||
int row = pTable.getSelectedRow();
|
int row = pTable.getSelectedRow();
|
||||||
|
|
||||||
pPanel.setModeEditUser(model.getUserId(row), model.getUserName(row), model.getUserSurname(row));
|
pPanel.setModeEditUser(row);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -62,37 +62,6 @@ public class ArticleTableModel extends AbstractTableModel {
|
|||||||
if (pCol > 2) return true;
|
if (pCol > 2) return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gibt die ID der gegebenen Tabellenzeile aus.
|
|
||||||
*
|
|
||||||
* @param row Tabellenzeile, zu der die ID ausgegeben werden soll.
|
|
||||||
* @return Artikel-ID als int.
|
|
||||||
*/
|
|
||||||
public int getArticleId(int row) {
|
|
||||||
return this.data.get(row).getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gibt den Artikelnamen der gegebenen Tabellenzeile aus.
|
|
||||||
*
|
|
||||||
* @param pRow Tabellenzeile, zu der der Name ausgegeben werden soll.
|
|
||||||
* @return Artikelname als String
|
|
||||||
*/
|
|
||||||
public String getArticleName(int pRow){
|
|
||||||
return this.data.get(pRow).getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gibt die Artikelbeschreibung der gegebenen Tabellenzeile aus.
|
|
||||||
*
|
|
||||||
* @param pRow Tabellenzeile, zu der die Beschreibung ausgegeben werden soll
|
|
||||||
* @return Artikelbeschreibung als String.
|
|
||||||
*/
|
|
||||||
public String getArticleDescription(int pRow){
|
|
||||||
return this.data.get(pRow).getDescription();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gibt die entsprechende Zeile in der Tabelle f<>r ein Objekt mit der gegebenen ID zur<75>ck.
|
* Gibt die entsprechende Zeile in der Tabelle f<>r ein Objekt mit der gegebenen ID zur<75>ck.
|
||||||
@@ -114,7 +83,7 @@ public class ArticleTableModel extends AbstractTableModel {
|
|||||||
* @return KArticle-Objekt
|
* @return KArticle-Objekt
|
||||||
*/
|
*/
|
||||||
public KArticle getArticleByRow(int pRow){
|
public KArticle getArticleByRow(int pRow){
|
||||||
return this.data.get(pRow);
|
return data.get(pRow);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -104,4 +104,15 @@ public class LenderModel {
|
|||||||
|
|
||||||
return elems;
|
return elems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public KLender getLenderById(int pId){
|
||||||
|
for(KLender elem : data){
|
||||||
|
if(elem.getId() == pId) return elem;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public KLender getLenderByRow(int pRow){
|
||||||
|
return data.get(pRow);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
95
src/de/katho/kBorrow/models/LendingTableModel.java
Normal file
95
src/de/katho/kBorrow/models/LendingTableModel.java
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
package de.katho.kBorrow.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
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.db.DbConnector;
|
||||||
|
|
||||||
|
public class LendingTableModel extends AbstractTableModel {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 1375465648631587292L;
|
||||||
|
private DbConnector dbCon;
|
||||||
|
private String[] header = {"ID", "Artikel", "Ausleiher", "Ausleihdatum", "Vor. R<>ckgabe", "", ""};
|
||||||
|
private ArrayList<KLending> data = new ArrayList<KLending>();
|
||||||
|
private ArticleTableModel articleModel;
|
||||||
|
private LenderModel lenderModel;
|
||||||
|
|
||||||
|
public LendingTableModel(DbConnector pDbCon, HashMap<String, Object> pModels ) {
|
||||||
|
dbCon = pDbCon;
|
||||||
|
articleModel = (ArticleTableModel)pModels.get("articletablemodel");
|
||||||
|
lenderModel = (LenderModel)pModels.get("lendermodel");
|
||||||
|
|
||||||
|
updateModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getColumnCount() {
|
||||||
|
return header.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getColumnName(int index){
|
||||||
|
return header[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRowCount() {
|
||||||
|
return data.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getValueAt(int row, int col) {
|
||||||
|
switch (col){
|
||||||
|
case 0:
|
||||||
|
return data.get(row).getId();
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
int artId = data.get(row).getArticleId();
|
||||||
|
KArticle art = articleModel.getArticleById(artId);
|
||||||
|
|
||||||
|
return art.getName();
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
int lenderId = data.get(row).getLenderId();
|
||||||
|
KLender lender = lenderModel.getLenderById(lenderId);
|
||||||
|
|
||||||
|
return lender.getName()+" "+lender.getSurname()+" ("+lender.getStudentnumber()+")";
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
return data.get(row).getStartDate();
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
return data.get(row).getExpectedEndDate();
|
||||||
|
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Die Funktion muss differenzierter werden
|
||||||
|
public boolean isCellEditable(int row, int col){
|
||||||
|
if (col > 4) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateModel(){
|
||||||
|
data = dbCon.getActiveLendingList();
|
||||||
|
fireTableDataChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public KLending getLendingByRow(int row) {
|
||||||
|
return data.get(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
public KLending getLendingById(int id){
|
||||||
|
for(KLending elem : data){
|
||||||
|
if(elem.getId() == id) return elem;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -22,17 +22,14 @@ public class UserTableModel extends AbstractTableModel {
|
|||||||
updateModel();
|
updateModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getColumnCount() {
|
public int getColumnCount() {
|
||||||
return this.header.length;
|
return this.header.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getRowCount() {
|
public int getRowCount() {
|
||||||
return this.data.size();
|
return this.data.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getValueAt(int row, int col) {
|
public String getValueAt(int row, int col) {
|
||||||
switch(col){
|
switch(col){
|
||||||
case 0:
|
case 0:
|
||||||
@@ -64,18 +61,6 @@ public class UserTableModel extends AbstractTableModel {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getUserId(int row){
|
|
||||||
return this.data.get(row).getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUserName(int row){
|
|
||||||
return this.data.get(row).getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUserSurname(int row){
|
|
||||||
return this.data.get(row).getSurname();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param pId
|
* @param pId
|
||||||
|
|||||||
Reference in New Issue
Block a user