Arbeit an der Implementierung der "NewLending"-Funktionen.
This commit is contained in:
@@ -1,5 +1,50 @@
|
|||||||
package de.katho.kBorrow.controller;
|
package de.katho.kBorrow.controller;
|
||||||
|
|
||||||
public class NewLendingController {
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import de.katho.kBorrow.data.KLender;
|
||||||
|
import de.katho.kBorrow.db.DbConnector;
|
||||||
|
import de.katho.kBorrow.models.FreeArticleTableModel;
|
||||||
|
import de.katho.kBorrow.models.LenderModel;
|
||||||
|
import de.katho.kBorrow.models.UserListModel;
|
||||||
|
|
||||||
|
public class NewLendingController {
|
||||||
|
private DbConnector dbCon;
|
||||||
|
private UserListModel userListModel;
|
||||||
|
private LenderModel lenderModel;
|
||||||
|
private FreeArticleTableModel freeArticleModel;
|
||||||
|
|
||||||
|
public NewLendingController(DbConnector pDbCon, HashMap<String, Object> pModels){
|
||||||
|
dbCon = pDbCon;
|
||||||
|
userListModel = (UserListModel)pModels.get("userlistmodel");
|
||||||
|
lenderModel = (LenderModel)pModels.get("lendermodel");
|
||||||
|
freeArticleModel = (FreeArticleTableModel)pModels.get("freearticlemodel");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return StatusCode
|
||||||
|
* 0: Erfolgreich gespeichert
|
||||||
|
* 1: Notwendige Daten sind leer (Art-ID, Start-Date, Est. End-Date)
|
||||||
|
* 2: Das R<>ckgabedatum ist fr<66>her oder gleich dem Ausleihdatum
|
||||||
|
* 3: Die gegebene Kombination aus Lender-Name, -Surname und -Studentnumber
|
||||||
|
* existiert mehrmals in der Datenbank. Das darf nicht sein und wirft daher einen Fehler!
|
||||||
|
*/
|
||||||
|
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 1;
|
||||||
|
if (pEstEndDate.before(new Date())) return 2;
|
||||||
|
|
||||||
|
ArrayList<KLender> lenders = lenderModel.getLenders(pLName, pLSurname, pLSN);
|
||||||
|
if(lenders.size() == 0) {
|
||||||
|
// Lender existiert noch nicht
|
||||||
|
}
|
||||||
|
else if(lenders.size() == 1){
|
||||||
|
// Lender existiert bereits
|
||||||
|
}
|
||||||
|
else return 3;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ public class ArticlePanel extends JPanel implements ActionListener, KeyListener
|
|||||||
super();
|
super();
|
||||||
this.setLayout(null);
|
this.setLayout(null);
|
||||||
articleTableModel = (ArticleTableModel)pModels.get("articlemodel");
|
articleTableModel = (ArticleTableModel)pModels.get("articlemodel");
|
||||||
|
|
||||||
articleController = new ArticleController(dbCon, pModels);
|
articleController = new ArticleController(dbCon, pModels);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ import java.awt.event.ActionEvent;
|
|||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
import java.awt.event.FocusListener;
|
import java.awt.event.FocusListener;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
@@ -26,6 +29,7 @@ import org.jdesktop.swingx.JXDatePicker;
|
|||||||
import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;
|
import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;
|
||||||
|
|
||||||
import de.katho.kBorrow.Util;
|
import de.katho.kBorrow.Util;
|
||||||
|
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;
|
||||||
@@ -55,7 +59,9 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
|||||||
private LenderModel lenderModel;
|
private LenderModel lenderModel;
|
||||||
private JButton btnCancel;
|
private JButton btnCancel;
|
||||||
private JButton btnSave;
|
private JButton btnSave;
|
||||||
private Object lastFocussedComponent;
|
private NewLendingController newLendingController;
|
||||||
|
private JComboBox<String> cbUserName;
|
||||||
|
private JXDatePicker dpEstEndDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create the panel.
|
* Create the panel.
|
||||||
@@ -65,12 +71,12 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
|||||||
public NewLendingPanel(final DbConnector dbCon, HashMap<String, Object> pModel) throws IOException {
|
public NewLendingPanel(final DbConnector dbCon, HashMap<String, Object> pModel) throws IOException {
|
||||||
setLayout(null);
|
setLayout(null);
|
||||||
articleId = -1;
|
articleId = -1;
|
||||||
lastFocussedComponent = null;
|
|
||||||
|
|
||||||
// FreeArticleTable
|
// FreeArticleTable
|
||||||
freeArticleTableModel = (FreeArticleTableModel)pModel.get("freearticlemodel");
|
freeArticleTableModel = (FreeArticleTableModel)pModel.get("freearticlemodel");
|
||||||
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);
|
||||||
|
|
||||||
JTable freeArticleTable = new JTable(freeArticleTableModel);
|
JTable freeArticleTable = new JTable(freeArticleTableModel);
|
||||||
freeArticleTable.setRowHeight(30);
|
freeArticleTable.setRowHeight(30);
|
||||||
@@ -126,18 +132,18 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
|||||||
lblNewLabel.setBounds(10, 60, 90, 20);
|
lblNewLabel.setBounds(10, 60, 90, 20);
|
||||||
panelNewLending.add(lblNewLabel);
|
panelNewLending.add(lblNewLabel);
|
||||||
|
|
||||||
JXDatePicker xpicker = new JXDatePicker(new Date());
|
dpEstEndDate = new JXDatePicker(new Date());
|
||||||
xpicker.setBounds(110, 60, 200, 20);
|
dpEstEndDate.setBounds(110, 60, 200, 20);
|
||||||
panelNewLending.add(xpicker);
|
panelNewLending.add(dpEstEndDate);
|
||||||
|
|
||||||
|
|
||||||
JLabel lblBenutzer = new JLabel("Benutzer:");
|
JLabel lblBenutzer = new JLabel("Benutzer:");
|
||||||
lblBenutzer.setBounds(350, 20, 70, 20);
|
lblBenutzer.setBounds(350, 20, 70, 20);
|
||||||
panelNewLending.add(lblBenutzer);
|
panelNewLending.add(lblBenutzer);
|
||||||
|
|
||||||
JComboBox<String> comboBox = new JComboBox<String>(userListModel);
|
cbUserName = new JComboBox<String>(userListModel);
|
||||||
comboBox.setBounds(430, 20, 130, 20);
|
cbUserName.setBounds(430, 20, 130, 20);
|
||||||
panelNewLending.add(comboBox);
|
panelNewLending.add(cbUserName);
|
||||||
|
|
||||||
JSeparator separator = new JSeparator();
|
JSeparator separator = new JSeparator();
|
||||||
separator.setBounds(10, 90, 569, 2);
|
separator.setBounds(10, 90, 569, 2);
|
||||||
@@ -175,6 +181,7 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
|||||||
btnCancel.setBounds(471, 130, 89, 23);
|
btnCancel.setBounds(471, 130, 89, 23);
|
||||||
btnSave.setBounds(471, 160, 89, 23);
|
btnSave.setBounds(471, 160, 89, 23);
|
||||||
btnCancel.addActionListener(this);
|
btnCancel.addActionListener(this);
|
||||||
|
btnSave.addActionListener(this);
|
||||||
|
|
||||||
// Tab Traversal Policy
|
// Tab Traversal Policy
|
||||||
Vector<Component> order = new Vector<Component>();
|
Vector<Component> order = new Vector<Component>();
|
||||||
@@ -217,24 +224,43 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
|||||||
tfStudentNumber.setText("");
|
tfStudentNumber.setText("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(pEvent.getSource() == btnSave){
|
||||||
|
String pLName = tfName.getText();
|
||||||
|
String pLSurname = tfSurname.getText();
|
||||||
|
String startDate = lblStartDate.getText();
|
||||||
|
Date estEndDate = dpEstEndDate.getDate();
|
||||||
|
String pLSN = tfStudentNumber.getText();
|
||||||
|
String pUsername = userListModel.getSelectedItem();
|
||||||
|
|
||||||
|
System.out.println("Art-ID: "+articleId);
|
||||||
|
System.out.println("------------------");
|
||||||
|
System.out.println("Lender-Name: "+pLName);
|
||||||
|
System.out.println("Lender-Surname: "+pLSurname);
|
||||||
|
System.out.println("Lender-SN: "+pLSN);
|
||||||
|
System.out.println("------------------");
|
||||||
|
System.out.println("User-Name: "+pUsername);
|
||||||
|
System.out.println("Start-Date: "+startDate);
|
||||||
|
System.out.println("Est. End-Date: "+estEndDate);
|
||||||
|
|
||||||
|
int r = newLendingController.newLending(articleId, pLName, pLSurname, pLSN, startDate, estEndDate, pUsername);
|
||||||
|
System.out.println("Status: "+r);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void focusGained(FocusEvent pEvent) {
|
public void focusGained(FocusEvent pEvent) {
|
||||||
if(pEvent.getSource() == tfName) System.out.println("tfName got focus");
|
|
||||||
if(pEvent.getSource() == tfSurname) System.out.println("tfSurname got focus");
|
|
||||||
if(pEvent.getSource() == tfStudentNumber) System.out.println("tfStudentNumber got focus");
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void focusLost(FocusEvent pEvent) {
|
public void focusLost(FocusEvent pEvent) {
|
||||||
KLender result = lenderModel.getLender(tfName.getText(), tfSurname.getText(), tfStudentNumber.getText());
|
ArrayList<KLender> result = lenderModel.getLenders(tfName.getText(), tfSurname.getText(), tfStudentNumber.getText());
|
||||||
|
|
||||||
if(result != null){
|
if(result.size() == 1){
|
||||||
tfName.setText(result.getName());
|
tfName.setText(result.get(0).getName());
|
||||||
tfSurname.setText(result.getSurname());
|
tfSurname.setText(result.get(0).getSurname());
|
||||||
tfStudentNumber.setText(String.valueOf(result.getStudentnumber()));
|
tfStudentNumber.setText(String.valueOf(result.get(0).getStudentnumber()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package de.katho.kBorrow.models;
|
package de.katho.kBorrow.models;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import de.katho.kBorrow.data.KLender;
|
import de.katho.kBorrow.data.KLender;
|
||||||
import de.katho.kBorrow.db.DbConnector;
|
import de.katho.kBorrow.db.DbConnector;
|
||||||
@@ -22,11 +23,13 @@ public class LenderModel {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public KLender getLender(String pName, String pSurname, String pSN){
|
public ArrayList<KLender> getLenders(String pName, String pSurname, String pSN){
|
||||||
boolean nameEmpty = pName.isEmpty();
|
boolean nameEmpty = pName.isEmpty();
|
||||||
boolean surnameEmpty = pSurname.isEmpty();
|
boolean surnameEmpty = pSurname.isEmpty();
|
||||||
boolean snEmpty = pSN.isEmpty();
|
boolean snEmpty = pSN.isEmpty();
|
||||||
|
ArrayList<KLender> elems = new ArrayList<KLender>();
|
||||||
int sn;
|
int sn;
|
||||||
|
|
||||||
if(pSN.matches("[0-9]+")){
|
if(pSN.matches("[0-9]+")){
|
||||||
sn = Integer.parseInt(pSN);
|
sn = Integer.parseInt(pSN);
|
||||||
}
|
}
|
||||||
@@ -40,31 +43,35 @@ public class LenderModel {
|
|||||||
// Alles gegeben
|
// Alles gegeben
|
||||||
for(KLender e : data){
|
for(KLender e : data){
|
||||||
if(e.getName().equals(pName) && e.getSurname().equals(pSurname) && e.getStudentnumber() == sn){
|
if(e.getName().equals(pName) && e.getSurname().equals(pSurname) && e.getStudentnumber() == sn){
|
||||||
return e;
|
elems.add(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return elems;
|
||||||
}
|
}
|
||||||
//Name und Surname gegeben
|
//Name und Surname gegeben
|
||||||
for(KLender e : data){
|
for(KLender e : data){
|
||||||
if(e.getName().equals(pName) && e.getSurname().equals(pSurname)){
|
if(e.getName().equals(pName) && e.getSurname().equals(pSurname)){
|
||||||
return e;
|
elems.add(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return elems;
|
||||||
}
|
}
|
||||||
if(!snEmpty){
|
if(!snEmpty){
|
||||||
// Name und SN gegeben
|
// Name und SN gegeben
|
||||||
for (KLender e : data){
|
for (KLender e : data){
|
||||||
if(e.getName().equals(pName) && e.getStudentnumber() == sn){
|
if(e.getName().equals(pName) && e.getStudentnumber() == sn){
|
||||||
return e;
|
elems.add(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return elems;
|
||||||
}
|
}
|
||||||
// Nur Name gegeben
|
// Nur Name gegeben
|
||||||
for (KLender e : data){
|
for (KLender e : data){
|
||||||
if(e.getName().equals(pName)){
|
if(e.getName().equals(pName)){
|
||||||
return e;
|
elems.add(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return elems;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!surnameEmpty){
|
if(!surnameEmpty){
|
||||||
@@ -72,27 +79,42 @@ public class LenderModel {
|
|||||||
// Surname und SN gegeben
|
// Surname und SN gegeben
|
||||||
for (KLender e : data){
|
for (KLender e : data){
|
||||||
if(e.getSurname().equals(pSurname) && e.getStudentnumber() == sn){
|
if(e.getSurname().equals(pSurname) && e.getStudentnumber() == sn){
|
||||||
return e;
|
elems.add(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return elems;
|
||||||
}
|
}
|
||||||
// Nur Surname gegeben
|
// Nur Surname gegeben
|
||||||
for (KLender e : data){
|
for (KLender e : data){
|
||||||
if(e.getSurname().equals(pSurname)){
|
if(e.getSurname().equals(pSurname)){
|
||||||
return e;
|
elems.add(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return elems;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!snEmpty){
|
if(!snEmpty){
|
||||||
// Nur SN gegeben
|
// Nur SN gegeben
|
||||||
for (KLender e : data){
|
for (KLender e : data){
|
||||||
if(e.getStudentnumber() == sn){
|
if(e.getStudentnumber() == sn){
|
||||||
return e;
|
elems.add(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return elems;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return elems;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean exists(String pName, String pSurname, String pSN){
|
||||||
|
ArrayList<KLender> elems = getLenders(pName, pSurname, pSN);
|
||||||
|
|
||||||
|
return elems.size() > 0 ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUnique(String pName, String pSurname, String pSN){
|
||||||
|
ArrayList<KLender> elems = getLenders(pName, pSurname, pSN);
|
||||||
|
|
||||||
|
return elems.size() == 1 ? true : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,5 +64,7 @@ public class UserListModel extends AbstractListModel<String> implements ComboBox
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user