Angefangen, Controller für die einzelnen GUI-Formulare zu
implementieren, um Daten und Geschäftslogik strenger zu trennen.
This commit is contained in:
@@ -4,5 +4,6 @@
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="lib" path="lib/mysql-connector-java-5.1.32-bin.jar"/>
|
||||
<classpathentry kind="lib" path="lib/sqlite-jdbc-3.7.2.jar"/>
|
||||
<classpathentry kind="lib" path="lib/jdatepicker-1.3.4.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
||||
@@ -15,5 +15,6 @@ public interface DbConnector {
|
||||
public int createArticle(String pName, String pDesc);
|
||||
public boolean deleteArticle(int id);
|
||||
public int editArticle(int pId, String pName, String pDesc);
|
||||
public ArrayList<KArticle> getFreeArticleList();
|
||||
|
||||
}
|
||||
|
||||
@@ -59,5 +59,11 @@ public class SqlConnector implements DbConnector{
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<KArticle> getFreeArticleList() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -182,44 +182,6 @@ public class SqliteConnector implements DbConnector {
|
||||
|
||||
return text.toString();
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @return 0: Benutzer erfolgreich erzeugt
|
||||
* 1: SQL-Fehler beim Erzeugen
|
||||
* 2: Benutzername ist leer
|
||||
*/
|
||||
public int createUser(String pName, String pSurname){
|
||||
if (pName.isEmpty() && pSurname.isEmpty()) return 2;
|
||||
try {
|
||||
Statement st = this.connection.createStatement();
|
||||
String query = "INSERT INTO user (name, surname) VALUES ('"+pName+"', '"+pSurname+"')";
|
||||
|
||||
st.executeUpdate(query);
|
||||
|
||||
return 0;
|
||||
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean deleteUser(int id){
|
||||
// @TODO: Ausleihen auf einen anderen User umschreiben!
|
||||
try {
|
||||
Statement st = this.connection.createStatement();
|
||||
String query = "DELETE FROM user WHERE id = '"+id+"'";
|
||||
|
||||
st.executeUpdate(query);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (SQLException e){
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public ArrayList<KUser> getUserList(){
|
||||
ArrayList<KUser> userArr = new ArrayList<KUser>();
|
||||
|
||||
@@ -260,6 +222,48 @@ public class SqliteConnector implements DbConnector {
|
||||
}
|
||||
}
|
||||
|
||||
public ArrayList<KArticle> getFreeArticleList() {
|
||||
ArrayList<KArticle> artArr = new ArrayList<KArticle>();
|
||||
|
||||
try {
|
||||
Statement st = this.connection.createStatement();
|
||||
String query = "SELECT article.id, name, description FROM article LEFT OUTER JOIN lending ON article.id = lending.article_id WHERE lending.start_date IS NULL OR (lending.start_date IS NOT NULL AND lending.end_date IS NOT NULL);";
|
||||
ResultSet rs = st.executeQuery(query);
|
||||
|
||||
while (rs.next()){
|
||||
artArr.add(new KArticle(rs.getInt("id"), rs.getString("name"), rs.getString("description")));
|
||||
}
|
||||
|
||||
return artArr;
|
||||
}
|
||||
catch(SQLException ex){
|
||||
ex.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return 0: Benutzer erfolgreich erzeugt
|
||||
* 1: SQL-Fehler beim Erzeugen
|
||||
* 2: Benutzername ist leer
|
||||
*/
|
||||
public int createUser(String pName, String pSurname){
|
||||
if (pName.isEmpty() && pSurname.isEmpty()) return 2;
|
||||
try {
|
||||
Statement st = this.connection.createStatement();
|
||||
String query = "INSERT INTO user (name, surname) VALUES ('"+pName+"', '"+pSurname+"')";
|
||||
|
||||
st.executeUpdate(query);
|
||||
|
||||
return 0;
|
||||
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
public int editUser(int pId, String pName, String pSurname) {
|
||||
if(pName.isEmpty() && pSurname.isEmpty()) return 2;
|
||||
try {
|
||||
@@ -276,6 +280,22 @@ public class SqliteConnector implements DbConnector {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean deleteUser(int id){
|
||||
// @TODO: Ausleihen auf einen anderen User umschreiben!
|
||||
try {
|
||||
Statement st = this.connection.createStatement();
|
||||
String query = "DELETE FROM user WHERE id = '"+id+"'";
|
||||
|
||||
st.executeUpdate(query);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (SQLException e){
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public int createArticle(String pName, String pDesc) {
|
||||
if (pName.isEmpty()) return 2;
|
||||
try {
|
||||
|
||||
@@ -22,15 +22,17 @@ import javax.swing.JTextField;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.border.TitledBorder;
|
||||
|
||||
import de.katho.kBorrow.controller.ArticleController;
|
||||
import de.katho.kBorrow.db.DbConnector;
|
||||
import de.katho.kBorrow.listener.ArticleDeleteTableButton;
|
||||
import de.katho.kBorrow.listener.ArticleEditTableButton;
|
||||
import de.katho.kBorrow.models.ArticleTableModel;
|
||||
import de.katho.kBorrow.models.ArticleModel;
|
||||
|
||||
public class PanelArticle extends JPanel implements ActionListener, KeyListener {
|
||||
public class ArticlePanel extends JPanel implements ActionListener, KeyListener {
|
||||
|
||||
private static final long serialVersionUID = -8511924597640457608L;
|
||||
private ArticleTableModel articleTableModel;
|
||||
private ArticleModel articleModel;
|
||||
private ArticleController articleController;
|
||||
private JTextArea textAreaArticleDescription;
|
||||
private JTextField textFieldArticleName;
|
||||
private JButton btnArticleSave;
|
||||
@@ -43,17 +45,19 @@ public class PanelArticle extends JPanel implements ActionListener, KeyListener
|
||||
* Create the panel.
|
||||
* @throws IOException
|
||||
*/
|
||||
public PanelArticle(final DbConnector dbCon) throws IOException {
|
||||
public ArticlePanel(final DbConnector dbCon) throws IOException {
|
||||
super();
|
||||
this.setLayout(null);
|
||||
this.setLayout(null);
|
||||
articleModel = new ArticleModel(dbCon);
|
||||
articleController = new ArticleController(dbCon, articleModel);
|
||||
|
||||
/*
|
||||
* Tabelle und drumherum
|
||||
*/
|
||||
this.articleTableModel = new ArticleTableModel(dbCon);
|
||||
JTable articleTable = new JTable(articleTableModel);
|
||||
|
||||
JTable articleTable = new JTable(articleModel);
|
||||
articleTable.setRowHeight(30);
|
||||
ArticleDeleteTableButton articleDeleteTableButton = new ArticleDeleteTableButton("Löschen", articleTable);
|
||||
ArticleDeleteTableButton articleDeleteTableButton = new ArticleDeleteTableButton("Löschen", articleTable, this, articleController);
|
||||
ArticleEditTableButton articleEditTableButton = new ArticleEditTableButton("Bearbeiten", articleTable, this);
|
||||
|
||||
for (int i = 3; i <= 4; i++){
|
||||
@@ -64,6 +68,9 @@ public class PanelArticle extends JPanel implements ActionListener, KeyListener
|
||||
articleTable.getColumnModel().getColumn(i).setMaxWidth(30);
|
||||
articleTable.getColumnModel().getColumn(i).setPreferredWidth(30);
|
||||
}
|
||||
articleTable.getColumnModel().getColumn(0).setMinWidth(30);
|
||||
articleTable.getColumnModel().getColumn(0).setMaxWidth(30);
|
||||
articleTable.getColumnModel().getColumn(0).setPreferredWidth(30);
|
||||
|
||||
articleTable.setFillsViewportHeight(true);
|
||||
|
||||
@@ -122,7 +129,7 @@ public class PanelArticle extends JPanel implements ActionListener, KeyListener
|
||||
* PanelArticleEdit
|
||||
*/
|
||||
JPanel panelArticleEdit = new JPanel();
|
||||
panelArticleEdit.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Artikel hinzuf\u00FCgen / bearbeiten", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
||||
panelArticleEdit.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Artikel hinzufügen / bearbeiten", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
||||
panelArticleEdit.setBounds(0, 273, 589, 170);
|
||||
panelArticleEdit.setLayout(null);
|
||||
panelArticleEdit.add(lblName);
|
||||
@@ -145,47 +152,23 @@ public class PanelArticle extends JPanel implements ActionListener, KeyListener
|
||||
* Aktionen für den Button "Artikel speichern"
|
||||
*/
|
||||
if(e.getSource() == this.btnArticleSave){
|
||||
if(this.articleModeEdit){
|
||||
int re = this.articleTableModel.editArticle(this.articleEditId, this.textFieldArticleName.getText(), this.textAreaArticleDescription.getText());
|
||||
|
||||
switch(re){
|
||||
case 0:
|
||||
this.lblArticleStatus.setText("Artikel-ID \""+this.articleEditId+"\" erfolgreich bearbeitet.");
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
this.lblArticleStatus.setText("SQL-Fehler. Artikel konnte nicht bearbeitet werden.");
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
this.lblArticleStatus.setText("Artikelname muss ausgefüllt sein.");
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
this.articleModeEdit = false;
|
||||
this.articleEditId = -1;
|
||||
}
|
||||
|
||||
else {
|
||||
saveButtonPressed();
|
||||
}
|
||||
saveButtonPressed();
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktionen für den Button "Artikel abbrechen"
|
||||
*/
|
||||
if(e.getSource() == this.btnArticleCancel){
|
||||
this.articleModeEdit = false;
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
this.resetModeEditArticle();
|
||||
}
|
||||
}
|
||||
|
||||
public void resetModeEditArticle() {
|
||||
this.articleModeEdit = false;
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
}
|
||||
|
||||
public void setModeEditArticle(int articleId, String articleName, String articleDescription) {
|
||||
this.articleModeEdit = true;
|
||||
this.articleEditId = articleId;
|
||||
@@ -194,25 +177,53 @@ public class PanelArticle extends JPanel implements ActionListener, KeyListener
|
||||
}
|
||||
|
||||
private void saveButtonPressed(){
|
||||
int re = this.articleTableModel.createArticle(this.textFieldArticleName.getText(), this.textAreaArticleDescription.getText());
|
||||
|
||||
switch(re){
|
||||
case 0:
|
||||
this.lblArticleStatus.setText("Artikel \""+this.textFieldArticleName.getText()+"\" erfolgreich hinzugefügt.");
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
break;
|
||||
if(this.articleModeEdit){
|
||||
int re = articleController.editArticle(this.articleEditId, this.textFieldArticleName.getText(), this.textAreaArticleDescription.getText());
|
||||
|
||||
case 1:
|
||||
this.lblArticleStatus.setText("SQL-Fehler. Artikel konnte nicht erstellt werden.");
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
this.lblArticleStatus.setText("Es muss ein Artikelname vergeben werden");
|
||||
break;
|
||||
switch(re){
|
||||
case 0:
|
||||
this.lblArticleStatus.setText("Artikel-ID \""+this.articleEditId+"\" erfolgreich bearbeitet.");
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
this.lblArticleStatus.setText("SQL-Fehler. Artikel konnte nicht bearbeitet werden.");
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
this.lblArticleStatus.setText("Artikelname muss ausgefüllt sein.");
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
this.articleModeEdit = false;
|
||||
this.articleEditId = -1;
|
||||
}
|
||||
|
||||
else {
|
||||
int re = articleController.createArticle(this.textFieldArticleName.getText(), this.textAreaArticleDescription.getText());
|
||||
|
||||
switch(re){
|
||||
case 0:
|
||||
this.lblArticleStatus.setText("Artikel \""+this.textFieldArticleName.getText()+"\" erfolgreich hinzugefügt.");
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
this.lblArticleStatus.setText("SQL-Fehler. Artikel konnte nicht erstellt werden.");
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
this.lblArticleStatus.setText("Es muss ein Artikelname vergeben werden");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -55,8 +55,8 @@ public class MainWindow {
|
||||
this.frame.getContentPane().add(this.tabbedPane, BorderLayout.CENTER);
|
||||
this.tabbedPane.addTab("Neue Ausleihe", new PanelNewLending(this.dbCon));
|
||||
this.tabbedPane.addTab("Ausleihen verwalten", new PanelManageLendings(this.dbCon));
|
||||
this.tabbedPane.addTab("Artikel verwalten", new PanelArticle(this.dbCon));
|
||||
this.tabbedPane.addTab("Benutzer verwalten", new PanelUser(this.dbCon));
|
||||
this.tabbedPane.addTab("Artikel verwalten", new ArticlePanel(this.dbCon));
|
||||
this.tabbedPane.addTab("Benutzer verwalten", new UserPanel(this.dbCon));
|
||||
|
||||
}
|
||||
catch(ClassNotFoundException | InstantiationException | IllegalAccessException | IOException | UnsupportedLookAndFeelException | SQLException e) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import javax.swing.JPanel;
|
||||
|
||||
import de.katho.kBorrow.db.DbConnector;
|
||||
import de.katho.kBorrow.listener.NewLendingTableButton;
|
||||
import de.katho.kBorrow.models.FreeArticleTableModel;
|
||||
import de.katho.kBorrow.models.FreeArticleModel;
|
||||
|
||||
import javax.swing.border.TitledBorder;
|
||||
import javax.swing.JScrollPane;
|
||||
@@ -13,13 +13,25 @@ import javax.swing.JTable;
|
||||
import java.awt.BorderLayout;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JSeparator;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.UIManager;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
public class PanelNewLending extends JPanel {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -7346953418572781322L;
|
||||
private FreeArticleTableModel freeArticleTableModel;
|
||||
private FreeArticleModel freeArticleModel;
|
||||
private JTextField tfName;
|
||||
private JTextField tfSurname;
|
||||
private JTextField tfStudentNumber;
|
||||
|
||||
/**
|
||||
* Create the panel.
|
||||
@@ -30,8 +42,8 @@ public class PanelNewLending extends JPanel {
|
||||
this.setLayout(null);
|
||||
|
||||
// FreeArticleTable
|
||||
this.freeArticleTableModel = new FreeArticleTableModel(dbCon);
|
||||
JTable freeArticleTable = new JTable(freeArticleTableModel);
|
||||
this.freeArticleModel = new FreeArticleModel(dbCon);
|
||||
JTable freeArticleTable = new JTable(freeArticleModel);
|
||||
freeArticleTable.setRowHeight(30);
|
||||
|
||||
NewLendingTableButton newLendingTableButton = new NewLendingTableButton("Artikel ausleihen", freeArticleTable, this);
|
||||
@@ -40,6 +52,9 @@ public class PanelNewLending extends JPanel {
|
||||
freeArticleTable.getColumnModel().getColumn(3).setMinWidth(30);
|
||||
freeArticleTable.getColumnModel().getColumn(3).setMaxWidth(30);
|
||||
freeArticleTable.getColumnModel().getColumn(3).setPreferredWidth(30);
|
||||
freeArticleTable.getColumnModel().getColumn(0).setMinWidth(30);
|
||||
freeArticleTable.getColumnModel().getColumn(0).setMaxWidth(30);
|
||||
freeArticleTable.getColumnModel().getColumn(0).setPreferredWidth(30);
|
||||
|
||||
|
||||
freeArticleTable.setFillsViewportHeight(true);
|
||||
@@ -47,7 +62,7 @@ public class PanelNewLending extends JPanel {
|
||||
|
||||
// Panel: FreeArticleList
|
||||
JPanel panelFreeArticleList = new JPanel();
|
||||
panelFreeArticleList.setBorder(new TitledBorder(null, "Vorhandene Artikel", TitledBorder.LEADING, TitledBorder.TOP, null, null));
|
||||
panelFreeArticleList.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Verf\u00FCgbare Artikel", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
||||
panelFreeArticleList.setBounds(0, 0, 589, 253);
|
||||
panelFreeArticleList.setLayout(new BorderLayout(0, 0));
|
||||
panelFreeArticleList.add(new JScrollPane(freeArticleTable));
|
||||
@@ -60,6 +75,74 @@ public class PanelNewLending extends JPanel {
|
||||
|
||||
this.add(panelFreeArticleList);
|
||||
this.add(panelNewLending);
|
||||
panelNewLending.setLayout(null);
|
||||
|
||||
JLabel lblArtikelname = new JLabel("Artikelname:");
|
||||
lblArtikelname.setBounds(10, 20, 90, 20);
|
||||
panelNewLending.add(lblArtikelname);
|
||||
|
||||
JLabel lblArticleName = new JLabel("");
|
||||
lblArticleName.setBounds(110, 20, 100, 20);
|
||||
panelNewLending.add(lblArticleName);
|
||||
|
||||
JLabel lblAusgeliehenAm = new JLabel("Ausgeliehen am:");
|
||||
lblAusgeliehenAm.setBounds(10, 40, 90, 20);
|
||||
panelNewLending.add(lblAusgeliehenAm);
|
||||
|
||||
JLabel lblStartDate = new JLabel("");
|
||||
lblStartDate.setBounds(110, 40, 100, 20);
|
||||
panelNewLending.add(lblStartDate);
|
||||
|
||||
JLabel lblNewLabel = new JLabel("Vor. R<>ckgabe:");
|
||||
lblNewLabel.setBounds(10, 60, 90, 20);
|
||||
panelNewLending.add(lblNewLabel);
|
||||
|
||||
JLabel lblBenutzer = new JLabel("Benutzer:");
|
||||
lblBenutzer.setBounds(350, 20, 70, 20);
|
||||
panelNewLending.add(lblBenutzer);
|
||||
|
||||
JComboBox comboBox = new JComboBox();
|
||||
comboBox.setBounds(430, 20, 130, 20);
|
||||
panelNewLending.add(comboBox);
|
||||
|
||||
JSeparator separator = new JSeparator();
|
||||
separator.setBounds(10, 90, 569, 2);
|
||||
panelNewLending.add(separator);
|
||||
|
||||
JButton btnAbbrechen = new JButton("Abbrechen");
|
||||
btnAbbrechen.setBounds(471, 130, 89, 23);
|
||||
panelNewLending.add(btnAbbrechen);
|
||||
|
||||
JButton btnSpeichern = new JButton("Speichern");
|
||||
btnSpeichern.setBounds(471, 160, 89, 23);
|
||||
panelNewLending.add(btnSpeichern);
|
||||
|
||||
JLabel lblNewLabel_1 = new JLabel("Name:");
|
||||
lblNewLabel_1.setBounds(10, 100, 90, 20);
|
||||
panelNewLending.add(lblNewLabel_1);
|
||||
|
||||
JLabel lblNewLabel_2 = new JLabel("Nachname:");
|
||||
lblNewLabel_2.setBounds(10, 130, 90, 20);
|
||||
panelNewLending.add(lblNewLabel_2);
|
||||
|
||||
JLabel lblNewLabel_3 = new JLabel("Matrikelnummer:");
|
||||
lblNewLabel_3.setBounds(10, 160, 90, 20);
|
||||
panelNewLending.add(lblNewLabel_3);
|
||||
|
||||
tfName = new JTextField();
|
||||
tfName.setBounds(110, 100, 90, 20);
|
||||
panelNewLending.add(tfName);
|
||||
tfName.setColumns(10);
|
||||
|
||||
tfSurname = new JTextField();
|
||||
tfSurname.setBounds(110, 130, 90, 20);
|
||||
panelNewLending.add(tfSurname);
|
||||
tfSurname.setColumns(10);
|
||||
|
||||
tfStudentNumber = new JTextField();
|
||||
tfStudentNumber.setBounds(110, 160, 90, 20);
|
||||
panelNewLending.add(tfStudentNumber);
|
||||
tfStudentNumber.setColumns(10);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -18,12 +18,13 @@ import javax.swing.JTextField;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.border.TitledBorder;
|
||||
|
||||
import de.katho.kBorrow.controller.UserController;
|
||||
import de.katho.kBorrow.db.DbConnector;
|
||||
import de.katho.kBorrow.listener.UserDeleteTableButton;
|
||||
import de.katho.kBorrow.listener.UserEditTableButton;
|
||||
import de.katho.kBorrow.models.UserTableModel;
|
||||
import de.katho.kBorrow.models.UserModel;
|
||||
|
||||
public class PanelUser extends JPanel implements ActionListener, KeyListener {
|
||||
public class UserPanel extends JPanel implements ActionListener, KeyListener {
|
||||
|
||||
private static final long serialVersionUID = -319340262589243978L;
|
||||
private JLabel lblUserStatus;
|
||||
@@ -33,17 +34,19 @@ public class PanelUser extends JPanel implements ActionListener, KeyListener {
|
||||
private JButton btnUserCancel;
|
||||
private boolean userModeEdit;
|
||||
private int userEditId;
|
||||
private UserTableModel userTableModel;
|
||||
private UserModel userModel;
|
||||
private UserController userController;
|
||||
|
||||
public PanelUser(final DbConnector dbCon) throws IOException{
|
||||
public UserPanel(final DbConnector dbCon) throws IOException{
|
||||
super();
|
||||
this.setLayout(null);
|
||||
this.userModel = new UserModel(dbCon);
|
||||
this.userController = new UserController(dbCon, this.userModel);
|
||||
|
||||
//Tabelle und drumherum
|
||||
this.userTableModel = new UserTableModel(dbCon);
|
||||
JTable userTable = new JTable(userTableModel);
|
||||
JTable userTable = new JTable(userModel);
|
||||
userTable.setRowHeight(30);
|
||||
UserDeleteTableButton userDeleteTableButton = new UserDeleteTableButton("Löschen", userTable);
|
||||
UserDeleteTableButton userDeleteTableButton = new UserDeleteTableButton("Löschen", userTable, this, userController);
|
||||
UserEditTableButton userEditTableButton = new UserEditTableButton("Bearbeiten", userTable, this);
|
||||
|
||||
for (int i = 3; i <= 4; i++){
|
||||
@@ -54,6 +57,9 @@ public class PanelUser extends JPanel implements ActionListener, KeyListener {
|
||||
userTable.getColumnModel().getColumn(i).setMaxWidth(30);
|
||||
userTable.getColumnModel().getColumn(i).setPreferredWidth(30);
|
||||
}
|
||||
userTable.getColumnModel().getColumn(0).setMinWidth(30);
|
||||
userTable.getColumnModel().getColumn(0).setMaxWidth(30);
|
||||
userTable.getColumnModel().getColumn(0).setPreferredWidth(30);
|
||||
|
||||
userTable.setFillsViewportHeight(true);
|
||||
|
||||
@@ -121,47 +127,24 @@ public class PanelUser extends JPanel implements ActionListener, KeyListener {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if(e.getSource() == this.btnUserSave){
|
||||
if(this.userModeEdit){
|
||||
int re = this.userTableModel.editUser(this.userEditId, this.textFieldUserName.getText(), this.textFieldUserSurname.getText());
|
||||
|
||||
switch(re){
|
||||
case 0:
|
||||
this.lblUserStatus.setText("Benutzer-ID \""+this.userEditId+"\" erfolgreich bearbeitet.");
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
this.lblUserStatus.setText("SQL-Fehler. Benutzer konnte nicht bearbeitet werden.");
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
this.lblUserStatus.setText("Entweder Vor- oder Nachname müssen ausgefüllt sein.");
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
this.userModeEdit = false;
|
||||
this.userEditId = -1;
|
||||
}
|
||||
else {
|
||||
saveButtonPressed();
|
||||
}
|
||||
saveButtonPressed();
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktionen für den Button "Benutzer abbrechen"
|
||||
*/
|
||||
if(e.getSource() == this.btnUserCancel){
|
||||
this.userModeEdit = false;
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
this.resetModeEditUser();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void resetModeEditUser() {
|
||||
this.userModeEdit = false;
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
}
|
||||
|
||||
public void setModeEditUser(int pId, String pName, String pSurname){
|
||||
this.userModeEdit = true;
|
||||
this.userEditId = pId;
|
||||
@@ -170,24 +153,51 @@ public class PanelUser extends JPanel implements ActionListener, KeyListener {
|
||||
}
|
||||
|
||||
private void saveButtonPressed(){
|
||||
int re = this.userTableModel.createUser(this.textFieldUserName.getText(), this.textFieldUserSurname.getText());
|
||||
if(this.userModeEdit){
|
||||
int re = this.userController.editUser(this.userEditId, this.textFieldUserName.getText(), this.textFieldUserSurname.getText());
|
||||
|
||||
switch(re){
|
||||
case 0:
|
||||
this.lblUserStatus.setText("Benutzer-ID \""+this.userEditId+"\" erfolgreich bearbeitet.");
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
this.lblUserStatus.setText("SQL-Fehler. Benutzer konnte nicht bearbeitet werden.");
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
this.lblUserStatus.setText("Entweder Vor- oder Nachname müssen ausgefüllt sein.");
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
this.userModeEdit = false;
|
||||
this.userEditId = -1;
|
||||
}
|
||||
else {
|
||||
int re = userController.createUser(this.textFieldUserName.getText(), this.textFieldUserSurname.getText());
|
||||
|
||||
switch (re){
|
||||
case 0:
|
||||
this.lblUserStatus.setText("Benutzer \""+this.textFieldUserName.getText()+" "+this.textFieldUserSurname.getText()+"\" erfolgreich hinzugefügt.");
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
this.lblUserStatus.setText("SQL-Fehler. Benutzer konnte nicht erstellt werden.");
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
this.lblUserStatus.setText("Entweder Vor- oder Nachname müssen ausgefüllt sein.");
|
||||
break;
|
||||
switch (re){
|
||||
case 0:
|
||||
this.lblUserStatus.setText("Benutzer \""+this.textFieldUserName.getText()+" "+this.textFieldUserSurname.getText()+"\" erfolgreich hinzugefügt.");
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
this.lblUserStatus.setText("SQL-Fehler. Benutzer konnte nicht erstellt werden.");
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
this.lblUserStatus.setText("Entweder Vor- oder Nachname müssen ausgefüllt sein.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,9 @@ import javax.imageio.ImageIO;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JTable;
|
||||
|
||||
import de.katho.kBorrow.models.ArticleTableModel;
|
||||
import de.katho.kBorrow.controller.ArticleController;
|
||||
import de.katho.kBorrow.gui.ArticlePanel;
|
||||
import de.katho.kBorrow.models.ArticleModel;
|
||||
|
||||
public class ArticleDeleteTableButton extends TableButton {
|
||||
|
||||
@@ -18,7 +20,7 @@ public class ArticleDeleteTableButton extends TableButton {
|
||||
*/
|
||||
private static final long serialVersionUID = 7701712368979056068L;
|
||||
|
||||
public ArticleDeleteTableButton(String pLabel, final JTable pTable) throws IOException {
|
||||
public ArticleDeleteTableButton(String pLabel, final JTable pTable, final ArticlePanel pPanel, final ArticleController pController) throws IOException {
|
||||
super(pLabel);
|
||||
ImageIcon icon = new ImageIcon(ImageIO.read(new File("assets/icons/edit-delete.png")));
|
||||
|
||||
@@ -29,12 +31,13 @@ public class ArticleDeleteTableButton extends TableButton {
|
||||
public void actionPerformed(ActionEvent e){
|
||||
fireEditingStopped();
|
||||
|
||||
ArticleTableModel model = (ArticleTableModel) pTable.getModel();
|
||||
ArticleModel model = (ArticleModel) pTable.getModel();
|
||||
|
||||
int row = pTable.getSelectedRow();
|
||||
int id = model.getArticleId(row);
|
||||
|
||||
model.deleteArticle(id);
|
||||
pController.deleteArticle(id);
|
||||
pPanel.resetModeEditArticle();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@ import javax.imageio.ImageIO;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JTable;
|
||||
|
||||
import de.katho.kBorrow.gui.PanelArticle;
|
||||
import de.katho.kBorrow.models.ArticleTableModel;
|
||||
import de.katho.kBorrow.gui.ArticlePanel;
|
||||
import de.katho.kBorrow.models.ArticleModel;
|
||||
|
||||
public class ArticleEditTableButton extends TableButton {
|
||||
|
||||
@@ -19,7 +19,7 @@ public class ArticleEditTableButton extends TableButton {
|
||||
*/
|
||||
private static final long serialVersionUID = -5902626427691636902L;
|
||||
|
||||
public ArticleEditTableButton(String pLabel, final JTable pTable, final PanelArticle articleTab) throws IOException {
|
||||
public ArticleEditTableButton(String pLabel, final JTable pTable, final ArticlePanel articleTab) throws IOException {
|
||||
super(pLabel);
|
||||
ImageIcon icon = new ImageIcon(ImageIO.read(new File("assets/icons/accessories-text-editor.png")));
|
||||
|
||||
@@ -30,7 +30,7 @@ public class ArticleEditTableButton extends TableButton {
|
||||
public void actionPerformed(ActionEvent e){
|
||||
fireEditingStopped();
|
||||
|
||||
ArticleTableModel model = (ArticleTableModel) pTable.getModel();
|
||||
ArticleModel model = (ArticleModel) pTable.getModel();
|
||||
int row = pTable.getSelectedRow();
|
||||
|
||||
articleTab.setModeEditArticle(model.getArticleId(row), model.getArticleName(row), model.getArticleDescription(row));
|
||||
|
||||
@@ -10,7 +10,7 @@ import javax.swing.ImageIcon;
|
||||
import javax.swing.JTable;
|
||||
|
||||
import de.katho.kBorrow.gui.PanelNewLending;
|
||||
import de.katho.kBorrow.models.FreeArticleTableModel;
|
||||
import de.katho.kBorrow.models.FreeArticleModel;
|
||||
|
||||
public class NewLendingTableButton extends TableButton {
|
||||
|
||||
@@ -30,7 +30,7 @@ public class NewLendingTableButton extends TableButton {
|
||||
public void actionPerformed(ActionEvent e){
|
||||
fireEditingStopped();
|
||||
|
||||
FreeArticleTableModel model = (FreeArticleTableModel) pTable.getModel();
|
||||
FreeArticleModel model = (FreeArticleModel) pTable.getModel();
|
||||
int row = pTable.getSelectedRow();
|
||||
|
||||
pPanel.setModeNewLending(model.getArticleId(row), model.getArticleName(row), model.getArticleDescription(row));
|
||||
|
||||
@@ -9,13 +9,15 @@ import javax.imageio.ImageIO;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JTable;
|
||||
|
||||
import de.katho.kBorrow.models.UserTableModel;
|
||||
import de.katho.kBorrow.controller.UserController;
|
||||
import de.katho.kBorrow.gui.UserPanel;
|
||||
import de.katho.kBorrow.models.UserModel;
|
||||
|
||||
public class UserDeleteTableButton extends TableButton {
|
||||
|
||||
private static final long serialVersionUID = -886584066497429394L;
|
||||
|
||||
public UserDeleteTableButton(String pLabel, final JTable pTable) throws IOException{
|
||||
public UserDeleteTableButton(String pLabel, final JTable pTable, final UserPanel pPanel, final UserController pController ) throws IOException{
|
||||
super(pLabel);
|
||||
ImageIcon icon = new ImageIcon(ImageIO.read(new File("assets/icons/edit-delete.png")));
|
||||
|
||||
@@ -26,12 +28,13 @@ public class UserDeleteTableButton extends TableButton {
|
||||
public void actionPerformed(ActionEvent e){
|
||||
fireEditingStopped();
|
||||
|
||||
UserTableModel model = (UserTableModel) pTable.getModel();
|
||||
UserModel model = (UserModel) pTable.getModel();
|
||||
|
||||
int row = pTable.getSelectedRow();
|
||||
int id = model.getUserId(row);
|
||||
|
||||
model.deleteUser(id);
|
||||
pController.deleteUser(id);
|
||||
pPanel.resetModeEditUser();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ import javax.imageio.ImageIO;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JTable;
|
||||
|
||||
import de.katho.kBorrow.gui.PanelUser;
|
||||
import de.katho.kBorrow.models.UserTableModel;
|
||||
import de.katho.kBorrow.gui.UserPanel;
|
||||
import de.katho.kBorrow.models.UserModel;
|
||||
|
||||
public class UserEditTableButton extends TableButton {
|
||||
|
||||
@@ -19,7 +19,7 @@ public class UserEditTableButton extends TableButton {
|
||||
*/
|
||||
private static final long serialVersionUID = -886584066497429394L;
|
||||
|
||||
public UserEditTableButton(String pLabel, final JTable pTable, final PanelUser pPanel) throws IOException{
|
||||
public UserEditTableButton(String pLabel, final JTable pTable, final UserPanel pPanel) throws IOException{
|
||||
super(pLabel);
|
||||
ImageIcon icon = new ImageIcon(ImageIO.read(new File("assets/icons/accessories-text-editor.png")));
|
||||
|
||||
@@ -30,7 +30,7 @@ public class UserEditTableButton extends TableButton {
|
||||
public void actionPerformed(ActionEvent e){
|
||||
fireEditingStopped();
|
||||
|
||||
UserTableModel model = (UserTableModel) pTable.getModel();
|
||||
UserModel model = (UserModel) pTable.getModel();
|
||||
int row = pTable.getSelectedRow();
|
||||
|
||||
pPanel.setModeEditUser(model.getUserId(row), model.getUserName(row), model.getUserSurname(row));
|
||||
|
||||
@@ -7,17 +7,18 @@ import javax.swing.table.AbstractTableModel;
|
||||
import de.katho.kBorrow.data.KArticle;
|
||||
import de.katho.kBorrow.db.DbConnector;
|
||||
|
||||
public class ArticleTableModel extends AbstractTableModel {
|
||||
public class ArticleModel extends AbstractTableModel {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -1860949772989116745L;
|
||||
private DbConnector dbCon;
|
||||
private String[] header = {"ID", "Artikelname", "Artikelbeschreibung", "", ""};
|
||||
private ArrayList<KArticle> data = new ArrayList<KArticle>();
|
||||
protected String[] header;
|
||||
protected DbConnector dbCon;
|
||||
protected ArrayList<KArticle> data = new ArrayList<KArticle>();
|
||||
|
||||
public ArticleTableModel(DbConnector pDbCon){
|
||||
public ArticleModel(DbConnector pDbCon){
|
||||
header = new String [] {"ID", "Artikelname", "Artikelbeschreibung", "", ""};
|
||||
this.dbCon = pDbCon;
|
||||
this.updateTable();
|
||||
}
|
||||
@@ -26,20 +27,19 @@ public class ArticleTableModel extends AbstractTableModel {
|
||||
return header[index];
|
||||
}
|
||||
|
||||
private void updateTable() {
|
||||
public void updateTable() {
|
||||
this.data = this.dbCon.getArticleList();
|
||||
this.fireTableDataChanged();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColumnCount() {
|
||||
return this.header.length;
|
||||
return header.length;
|
||||
}
|
||||
|
||||
|
||||
public int getRowCount() {
|
||||
return this.data.size();
|
||||
return data.size();
|
||||
}
|
||||
|
||||
|
||||
@@ -94,75 +94,51 @@ public class ArticleTableModel extends AbstractTableModel {
|
||||
return this.data.get(pRow).getDescription();
|
||||
}
|
||||
|
||||
/**
|
||||
* Löscht den Artikel mit der gegebenen ID in der Datenbank und aktualisiert die Tabelle.
|
||||
*
|
||||
* @param id ID des Artikels, der gelöscht werden soll.
|
||||
* @return true, wenn der Artikel erfolgreich gelöscht wurde. false, wenn ein Fehler aufgetreten ist.
|
||||
*/
|
||||
public boolean deleteArticle(int id) {
|
||||
if(this.dbCon.deleteArticle(id)){
|
||||
int row = this.getRowFromId(id);
|
||||
this.data.remove(row);
|
||||
this.fireTableRowsDeleted(row, row);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt die entsprechende Zeile in der Tabelle für ein Objekt mit der gegebenen ID zurück.
|
||||
*
|
||||
* @param id ID, für die die Tabellenzeile herausgesucht werden soll
|
||||
* @return Zeile in der Tabelle. -1, wenn die ID nicht vorhanden ist.
|
||||
*/
|
||||
private int getRowFromId(int id) {
|
||||
public int getRowFromId(int id) {
|
||||
for (KArticle elem : this.data){
|
||||
if(elem.getId() == id) return data.indexOf(elem);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Erzeugt einen neuen Artikel in der Datenbank und aktualisiert die Tabelle
|
||||
* Entfernt die gegebene Zeile aus der ArrayList
|
||||
*
|
||||
* @param pName Name des Artikels
|
||||
* @param pDesc Beschreibung des Artikels
|
||||
* @return 0: Artikel erfolgreich erzeugt
|
||||
* 1: SQL-Fehler beim Erzeugen
|
||||
* 2: Feld "Name" leer
|
||||
* @param pRow Zeile, die gelöscht wird.
|
||||
*/
|
||||
public int createArticle(String pName, String pDesc) {
|
||||
int status = this.dbCon.createArticle(pName, pDesc);
|
||||
|
||||
updateTable();
|
||||
|
||||
return status;
|
||||
public void removeRow(int pRow){
|
||||
data.remove(pRow);
|
||||
fireTableRowsDeleted(pRow, pRow);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ändert einen Artikel in der Datenbank und aktualisiert die Tabelle
|
||||
* Gibt das Article-Objekt der übergebenen Zeile zurück.
|
||||
*
|
||||
* @param pId Id des Artikels, der geändert werden soll
|
||||
* @param pName (Neuer) Name des Artikels
|
||||
* @param pDesc (Neue) Beschreibung des Artikels
|
||||
* @return 0: Artikel erfolgreich geändert
|
||||
* 1: SQL-Fehler beim Erzeugen
|
||||
* 2: Artikelname ist leer
|
||||
* @param pRow Zeile, deren Article-Objekt zurückgegeben werden soll.
|
||||
* @return KArticle-Objekt
|
||||
*/
|
||||
public int editArticle(int pId, String pName, String pDesc) {
|
||||
int status = this.dbCon.editArticle(pId, pName, pDesc);
|
||||
|
||||
if(status == 0){
|
||||
int row = this.getRowFromId(pId);
|
||||
|
||||
this.data.get(row).setName(pName);
|
||||
this.data.get(row).setDescription(pDesc);
|
||||
this.fireTableRowsUpdated(row, row);
|
||||
public KArticle getArticleByRow(int pRow){
|
||||
return this.data.get(pRow);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt das Article-Objekt mit der entsprechendne ID zurück.
|
||||
*
|
||||
* @param pId Id, deren Objekt zurückgegeben werden soll.
|
||||
* @return KArticle-Objekt
|
||||
*/
|
||||
public KArticle getArticleById(int pId){
|
||||
for(KArticle elem : data){
|
||||
if(elem.getId() == pId) return elem;
|
||||
}
|
||||
|
||||
return status;
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
package de.katho.kBorrow.models;
|
||||
|
||||
import javax.swing.table.AbstractTableModel;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import de.katho.kBorrow.db.DbConnector;
|
||||
import de.katho.kBorrow.data.KArticle;
|
||||
|
||||
public class FreeArticleTableModel extends AbstractTableModel {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -7318589937150373541L;
|
||||
private DbConnector dbCon;
|
||||
String[] header = {"ID", "Artikelname", "Artikelbeschreibung", ""};
|
||||
private ArrayList<KArticle> data = new ArrayList<KArticle>();
|
||||
|
||||
public FreeArticleTableModel(DbConnector pDbCon) {
|
||||
this.dbCon = pDbCon;
|
||||
this.updateTable();
|
||||
}
|
||||
|
||||
public String getColumnName(int pIndex){
|
||||
return header[pIndex];
|
||||
}
|
||||
|
||||
public int getColumnCount() {
|
||||
return header.length;
|
||||
}
|
||||
|
||||
public int getRowCount() {
|
||||
return data.size();
|
||||
}
|
||||
|
||||
public Object getValueAt(int pRow, int pCol) {
|
||||
switch(pCol){
|
||||
case 0:
|
||||
return String.valueOf(data.get(pRow).getId());
|
||||
|
||||
case 1:
|
||||
return data.get(pRow).getName();
|
||||
|
||||
case 2:
|
||||
return data.get(pRow).getDescription();
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isCellEditable(int row, int col){
|
||||
if (col > 2) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// TODO: Implement!
|
||||
private void updateTable(){
|
||||
|
||||
}
|
||||
|
||||
public int getArticleId(int pRow){
|
||||
return data.get(pRow).getId();
|
||||
}
|
||||
|
||||
public String getArticleName(int pRow){
|
||||
return data.get(pRow).getName();
|
||||
}
|
||||
|
||||
public String getArticleDescription(int pRow){
|
||||
return data.get(pRow).getDescription();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import javax.swing.table.AbstractTableModel;
|
||||
import de.katho.kBorrow.data.KUser;
|
||||
import de.katho.kBorrow.db.DbConnector;
|
||||
|
||||
public class UserTableModel extends AbstractTableModel {
|
||||
public class UserModel extends AbstractTableModel {
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -17,7 +17,7 @@ public class UserTableModel extends AbstractTableModel {
|
||||
private String[] header = {"ID", "Vorname", "Nachname", "", ""};
|
||||
private ArrayList<KUser> data = new ArrayList<KUser>();
|
||||
|
||||
public UserTableModel(DbConnector pDbCon){
|
||||
public UserModel(DbConnector pDbCon){
|
||||
this.dbCon = pDbCon;
|
||||
this.updateTable();
|
||||
}
|
||||
@@ -76,50 +76,33 @@ public class UserTableModel extends AbstractTableModel {
|
||||
return this.data.get(row).getSurname();
|
||||
}
|
||||
|
||||
public boolean deleteUser(int id){
|
||||
if(dbCon.deleteUser(id)){
|
||||
int row = this.getRowFromId(id);
|
||||
this.data.remove(row);
|
||||
this.fireTableRowsDeleted(row, row);
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public int createUser(String pName, String pSurname){
|
||||
int status = this.dbCon.createUser(pName, pSurname);
|
||||
|
||||
updateTable();
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
public int editUser(int pId, String pName, String pSurname) {
|
||||
int status = this.dbCon.editUser(pId, pName, pSurname);
|
||||
|
||||
if(status == 0){
|
||||
int row = this.getRowFromId(pId);
|
||||
|
||||
this.data.get(row).setName(pName);
|
||||
this.data.get(row).setSurname(pSurname);
|
||||
this.fireTableRowsUpdated(row, row);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param pId
|
||||
* @return Returns -1 if there is no row for the given id.
|
||||
*/
|
||||
private int getRowFromId(int pId){
|
||||
public int getRowFromId(int pId){
|
||||
for(KUser elem : this.data){
|
||||
if(elem.getId() == pId) return data.indexOf(elem);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public KUser getUserByRow(int pRow){
|
||||
return this.data.get(pRow);
|
||||
}
|
||||
|
||||
public KUser getUserById(int pId){
|
||||
for(KUser elem : this.data){
|
||||
if(elem.getId() == pId) return elem;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void removeRow(int pRow){
|
||||
data.remove(pRow);
|
||||
fireTableRowsDeleted(pRow, pRow);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user