Solved issue #14 - Datenmodell wurde nun komplett überarbeitet.

Theoretisch müssten nun sämtliche Operationen auf Datenstrukturen direkt
auf den Datenmodellen geschehen, während die Tabellen- und Listenmodelle
lediglich in den Tabellen und Listen eingebunden werden und für damit
verbundene Aufgaben zuständig sind.
This commit is contained in:
Servicepoint
2015-01-06 17:24:13 +01:00
parent 401d68cf47
commit c5638e697f
30 changed files with 321 additions and 298 deletions

View File

@@ -2,20 +2,18 @@ package de.katho.kBorrow.controller;
import java.util.HashMap; import java.util.HashMap;
import de.katho.kBorrow.data.KArticleModel;
import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.interfaces.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.models.ArticleTableModel;
import de.katho.kBorrow.models.FreeArticleTableModel;
public class ArticleController { public class ArticleController {
private DbConnector dbCon; private DbConnector dbCon;
private ArticleTableModel articleTableModel; private KArticleModel kArticleModel;
private FreeArticleTableModel freeArticleTableModel;
public ArticleController(DbConnector pDbCon, HashMap<String, KDataModel> models){ public ArticleController(DbConnector pDbCon, HashMap<String, KDataModel> models){
dbCon = pDbCon; dbCon = pDbCon;
articleTableModel = (ArticleTableModel)models.get("articletablemodel"); kArticleModel = (KArticleModel)models.get("karticlemodel");
freeArticleTableModel = (FreeArticleTableModel)models.get("freearticletablemodel");
} }
/** /**
@@ -30,8 +28,7 @@ public class ArticleController {
public int createArticle(String pName, String pDesc) { public int createArticle(String pName, String pDesc) {
int status = dbCon.createArticle(pName, pDesc); int status = dbCon.createArticle(pName, pDesc);
articleTableModel.updateModel(); kArticleModel.updateModel();
freeArticleTableModel.updateModel();
return status; return status;
} }
@@ -50,8 +47,7 @@ public class ArticleController {
int status = this.dbCon.editArticle(pId, pName, pDesc); int status = this.dbCon.editArticle(pId, pName, pDesc);
if(status == 0){ if(status == 0){
articleTableModel.updateModel(); kArticleModel.updateModel();
freeArticleTableModel.updateModel();
} }
return status; return status;
@@ -60,21 +56,19 @@ 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 pRow Row des Artikels, der gel<65>scht werden soll. * @param pId ID des Artikels, der gel<65>scht werden soll.
* @return 0: Artikel konnte erfolgreich gel<65>scht werden * @return 0: Artikel konnte erfolgreich gel<65>scht werden
* 1: Artikel konnte nicht gel<65>scht werden, unbekannter Fehler (SQL-Fehler) * 1: Artikel konnte nicht gel<65>scht werden, unbekannter Fehler (SQL-Fehler)
* 2: Artikel konnte nicht gel<65>scht werden, weil er im Moment verliehen ist. * 2: Artikel konnte nicht gel<65>scht werden, weil er im Moment verliehen ist.
*/ */
public int deleteArticle(int pRow) { public int deleteArticle(int pId) {
if(!articleTableModel.getArticleByRow(pRow).getIsFree()) return 2; if(!((KArticle)kArticleModel.getElement(pId)).getIsFree()) return 2;
int id = articleTableModel.getArticleByRow(pRow).getId(); int returnCode = dbCon.deleteArticle(pId);
int returnCode = dbCon.deleteArticle(id);
if(returnCode == 0){ if(returnCode == 0){
articleTableModel.updateModel(); kArticleModel.updateModel();
freeArticleTableModel.updateModel();
} }
return returnCode; return returnCode;

View File

@@ -3,39 +3,34 @@ 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.KArticleModel;
import de.katho.kBorrow.data.KLendingModel;
import de.katho.kBorrow.data.objects.KLending; import de.katho.kBorrow.data.objects.KLending;
import de.katho.kBorrow.interfaces.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.models.ArticleTableModel;
import de.katho.kBorrow.models.FreeArticleTableModel;
import de.katho.kBorrow.models.LendingTableModel;
public class ManageLendingsController { public class ManageLendingsController {
private DbConnector dbCon; private DbConnector dbCon;
private FreeArticleTableModel freeArticleTableModel; private KArticleModel articleModel;
private ArticleTableModel articleTableModel; private KLendingModel lendingModel;
private LendingTableModel lendingTableModel;
public ManageLendingsController(DbConnector pDbCon, HashMap<String, KDataModel> models){ public ManageLendingsController(DbConnector pDbCon, HashMap<String, KDataModel> models){
dbCon = pDbCon; dbCon = pDbCon;
freeArticleTableModel = (FreeArticleTableModel)models.get("freearticletablemodel"); articleModel = (KArticleModel)models.get("karticlemodel");
articleTableModel = (ArticleTableModel)models.get("articletablemodel"); lendingModel = (KLendingModel)models.get("klendingmodel");
lendingTableModel = (LendingTableModel)models.get("lendingtablemodel");
} }
public void returnLending(int pRow) { public void returnLending(int pId) {
KLending lending = lendingTableModel.getLendingByRow(pRow); KLending lending = lendingModel.getElement(pId);
int artId = lending.getArticleId(); int artId = lending.getArticleId();
int lendingId = lending.getId();
dbCon.returnLending(lendingId, artId, Util.getCurrentDate()); dbCon.returnLending(pId, artId, Util.getCurrentDate());
freeArticleTableModel.updateModel(); articleModel.updateModel();
articleTableModel.updateModel(); lendingModel.updateModel();
lendingTableModel.updateModel();
} }
} }

View File

@@ -19,34 +19,31 @@ 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.KArticleModel;
import de.katho.kBorrow.data.KLenderModel;
import de.katho.kBorrow.data.KLendingModel;
import de.katho.kBorrow.data.KUserModel;
import de.katho.kBorrow.data.objects.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.data.objects.KLender; import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.data.objects.KLending; import de.katho.kBorrow.data.objects.KLending;
import de.katho.kBorrow.data.objects.KUser; import de.katho.kBorrow.data.objects.KUser;
import de.katho.kBorrow.interfaces.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.models.ArticleTableModel;
import de.katho.kBorrow.models.FreeArticleTableModel;
import de.katho.kBorrow.models.LenderModel;
import de.katho.kBorrow.models.LendingTableModel;
import de.katho.kBorrow.models.UserListModel;
public class NewLendingController { public class NewLendingController {
private DbConnector dbCon; private DbConnector dbCon;
private UserListModel userListModel; private KUserModel kUserModel;
private LenderModel lenderModel; private KLenderModel kLenderModel;
private FreeArticleTableModel freeArticleModel; private KArticleModel kArticleModel;
private LendingTableModel lendingTableModel; private KLendingModel kLendingModel;
private ArticleTableModel articleTableModel;
private Settings settings; private Settings settings;
public NewLendingController(DbConnector pDbCon, HashMap<String, KDataModel> models, final Settings pSettings){ public NewLendingController(DbConnector pDbCon, HashMap<String, KDataModel> models, final Settings pSettings){
dbCon = pDbCon; dbCon = pDbCon;
userListModel = (UserListModel)models.get("userlistmodel"); kUserModel = (KUserModel)models.get("kusermodel");
lenderModel = (LenderModel)models.get("lendermodel"); kLenderModel = (KLenderModel)models.get("klendermodel");
freeArticleModel = (FreeArticleTableModel)models.get("freearticletablemodel"); kArticleModel = (KArticleModel)models.get("karticlemodel");
articleTableModel = (ArticleTableModel)models.get("articletablemodel"); kLendingModel = (KLendingModel)models.get("klendingmodel");
lendingTableModel = (LendingTableModel)models.get("lendingtablemodel");
settings = pSettings; settings = pSettings;
} }
@@ -67,12 +64,12 @@ public class NewLendingController {
if(pEstEndDate.before(new Date())) return 3; if(pEstEndDate.before(new Date())) return 3;
if(!pLSN.matches("[0-9]+")) return 5; if(!pLSN.matches("[0-9]+")) return 5;
ArrayList<KLender> lenders = lenderModel.getLenders(pLName, pLSurname, pLSN); ArrayList<KLender> lenders = kLenderModel.getLenders(pLName, pLSurname, pLSN);
if(lenders.size() == 0) { if(lenders.size() == 0) {
int result = dbCon.createNewLender(pLName, pLSurname, pLSN); int result = dbCon.createNewLender(pLName, pLSurname, pLSN);
if(result == 0){ if(result == 0){
lenderModel.updateModel(); kLenderModel.updateModel();
return newLending(pArtId, pLName, pLSurname, pLSN, pStartDate, pEstEndDate, pUsername); return newLending(pArtId, pLName, pLSurname, pLSN, pStartDate, pEstEndDate, pUsername);
} }
@@ -80,15 +77,14 @@ public class NewLendingController {
} }
else if(lenders.size() == 1){ else if(lenders.size() == 1){
KLender lender = lenders.get(0); KLender lender = lenders.get(0);
int uId = userListModel.getIdByFullname(pUsername); int uId = kUserModel.getIdByFullname(pUsername);
DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy"); DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
int[] result = dbCon.createNewLending(pArtId, uId, lender.getId(), pStartDate, dateFormat.format(pEstEndDate)); int[] result = dbCon.createNewLending(pArtId, uId, lender.getId(), pStartDate, dateFormat.format(pEstEndDate));
if(result[0] == 0){ if(result[0] == 0){
freeArticleModel.updateModel(); kArticleModel.updateModel();
articleTableModel.updateModel(); kLendingModel.updateModel();
lendingTableModel.updateModel();
createPdfFile(result[1]); createPdfFile(result[1]);
return result[0]; return result[0];
@@ -100,10 +96,10 @@ public class NewLendingController {
private void createPdfFile(int pLendingId) throws Exception { private void createPdfFile(int pLendingId) throws Exception {
KLending lending = lendingTableModel.getLendingById(pLendingId); KLending lending = kLendingModel.getElement(pLendingId);
KArticle article = articleTableModel.getArticleById(lending.getArticleId()); KArticle article = kArticleModel.getElement(lending.getArticleId());
KUser user = userListModel.getUserById(lending.getUserId()); KUser user = kUserModel.getElement(lending.getUserId());
KLender lender = lenderModel.getLenderById(lending.getLenderId()); KLender lender = kLenderModel.getElement(lending.getLenderId());
PDDocument doc = new PDDocument(); PDDocument doc = new PDDocument();
PDPage page = new PDPage(PDPage.PAGE_SIZE_A4); PDPage page = new PDPage(PDPage.PAGE_SIZE_A4);

View File

@@ -58,7 +58,7 @@ public class UserController {
} }
if(isOccupied){ if(isOccupied){
RewriteToNewUserDialog dialog = new RewriteToNewUserDialog(pId, dbCon); RewriteToNewUserDialog dialog = new RewriteToNewUserDialog(pId, dbCon, userModel);
if(dialog.getResult() == 0){ if(dialog.getResult() == 0){
lendingModel.updateModel(); lendingModel.updateModel();
userModel.updateModel(); userModel.updateModel();

View File

@@ -37,8 +37,10 @@ public class KArticleModel implements KDataModel {
return data; return data;
} }
public Object get(int id) { public KArticle getElement(int id) {
if(data.size() > id) return data.get(id); for (KArticle elem : data){
if(elem.getId() == id) return elem;
}
return null; return null;
} }

View File

@@ -38,9 +38,94 @@ public class KLenderModel implements KDataModel {
return data; return data;
} }
public Object get(int id) { public KLender getElement(int id) {
if(data.size() > id) return data.get(id); for(KLender elem : data){
if(elem.getId() == id) return elem;
}
return null; return null;
} }
public ArrayList<KLender> getLenders(String pName, String pSurname, String pSN){
boolean nameEmpty = pName.isEmpty();
boolean surnameEmpty = pSurname.isEmpty();
boolean snEmpty = pSN.isEmpty();
ArrayList<KLender> elems = new ArrayList<KLender>();
int sn;
if(pSN.matches("[0-9]+")){
sn = Integer.parseInt(pSN);
}
else {
sn = -1;
}
if(!nameEmpty){
if(!surnameEmpty){
if(!snEmpty){
// Alles gegeben
for(KLender e : data){
if(e.getName().equals(pName) && e.getSurname().equals(pSurname) && e.getStudentnumber() == sn){
elems.add(e);
}
}
return elems;
}
//Name und Surname gegeben
for(KLender e : data){
if(e.getName().equals(pName) && e.getSurname().equals(pSurname)){
elems.add(e);
}
}
return elems;
}
if(!snEmpty){
// Name und SN gegeben
for (KLender e : data){
if(e.getName().equals(pName) && e.getStudentnumber() == sn){
elems.add(e);
}
}
return elems;
}
// Nur Name gegeben
for (KLender e : data){
if(e.getName().equals(pName)){
elems.add(e);
}
}
return elems;
}
if(!surnameEmpty){
if(!snEmpty){
// Surname und SN gegeben
for (KLender e : data){
if(e.getSurname().equals(pSurname) && e.getStudentnumber() == sn){
elems.add(e);
}
}
return elems;
}
// Nur Surname gegeben
for (KLender e : data){
if(e.getSurname().equals(pSurname)){
elems.add(e);
}
}
return elems;
}
if(!snEmpty){
// Nur SN gegeben
for (KLender e : data){
if(e.getStudentnumber() == sn){
elems.add(e);
}
}
return elems;
}
return elems;
}
} }

View File

@@ -38,8 +38,10 @@ public class KLendingModel implements KDataModel {
return data; return data;
} }
public Object get(int id) { public KLending getElement(int id) {
if(data.size() > id) return data.get(id); for(KLending elem : data){
if(elem.getId() == id) return elem;
}
return null; return null;
} }

View File

@@ -37,9 +37,18 @@ public class KUserModel implements KDataModel {
return data; return data;
} }
public Object get(int id) { public KUser getElement(int id) {
if(data.size() > id) return data.get(id); for(KUser elem : data){
if(elem.getId() == id) return elem;
}
return null; return null;
} }
public int getIdByFullname(String pName){
for (KUser elem : data){
if(pName.equals(elem.getName()+" "+elem.getSurname())) return elem.getId();
}
return -1;
}
} }

View File

@@ -11,11 +11,10 @@ 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.KArticleModel;
import de.katho.kBorrow.data.objects.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.models.ArticleInspectTableModel; import de.katho.kBorrow.models.ArticleInspectTableModel;
import de.katho.kBorrow.models.ArticleTableModel;
public class ArticleInspectFrame extends JFrame { public class ArticleInspectFrame extends JFrame {
@@ -25,16 +24,15 @@ public class ArticleInspectFrame extends JFrame {
private static final long serialVersionUID = -8993341404926674307L; private static final long serialVersionUID = -8993341404926674307L;
private JPanel contentPane; private JPanel contentPane;
private JTable table; private JTable table;
private ArticleInspectTableModel artInsModel; private KArticleModel articleModel;
private ArticleTableModel articleModel;
private KArticle article; private KArticle article;
/** /**
* Create the frame. * Create the frame.
*/ */
public ArticleInspectFrame(int pRow, final DbConnector dbCon, HashMap<String, KDataModel> models) { public ArticleInspectFrame(int pId, HashMap<String, KDataModel> models) {
articleModel = (ArticleTableModel)models.get("articletablemodel"); articleModel = (KArticleModel)models.get("karticlemodel");
article = articleModel.getArticleByRow(pRow); article = articleModel.getElement(pId);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(150, 150, 660, 541); setBounds(150, 150, 660, 541);
@@ -72,8 +70,7 @@ public class ArticleInspectFrame extends JFrame {
panelInfo.add(taArticleDesc); panelInfo.add(taArticleDesc);
// Table // Table
artInsModel = new ArticleInspectTableModel(pRow, dbCon, models); table = new JTable(new ArticleInspectTableModel(pId, models));
table = new JTable(artInsModel);
table.setFillsViewportHeight(true); table.setFillsViewportHeight(true);
table.setRowHeight(30); table.setRowHeight(30);
table.getColumnModel().getColumn(0).setMinWidth(30); table.getColumnModel().getColumn(0).setMinWidth(30);

View File

@@ -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.KArticleModel;
import de.katho.kBorrow.data.objects.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.interfaces.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.interfaces.KDataModel;
@@ -43,7 +44,7 @@ public class ArticlePanel extends JPanel implements ActionListener, KeyListener
private JLabel lblArticleStatus; private JLabel lblArticleStatus;
private boolean articleModeEdit; private boolean articleModeEdit;
private int articleEditId; private int articleEditId;
private ArticleTableModel articleTableModel; private KArticleModel articleModel;
/** /**
* Create the panel. * Create the panel.
@@ -52,18 +53,18 @@ public class ArticlePanel extends JPanel implements ActionListener, KeyListener
public ArticlePanel(final DbConnector dbCon, HashMap<String, KDataModel> models) throws IOException { public ArticlePanel(final DbConnector dbCon, HashMap<String, KDataModel> models) throws IOException {
super(); super();
this.setLayout(null); this.setLayout(null);
articleTableModel = (ArticleTableModel)models.get("articletablemodel"); articleModel = (KArticleModel)models.get("karticlemodel");
articleController = new ArticleController(dbCon, models); articleController = new ArticleController(dbCon, models);
/* /*
* Tabelle und drumherum * Tabelle und drumherum
*/ */
JTable articleTable = new JTable(articleTableModel); JTable articleTable = new JTable(new ArticleTableModel(articleModel));
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, models); ArticleInspectTableButton articleInspectTableButton = new ArticleInspectTableButton("Details", articleTable, 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);
@@ -174,8 +175,8 @@ public class ArticlePanel extends JPanel implements ActionListener, KeyListener
this.textAreaArticleDescription.setText(""); this.textAreaArticleDescription.setText("");
} }
public void setModeEditArticle(int pRow) { public void setModeEditArticle(int pId) {
KArticle art = articleTableModel.getArticleByRow(pRow); KArticle art = articleModel.getElement(pId);
this.articleModeEdit = true; this.articleModeEdit = true;
this.articleEditId = art.getId(); this.articleEditId = art.getId();

View File

@@ -5,8 +5,6 @@ import javax.swing.JPanel;
import de.katho.kBorrow.controller.ManageLendingsController; import de.katho.kBorrow.controller.ManageLendingsController;
import de.katho.kBorrow.interfaces.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.listener.LendingReturnTableButton; import de.katho.kBorrow.listener.LendingReturnTableButton;
@@ -27,16 +25,14 @@ public class ManageLendingsPanel extends JPanel {
*/ */
private static final long serialVersionUID = 925691137664223491L; private static final long serialVersionUID = 925691137664223491L;
private LendingTableModel lendingTableModel;
private ManageLendingsController manageLendingsController; private ManageLendingsController manageLendingsController;
public ManageLendingsPanel(DbConnector dbCon, HashMap<String, KDataModel> models) throws IOException { public ManageLendingsPanel(DbConnector dbCon, HashMap<String, KDataModel> models) throws IOException {
lendingTableModel = (LendingTableModel)models.get("lendingtablemodel");
manageLendingsController = new ManageLendingsController(dbCon, models); manageLendingsController = new ManageLendingsController(dbCon, models);
// Lending-Table // Lending-Table
JTable lendingTable = new JTable(lendingTableModel); JTable lendingTable = new JTable(new LendingTableModel(models));
LendingReturnTableButton lrtb = new LendingReturnTableButton("Ausleihe beenden", lendingTable, manageLendingsController); LendingReturnTableButton lrtb = new LendingReturnTableButton("Ausleihe beenden", lendingTable, manageLendingsController);
lendingTable.getColumnModel().getColumn(0).setMinWidth(30); lendingTable.getColumnModel().getColumn(0).setMinWidth(30);
lendingTable.getColumnModel().getColumn(0).setMaxWidth(30); lendingTable.getColumnModel().getColumn(0).setMaxWidth(30);

View File

@@ -34,13 +34,15 @@ 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.KArticleModel;
import de.katho.kBorrow.data.KLenderModel;
import de.katho.kBorrow.data.KUserModel;
import de.katho.kBorrow.data.objects.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.data.objects.KLender; import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.interfaces.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel; 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.UserListModel; import de.katho.kBorrow.models.UserListModel;
import java.awt.event.FocusEvent; import java.awt.event.FocusEvent;
@@ -51,15 +53,12 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
* *
*/ */
private static final long serialVersionUID = -7346953418572781322L; private static final long serialVersionUID = -7346953418572781322L;
private FreeArticleTableModel freeArticleTableModel;
private JTextField tfName; private JTextField tfName;
private JTextField tfSurname; private JTextField tfSurname;
private JTextField tfStudentNumber; private JTextField tfStudentNumber;
private UserListModel userListModel;
private JLabel lblStartDate; private JLabel lblStartDate;
private JLabel lblArticleName; private JLabel lblArticleName;
private int articleId; private int articleId;
//private LenderModel lenderModel;
private JButton btnCancel; private JButton btnCancel;
private JButton btnSave; private JButton btnSave;
private NewLendingController newLendingController; private NewLendingController newLendingController;
@@ -67,6 +66,13 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
private JXDatePicker dpEstEndDate; private JXDatePicker dpEstEndDate;
private JLabel lblStatus; private JLabel lblStatus;
private KArticleModel kArticleModel;
private KUserModel kUserModel;
private KLenderModel kLenderModel;
private UserListModel userListModel;
private FreeArticleTableModel freeArticleTableModel;
/** /**
* Create the panel. * Create the panel.
* @param dbCon * @param dbCon
@@ -76,10 +82,14 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
setLayout(null); setLayout(null);
articleId = -1; articleId = -1;
kArticleModel = (KArticleModel)models.get("karticlemodel");
kUserModel = (KUserModel)models.get("kusermodel");
kLenderModel = (KLenderModel)models.get("klendermodel");
userListModel = new UserListModel(kUserModel);
freeArticleTableModel = new FreeArticleTableModel(kArticleModel);
// FreeArticleTable // FreeArticleTable
freeArticleTableModel = (FreeArticleTableModel)models.get("freearticletablemodel");
userListModel = new UserListModel(models.get("kusermodel"));
lenderModel = (LenderModel)models.get("lendermodel");
newLendingController = new NewLendingController(dbCon, models, pSettings); newLendingController = new NewLendingController(dbCon, models, pSettings);
JTable freeArticleTable = new JTable(freeArticleTableModel); JTable freeArticleTable = new JTable(freeArticleTableModel);
@@ -157,9 +167,9 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
tfName.addKeyListener(this); tfName.addKeyListener(this);
tfSurname.addKeyListener(this); tfSurname.addKeyListener(this);
tfStudentNumber.addKeyListener(this); tfStudentNumber.addKeyListener(this);
AutoCompleteDecorator.decorate(tfName, lenderModel.getList(), false, new LenderNameConverter() ); AutoCompleteDecorator.decorate(tfName, kLenderModel.getData(), false, new LenderNameConverter() );
AutoCompleteDecorator.decorate(tfSurname, lenderModel.getList(), false, new LenderSurnameConverter()); AutoCompleteDecorator.decorate(tfSurname, kLenderModel.getData(), false, new LenderSurnameConverter());
AutoCompleteDecorator.decorate(tfStudentNumber, lenderModel.getList(), false, new LenderStudentnumberConverter()); AutoCompleteDecorator.decorate(tfStudentNumber, kLenderModel.getData(), false, new LenderStudentnumberConverter());
// Buttons // Buttons
btnCancel = new JButton("Abbrechen"); btnCancel = new JButton("Abbrechen");
@@ -253,8 +263,8 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
} }
} }
public void setModeNewLending(int pRow) { public void setModeNewLending(int id) {
KArticle art = freeArticleTableModel.getArticleByRow(pRow); KArticle art = kArticleModel.getElement(id);
lblStartDate.setText(Util.getCurrentDate()); lblStartDate.setText(Util.getCurrentDate());
lblArticleName.setText(art.getName()); lblArticleName.setText(art.getName());
@@ -283,7 +293,7 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
} }
public void focusLost(FocusEvent pEvent) { public void focusLost(FocusEvent pEvent) {
ArrayList<KLender> result = lenderModel.getLenders(tfName.getText(), tfSurname.getText(), tfStudentNumber.getText()); ArrayList<KLender> result = kLenderModel.getLenders(tfName.getText(), tfSurname.getText(), tfStudentNumber.getText());
if(result.size() == 1){ if(result.size() == 1){
tfName.setText(result.get(0).getName()); tfName.setText(result.get(0).getName());

View File

@@ -11,6 +11,7 @@ import javax.swing.JComboBox;
import de.katho.kBorrow.controller.RewriteToNewUserController; import de.katho.kBorrow.controller.RewriteToNewUserController;
import de.katho.kBorrow.interfaces.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.models.RewriteUserModel; import de.katho.kBorrow.models.RewriteUserModel;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@@ -37,7 +38,7 @@ public class RewriteToNewUserDialog extends JDialog implements ActionListener {
/** /**
* Create the dialog. * Create the dialog.
*/ */
public RewriteToNewUserDialog(int pOldId, DbConnector pDbCon) { public RewriteToNewUserDialog(int pOldId, DbConnector pDbCon, KDataModel userModel) {
setTitle("Ausleihe umschreiben"); setTitle("Ausleihe umschreiben");
setModal(true); setModal(true);
setModalityType(ModalityType.APPLICATION_MODAL); setModalityType(ModalityType.APPLICATION_MODAL);
@@ -48,7 +49,7 @@ public class RewriteToNewUserDialog extends JDialog implements ActionListener {
setContentPane(contentPane); setContentPane(contentPane);
contentPane.setLayout(new BorderLayout()); contentPane.setLayout(new BorderLayout());
oldId = pOldId; oldId = pOldId;
rwusermodel = new RewriteUserModel(pDbCon, oldId); rwusermodel = new RewriteUserModel(userModel, oldId);
rwcontroller = new RewriteToNewUserController(pDbCon); rwcontroller = new RewriteToNewUserController(pDbCon);
// Content Panel // Content Panel

View File

@@ -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.KUserModel;
import de.katho.kBorrow.data.objects.KUser; import de.katho.kBorrow.data.objects.KUser;
import de.katho.kBorrow.interfaces.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.interfaces.KDataModel;
@@ -37,17 +38,17 @@ public class UserPanel extends JPanel implements ActionListener, KeyListener {
private JButton btnUserCancel; private JButton btnUserCancel;
private boolean userModeEdit; private boolean userModeEdit;
private int userEditId; private int userEditId;
private UserTableModel userTableModel; private KUserModel kUserModel;
private UserController userController; private UserController userController;
public UserPanel(final DbConnector dbCon, HashMap<String, KDataModel> models) throws IOException{ public UserPanel(final DbConnector dbCon, HashMap<String, KDataModel> models) throws IOException{
super(); super();
setLayout(null); setLayout(null);
userTableModel = (UserTableModel)models.get("usertablemodel"); kUserModel = (KUserModel)models.get("kusermodel");
userController = new UserController(dbCon, models); userController = new UserController(dbCon, models);
//Tabelle und drumherum //Tabelle und drumherum
JTable userTable = new JTable(userTableModel); JTable userTable = new JTable(new UserTableModel(kUserModel));
userTable.setRowHeight(30); userTable.setRowHeight(30);
UserDeleteTableButton userDeleteTableButton = new UserDeleteTableButton("L<EFBFBD>schen", userTable, this, userController); UserDeleteTableButton userDeleteTableButton = new UserDeleteTableButton("L<EFBFBD>schen", userTable, this, userController);
UserEditTableButton userEditTableButton = new UserEditTableButton("Bearbeiten", userTable, this); UserEditTableButton userEditTableButton = new UserEditTableButton("Bearbeiten", userTable, this);
@@ -148,8 +149,8 @@ public class UserPanel extends JPanel implements ActionListener, KeyListener {
this.textFieldUserSurname.setText(""); this.textFieldUserSurname.setText("");
} }
public void setModeEditUser(int pRow){ public void setModeEditUser(int pId){
KUser user = userTableModel.getUserByRow(pRow); KUser user = kUserModel.getElement(pId);
this.userModeEdit = true; this.userModeEdit = true;
this.userEditId = user.getId(); this.userEditId = user.getId();

View File

@@ -6,5 +6,5 @@ public interface KDataModel {
public void register(KGuiModel pModel); public void register(KGuiModel pModel);
public void updateModel(); public void updateModel();
public ArrayList<?> getData(); public ArrayList<?> getData();
public Object get(int id); public Object getElement(int id);
} }

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.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 {
@@ -24,16 +25,17 @@ public class ArticleDeleteTableButton extends TableButton {
URL url = Main.class.getResource("/icons/edit-delete.png"); URL url = Main.class.getResource("/icons/edit-delete.png");
ImageIcon icon = new ImageIcon(url); ImageIcon icon = new ImageIcon(url);
this.buttonE.setIcon(icon); buttonE.setIcon(icon);
this.buttonR.setIcon(icon); buttonR.setIcon(icon);
this.buttonE.addActionListener(new ActionListener(){ buttonE.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){ public void actionPerformed(ActionEvent e){
fireEditingStopped(); fireEditingStopped();
int row = pTable.getSelectedRow(); int row = pTable.getSelectedRow();
int id = ((ArticleTableModel)pTable.getModel()).getIdFromRow(row);
pPanel.setDeleteStatusLabel(pController.deleteArticle(row)); pPanel.setDeleteStatusLabel(pController.deleteArticle(id));
pPanel.resetModeEditArticle(); pPanel.resetModeEditArticle();
} }
}); });

View File

@@ -10,6 +10,7 @@ import javax.swing.JTable;
import sun.tools.jar.Main; import sun.tools.jar.Main;
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 {
@@ -31,8 +32,9 @@ public class ArticleEditTableButton extends TableButton {
fireEditingStopped(); fireEditingStopped();
int row = pTable.getSelectedRow(); int row = pTable.getSelectedRow();
int id = ((ArticleTableModel)pTable.getModel()).getIdFromRow(row);
articleTab.setModeEditArticle(row); articleTab.setModeEditArticle(id);
} }
}); });
} }

View File

@@ -11,8 +11,8 @@ import javax.swing.JTable;
import sun.tools.jar.Main; import sun.tools.jar.Main;
import de.katho.kBorrow.gui.ArticleInspectFrame; import de.katho.kBorrow.gui.ArticleInspectFrame;
import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.models.ArticleTableModel;
public class ArticleInspectTableButton extends TableButton { public class ArticleInspectTableButton extends TableButton {
@@ -21,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, KDataModel> models) throws IOException { public ArticleInspectTableButton(String pLabel, final JTable pTable, 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,8 +34,9 @@ public class ArticleInspectTableButton extends TableButton {
fireEditingStopped(); fireEditingStopped();
int row = pTable.getSelectedRow(); int row = pTable.getSelectedRow();
int id = ((ArticleTableModel)pTable.getModel()).getIdFromRow(row);
new ArticleInspectFrame(row, dbCon, models); new ArticleInspectFrame(id, models);
} }
}); });
} }

View File

@@ -10,6 +10,7 @@ import javax.swing.JTable;
import sun.tools.jar.Main; import sun.tools.jar.Main;
import de.katho.kBorrow.controller.ManageLendingsController; import de.katho.kBorrow.controller.ManageLendingsController;
import de.katho.kBorrow.models.LendingTableModel;
public class LendingReturnTableButton extends TableButton { public class LendingReturnTableButton extends TableButton {
@@ -31,8 +32,9 @@ public class LendingReturnTableButton extends TableButton {
fireEditingStopped(); fireEditingStopped();
int row = pTable.getSelectedRow(); int row = pTable.getSelectedRow();
int id = ((LendingTableModel)pTable.getModel()).getIdFromRow(row);
pController.returnLending(row); pController.returnLending(id);
} }
}); });
} }

View File

@@ -10,6 +10,7 @@ import javax.swing.JTable;
import sun.tools.jar.Main; import sun.tools.jar.Main;
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 {
@@ -31,8 +32,9 @@ public class NewLendingTableButton extends TableButton {
fireEditingStopped(); fireEditingStopped();
int row = pTable.getSelectedRow(); int row = pTable.getSelectedRow();
int id = ((FreeArticleTableModel)pTable.getModel()).getIdFromRow(row);
pPanel.setModeNewLending(row); pPanel.setModeNewLending(id);
} }
}); });
} }

View File

@@ -30,7 +30,7 @@ public class UserDeleteTableButton extends TableButton {
fireEditingStopped(); fireEditingStopped();
int row = pTable.getSelectedRow(); int row = pTable.getSelectedRow();
int id = ((UserTableModel)pTable.getModel()).rowToId(row); int id = ((UserTableModel)pTable.getModel()).getIdFromRow(row);
if(pController.deleteUser(id)) 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.");

View File

@@ -10,6 +10,7 @@ import javax.swing.JTable;
import sun.tools.jar.Main; import sun.tools.jar.Main;
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 {
@@ -31,8 +32,9 @@ public class UserEditTableButton extends TableButton {
fireEditingStopped(); fireEditingStopped();
int row = pTable.getSelectedRow(); int row = pTable.getSelectedRow();
int id = ((UserTableModel)pTable.getModel()).getIdFromRow(row);
pPanel.setModeEditUser(row); pPanel.setModeEditUser(id);
} }
}); });

View File

@@ -5,11 +5,12 @@ import java.util.HashMap;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
import de.katho.kBorrow.data.objects.KArticle; import de.katho.kBorrow.data.KLenderModel;
import de.katho.kBorrow.data.KLendingModel;
import de.katho.kBorrow.data.KUserModel;
import de.katho.kBorrow.data.objects.KLender; import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.data.objects.KLending; import de.katho.kBorrow.data.objects.KLending;
import de.katho.kBorrow.data.objects.KUser; import de.katho.kBorrow.data.objects.KUser;
import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel; import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.interfaces.KGuiModel; import de.katho.kBorrow.interfaces.KGuiModel;
@@ -20,29 +21,19 @@ public class ArticleInspectTableModel extends AbstractTableModel implements KGui
*/ */
private static final long serialVersionUID = 2293157709447086998L; private static final long serialVersionUID = 2293157709447086998L;
private String[] header; private String[] header;
private int articleId;
private ArrayList<KLending> data; private ArrayList<KLending> data;
private DbConnector dbCon; private KUserModel userModel;
private KArticle article; private KLenderModel lenderModel;
private ArticleTableModel articleModel;
private UserTableModel userModel;
private LenderModel lenderModel;
public ArticleInspectTableModel(int pRow, DbConnector pDbCon, HashMap<String, KDataModel> models){ public ArticleInspectTableModel(int pId, 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; articleId = pId;
articleModel = (ArticleTableModel)models.get("articletablemodel"); userModel = (KUserModel)models.get("kusermodel");
userModel = (UserTableModel)models.get("usertablemodel"); lenderModel = (KLenderModel)models.get("klendermodel");
lenderModel = (LenderModel)models.get("lendermodel");
article = articleModel.getArticleByRow(pRow); fetchData(((KLendingModel)models.get("klendingmodel")));
updateModel();
}
public void updateModel() {
data = dbCon.getLendingListForArticle(article.getId());
fireTableDataChanged();
} }
public int getColumnCount() { public int getColumnCount() {
@@ -68,13 +59,13 @@ public class ArticleInspectTableModel extends AbstractTableModel implements KGui
case 1: case 1:
int uid = data.get(row).getUserId(); int uid = data.get(row).getUserId();
KUser user = userModel.getUserById(uid); KUser user = userModel.getElement(uid);
return user.getName()+" "+user.getSurname(); return user.getName()+" "+user.getSurname();
case 2: case 2:
int lid = data.get(row).getLenderId(); int lid = data.get(row).getLenderId();
KLender lender = lenderModel.getLenderById(lid); KLender lender = lenderModel.getElement(lid);
return lender.getName()+" "+lender.getSurname()+" ("+lender.getStudentnumber()+")"; return lender.getName()+" "+lender.getSurname()+" ("+lender.getStudentnumber()+")";
@@ -92,4 +83,16 @@ public class ArticleInspectTableModel extends AbstractTableModel implements KGui
} }
} }
public void fetchData(KDataModel pModel) {
if(pModel instanceof KLendingModel){
data = new ArrayList<KLending>();
for(KLending elem : ((KLendingModel)pModel).getData()){
if(elem.getArticleId() == articleId) data.add(elem);
}
fireTableDataChanged();
}
}
} }

View File

@@ -4,8 +4,10 @@ import java.util.ArrayList;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
import de.katho.kBorrow.data.KArticleModel;
import de.katho.kBorrow.data.objects.KArticle; import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.interfaces.DbConnector; import de.katho.kBorrow.interfaces.DbConnector;
import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.interfaces.KGuiModel; import de.katho.kBorrow.interfaces.KGuiModel;
public class ArticleTableModel extends AbstractTableModel implements KGuiModel { public class ArticleTableModel extends AbstractTableModel implements KGuiModel {
@@ -18,21 +20,15 @@ public class ArticleTableModel extends AbstractTableModel implements KGuiModel {
protected DbConnector dbCon; protected DbConnector dbCon;
protected ArrayList<KArticle> data = new ArrayList<KArticle>(); protected ArrayList<KArticle> data = new ArrayList<KArticle>();
public ArticleTableModel(DbConnector pDbCon){ public ArticleTableModel(KDataModel pModel){
header = new String [] {"ID", "Artikelname", "Artikelbeschreibung", "", "", ""}; header = new String [] {"ID", "Artikelname", "Artikelbeschreibung", "", "", ""};
this.dbCon = pDbCon; pModel.register(this);
this.updateModel();
} }
public String getColumnName(int index){ public String getColumnName(int index){
return header[index]; return header[index];
} }
public void updateModel() {
this.data = this.dbCon.getArticleList();
this.fireTableDataChanged();
}
public int getColumnCount() { public int getColumnCount() {
return header.length; return header.length;
} }
@@ -77,6 +73,10 @@ public class ArticleTableModel extends AbstractTableModel implements KGuiModel {
return -1; return -1;
} }
public int getIdFromRow(int pRow){
return getArticleByRow(pRow).getId();
}
/** /**
* Gibt das Article-Objekt der <20>bergebenen Zeile zur<75>ck. * Gibt das Article-Objekt der <20>bergebenen Zeile zur<75>ck.
* *
@@ -100,4 +100,13 @@ public class ArticleTableModel extends AbstractTableModel implements KGuiModel {
return null; return null;
} }
public void fetchData(KDataModel pModel) {
if(pModel instanceof KArticleModel){
data = ((KArticleModel)pModel).getData();
fireTableDataChanged();
}
}
} }

View File

@@ -1,6 +1,12 @@
package de.katho.kBorrow.models; package de.katho.kBorrow.models;
import de.katho.kBorrow.interfaces.DbConnector; import java.util.ArrayList;
import java.util.logging.Level;
import de.katho.kBorrow.KLogger;
import de.katho.kBorrow.data.KArticleModel;
import de.katho.kBorrow.data.objects.KArticle;
import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.interfaces.KGuiModel; import de.katho.kBorrow.interfaces.KGuiModel;
public class FreeArticleTableModel extends ArticleTableModel implements KGuiModel { public class FreeArticleTableModel extends ArticleTableModel implements KGuiModel {
@@ -11,19 +17,29 @@ public class FreeArticleTableModel extends ArticleTableModel implements KGuiMode
private static final long serialVersionUID = 1908669541941834593L; private static final long serialVersionUID = 1908669541941834593L;
private String[] header; private String[] header;
public FreeArticleTableModel(DbConnector pDbCon) { public FreeArticleTableModel(KDataModel pModel) {
super(pDbCon); super(pModel);
this.header = new String[] {"ID", "Artikelname", "Artikelbeschreibung", ""}; header = new String[] {"ID", "Artikelname", "Artikelbeschreibung", ""};
pModel.register(this);
updateModel();
}
public void updateModel(){
data = dbCon.getFreeArticleList();
fireTableDataChanged();
} }
public int getColumnCount(){ public int getColumnCount(){
return header.length; return header.length;
} }
public void fetchData(KDataModel pModel) {
if(pModel instanceof KArticleModel){
data = new ArrayList<KArticle>();
for(KArticle elem : ((KArticleModel)pModel).getData()){
if (elem.getIsFree()) data.add(elem);
}
fireTableDataChanged();
}
else {
KLogger.log(Level.SEVERE, "FreeArticleModel: Typecast error!", new Exception("FreeArticleModel: Typecast error!"));
}
}
} }

View File

@@ -1,120 +0,0 @@
package de.katho.kBorrow.models;
import java.util.ArrayList;
import de.katho.kBorrow.data.KLenderModel;
import de.katho.kBorrow.data.objects.KLender;
import de.katho.kBorrow.interfaces.KDataModel;
import de.katho.kBorrow.interfaces.KGuiModel;
public class LenderModel implements KGuiModel {
private ArrayList<KLender> data;
public LenderModel(KDataModel pModel){
pModel.register(this);
}
public ArrayList<KLender> getList(){
return data;
}
public ArrayList<KLender> getLenders(String pName, String pSurname, String pSN){
boolean nameEmpty = pName.isEmpty();
boolean surnameEmpty = pSurname.isEmpty();
boolean snEmpty = pSN.isEmpty();
ArrayList<KLender> elems = new ArrayList<KLender>();
int sn;
if(pSN.matches("[0-9]+")){
sn = Integer.parseInt(pSN);
}
else {
sn = -1;
}
if(!nameEmpty){
if(!surnameEmpty){
if(!snEmpty){
// Alles gegeben
for(KLender e : data){
if(e.getName().equals(pName) && e.getSurname().equals(pSurname) && e.getStudentnumber() == sn){
elems.add(e);
}
}
return elems;
}
//Name und Surname gegeben
for(KLender e : data){
if(e.getName().equals(pName) && e.getSurname().equals(pSurname)){
elems.add(e);
}
}
return elems;
}
if(!snEmpty){
// Name und SN gegeben
for (KLender e : data){
if(e.getName().equals(pName) && e.getStudentnumber() == sn){
elems.add(e);
}
}
return elems;
}
// Nur Name gegeben
for (KLender e : data){
if(e.getName().equals(pName)){
elems.add(e);
}
}
return elems;
}
if(!surnameEmpty){
if(!snEmpty){
// Surname und SN gegeben
for (KLender e : data){
if(e.getSurname().equals(pSurname) && e.getStudentnumber() == sn){
elems.add(e);
}
}
return elems;
}
// Nur Surname gegeben
for (KLender e : data){
if(e.getSurname().equals(pSurname)){
elems.add(e);
}
}
return elems;
}
if(!snEmpty){
// Nur SN gegeben
for (KLender e : data){
if(e.getStudentnumber() == sn){
elems.add(e);
}
}
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);
}
public void fetchData(KDataModel pModel) {
if(pModel instanceof KLenderModel){
data = ((KLenderModel)pModel).getData();
}
}
}

View File

@@ -20,7 +20,7 @@ public class LendingTableModel extends AbstractTableModel implements KGuiModel {
*/ */
private static final long serialVersionUID = 1375465648631587292L; private static final long serialVersionUID = 1375465648631587292L;
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;
private KDataModel articleModel; private KDataModel articleModel;
private KDataModel lenderModel; private KDataModel lenderModel;
private KDataModel userModel; private KDataModel userModel;
@@ -54,19 +54,19 @@ public class LendingTableModel extends AbstractTableModel implements KGuiModel {
case 1: case 1:
int artId = data.get(row).getArticleId(); int artId = data.get(row).getArticleId();
KArticle art = (KArticle) articleModel.get(artId); KArticle art = (KArticle) articleModel.getElement(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 = (KUser) userModel.get(uId); KUser user = (KUser) userModel.getElement(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 = (KLender) lenderModel.get(lenderId); KLender lender = (KLender) lenderModel.getElement(lenderId);
return lender.getName()+" "+lender.getSurname()+" ("+lender.getStudentnumber()+")"; return lender.getName()+" "+lender.getSurname()+" ("+lender.getStudentnumber()+")";
@@ -98,12 +98,25 @@ public class LendingTableModel extends AbstractTableModel implements KGuiModel {
} }
public void fetchData(KDataModel pModel) { public void fetchData(KDataModel pModel) {
data = new ArrayList<KLending>();
if(pModel instanceof KLendingModel){ if(pModel instanceof KLendingModel){
for(KLending elem : ((KLendingModel)pModel).getData()){ for(KLending elem : ((KLendingModel)pModel).getData()){
if(elem.getEndDate().equals("")) data.add(elem); if(elem.getEndDate() == null || elem.getEndDate().equals("")) data.add(elem);
} }
fireTableDataChanged(); fireTableDataChanged();
} }
} }
public int getRowFromId(int pId){
for(KLending elem : this.data){
if(elem.getId() == pId) return data.indexOf(elem);
}
return -1;
}
public int getIdFromRow(int pRow){
return getLendingByRow(pRow).getId();
}
} }

View File

@@ -22,6 +22,13 @@ public class RewriteUserModel extends UserListModel {
pModel.register(this); pModel.register(this);
} }
public int getIdByFullname(String pName){
for (KUser elem : data){
if(pName.equals(elem.getName()+" "+elem.getSurname())) return elem.getId();
}
return -1;
}
public void fetchData(KDataModel pModel){ public void fetchData(KDataModel pModel){
if(pModel instanceof KUserModel){ if(pModel instanceof KUserModel){
data = new ArrayList<KUser>(); data = new ArrayList<KUser>();

View File

@@ -56,12 +56,7 @@ public class UserListModel extends AbstractListModel<String> implements ComboBox
return false; return false;
} }
public int getIdByFullname(String pName){
for (KUser elem : data){
if(pName.equals(elem.getName()+" "+elem.getSurname())) return elem.getId();
}
return -1;
}
public KUser getUserById(int pId){ public KUser getUserById(int pId){
for (KUser elem : data){ for (KUser elem : data){

View File

@@ -68,6 +68,10 @@ public class UserTableModel extends AbstractTableModel implements KGuiModel {
return -1; return -1;
} }
public int getIdFromRow(int pRow){
return getUserByRow(pRow).getId();
}
public KUser getUserByRow(int pRow){ public KUser getUserByRow(int pRow){
return this.data.get(pRow); return this.data.get(pRow);
} }
@@ -79,10 +83,6 @@ public class UserTableModel extends AbstractTableModel implements KGuiModel {
return null; return null;
} }
public int rowToId(int pRow){
return getUserByRow(pRow).getId();
}
public void fetchData(KDataModel pModel) { public void fetchData(KDataModel pModel) {
if(pModel instanceof KUserModel){ if(pModel instanceof KUserModel){
data = ((KUserModel)pModel).getData(); data = ((KUserModel)pModel).getData();