Habe angefangen, die Artikeltabelle und die zugehörigen Klassen, die
TableModel, Buttons und Artikelklasse zu implementieren. Die Buttons werden nun von einer Elternklasse geerbt, um doppelten Code zu vermeiden.
This commit is contained in:
34
src/de/katho/kBorrow/data/KArticle.java
Normal file
34
src/de/katho/kBorrow/data/KArticle.java
Normal file
@@ -0,0 +1,34 @@
|
||||
package de.katho.kBorrow.data;
|
||||
|
||||
public class KArticle {
|
||||
private int id;
|
||||
private String name;
|
||||
private String description;
|
||||
|
||||
public KArticle(int pId, String pName, String pDesc) {
|
||||
this.id = pId;
|
||||
this.name = pName;
|
||||
this.description = pDesc;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return this.description;
|
||||
}
|
||||
|
||||
public void setName(String pName){
|
||||
this.name = pName;
|
||||
}
|
||||
|
||||
public void setDescription(String pDesc){
|
||||
this.description = pDesc;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package de.katho.kBorrow.db;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import de.katho.kBorrow.data.KArticle;
|
||||
import de.katho.kBorrow.data.KUser;
|
||||
|
||||
public interface DbConnector {
|
||||
@@ -10,5 +11,6 @@ public interface DbConnector {
|
||||
public ArrayList<KUser> getUserList();
|
||||
public boolean deleteUser(int id);
|
||||
public int editUser(int pId, String pName, String pSurname);
|
||||
public ArrayList<KArticle> getArticleList();
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package de.katho.kBorrow.db;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import de.katho.kBorrow.data.KArticle;
|
||||
import de.katho.kBorrow.data.KUser;
|
||||
|
||||
public class SqlConnector implements DbConnector{
|
||||
@@ -34,5 +35,11 @@ public class SqlConnector implements DbConnector{
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<KArticle> getArticleList() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import java.util.ArrayList;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import de.katho.kBorrow.data.KArticle;
|
||||
import de.katho.kBorrow.data.KUser;
|
||||
|
||||
/**
|
||||
@@ -239,6 +240,27 @@ public class SqliteConnector implements DbConnector {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<KArticle> getArticleList() {
|
||||
ArrayList<KArticle> artArr = new ArrayList<KArticle>();
|
||||
|
||||
try {
|
||||
Statement st = this.connection.createStatement();
|
||||
String query = "SELECT id, name, description FROM article";
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int editUser(int pId, String pName, String pSurname) {
|
||||
if(pName.isEmpty() && pSurname.isEmpty()) return 2;
|
||||
|
||||
85
src/de/katho/kBorrow/gui/ArticleTableModel.java
Normal file
85
src/de/katho/kBorrow/gui/ArticleTableModel.java
Normal file
@@ -0,0 +1,85 @@
|
||||
package de.katho.kBorrow.gui;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.swing.table.AbstractTableModel;
|
||||
|
||||
import de.katho.kBorrow.data.KArticle;
|
||||
import de.katho.kBorrow.db.DbConnector;
|
||||
|
||||
public class ArticleTableModel extends AbstractTableModel {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -1860949772989116745L;
|
||||
private DbConnector dbCon;
|
||||
private String[] header = {"ID", "Artikelname", "Artikelbeschreibung", "", ""};
|
||||
private ArrayList<KArticle> data = new ArrayList<KArticle>();
|
||||
|
||||
public ArticleTableModel(DbConnector pDbCon){
|
||||
this.dbCon = pDbCon;
|
||||
this.updateTable();
|
||||
}
|
||||
|
||||
public String getColumnName(int index){
|
||||
return header[index];
|
||||
}
|
||||
|
||||
private void updateTable() {
|
||||
this.data = this.dbCon.getArticleList();
|
||||
this.fireTableDataChanged();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColumnCount() {
|
||||
return this.header.length;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRowCount() {
|
||||
return this.data.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getValueAt(int pRow, int pCol) {
|
||||
switch(pCol){
|
||||
case 0:
|
||||
return String.valueOf(this.data.get(pRow).getId());
|
||||
|
||||
case 1:
|
||||
return this.data.get(pRow).getName();
|
||||
|
||||
case 2:
|
||||
return this.data.get(pRow).getDescription();
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isCellEditable(int pRow, int pCol){
|
||||
if (pCol > 2) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getArticleId(int row) {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getArticleName(int pRow){
|
||||
return "";
|
||||
}
|
||||
|
||||
public String getArticleDescription(int pRow){
|
||||
return null;
|
||||
}
|
||||
|
||||
public void deleteArticle(int id) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -11,7 +11,6 @@ import java.awt.BorderLayout;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.border.Border;
|
||||
import javax.swing.border.TitledBorder;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JButton;
|
||||
@@ -20,6 +19,10 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import de.katho.kBorrow.db.DbConnector;
|
||||
import de.katho.kBorrow.listener.ArticleDeleteTableButton;
|
||||
import de.katho.kBorrow.listener.ArticleEditTableButton;
|
||||
import de.katho.kBorrow.listener.UserDeleteTableButton;
|
||||
import de.katho.kBorrow.listener.UserEditTableButton;
|
||||
|
||||
import javax.swing.JTable;
|
||||
|
||||
@@ -33,6 +36,7 @@ public class MainWindow implements ActionListener {
|
||||
|
||||
private DbConnector dbCon;
|
||||
private boolean userModeEdit = false;
|
||||
private boolean articleModeEdit = false;
|
||||
private int editId;
|
||||
|
||||
private JFrame frame;
|
||||
@@ -46,6 +50,7 @@ public class MainWindow implements ActionListener {
|
||||
private JLabel lblUserStatus;
|
||||
private JTable userTable;
|
||||
private UserTableModel userTableModel;
|
||||
private ArticleTableModel articleTableModel;
|
||||
private JScrollPane scrollUserList;
|
||||
private JPanel panelUserList;
|
||||
private JButton btnUserCancel;
|
||||
@@ -54,6 +59,10 @@ public class MainWindow implements ActionListener {
|
||||
private JScrollPane scrollArticleList;
|
||||
private JTable articleTable;
|
||||
private JTextField textFieldArticleName;
|
||||
private JButton btnArticleSave;
|
||||
private JButton btnArticleCancel;
|
||||
private JTextArea textAreaArticleDescription;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@@ -92,9 +101,18 @@ public class MainWindow implements ActionListener {
|
||||
|
||||
private void initArticleTab() {
|
||||
JPanel panelArticle = new JPanel();
|
||||
articleTable = new JTable();
|
||||
articleTableModel = new ArticleTableModel(this.dbCon);
|
||||
articleTable = new JTable(articleTableModel);
|
||||
panelArticleList = new JPanel();
|
||||
|
||||
ArticleDeleteTableButton articleDeleteTableButton = new ArticleDeleteTableButton("L<EFBFBD>schen", this.articleTable);
|
||||
articleTable.getColumnModel().getColumn(4).setCellEditor(articleDeleteTableButton);
|
||||
articleTable.getColumnModel().getColumn(4).setCellRenderer(articleDeleteTableButton);
|
||||
|
||||
ArticleEditTableButton articleEditTableButton = new ArticleEditTableButton("Bearbeiten", this.articleTable, this);
|
||||
articleTable.getColumnModel().getColumn(3).setCellEditor(articleEditTableButton);
|
||||
articleTable.getColumnModel().getColumn(3).setCellRenderer(articleEditTableButton);
|
||||
|
||||
this.tabbedPane.addTab("Artikel verwalten", null, panelArticle, null);
|
||||
panelArticle.setLayout(null);
|
||||
|
||||
@@ -126,12 +144,24 @@ public class MainWindow implements ActionListener {
|
||||
panelArticleEdit.add(textFieldArticleName);
|
||||
textFieldArticleName.setColumns(10);
|
||||
|
||||
JTextArea textAreaArticleDescription = new JTextArea(5, 30);
|
||||
textAreaArticleDescription.setFont(new Font("Tahoma", Font.PLAIN, 11));
|
||||
textAreaArticleDescription.setLineWrap(true);
|
||||
textAreaArticleDescription.setBounds(90, 59, 250, 100);
|
||||
textAreaArticleDescription.setBorder(BorderFactory.createEtchedBorder());
|
||||
panelArticleEdit.add(textAreaArticleDescription);
|
||||
this.textAreaArticleDescription = new JTextArea(5, 30);
|
||||
this.textAreaArticleDescription.setFont(new Font("Tahoma", Font.PLAIN, 11));
|
||||
this.textAreaArticleDescription.setLineWrap(true);
|
||||
this.textAreaArticleDescription.setBounds(90, 59, 250, 100);
|
||||
this.textAreaArticleDescription.setBorder(BorderFactory.createEtchedBorder());
|
||||
panelArticleEdit.add(this.textAreaArticleDescription);
|
||||
|
||||
this.btnArticleSave = new JButton("Speichern");
|
||||
this.btnArticleSave.addActionListener(this);
|
||||
this.btnArticleSave.setBounds(490, 136, 89, 23);
|
||||
panelArticleEdit.add(this.btnArticleSave);
|
||||
|
||||
this.btnArticleCancel = new JButton("Abbrechen");
|
||||
this.btnArticleCancel.addActionListener(this);
|
||||
this.btnArticleCancel.setBounds(490, 102, 89, 23);
|
||||
panelArticleEdit.add(this.btnArticleCancel);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -262,5 +292,17 @@ public class MainWindow implements ActionListener {
|
||||
this.textFieldUserName.setText("");
|
||||
this.textFieldUserSurname.setText("");
|
||||
}
|
||||
|
||||
if(e.getSource() == this.btnArticleCancel){
|
||||
this.articleModeEdit = false;
|
||||
this.textFieldArticleName.setText("");
|
||||
this.textAreaArticleDescription.setText("");
|
||||
}
|
||||
}
|
||||
|
||||
public void setModeEditArticle(int articleId, String articleName,
|
||||
String articleDescription) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
package de.katho.kBorrow.gui;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.AbstractCellEditor;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.table.TableCellEditor;
|
||||
import javax.swing.table.TableCellRenderer;
|
||||
|
||||
public class UserEditTableButton extends AbstractCellEditor implements TableCellRenderer, TableCellEditor {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -886584066497429394L;
|
||||
|
||||
private JButton buttonR;
|
||||
private JButton buttonE;
|
||||
private String label;
|
||||
private MainWindow mainwindow;
|
||||
private UserTableModel model;
|
||||
private JTable table;
|
||||
|
||||
public UserEditTableButton(String pLabel, JTable pTable, MainWindow pMainWindow){
|
||||
this.label = pLabel;
|
||||
this.table = pTable;
|
||||
this.model = (UserTableModel)pTable.getModel();
|
||||
this.mainwindow = pMainWindow;
|
||||
this.buttonR = new JButton(pLabel);
|
||||
this.buttonE = new JButton(pLabel);
|
||||
|
||||
this.buttonE.addActionListener(new ActionListener(){
|
||||
public void actionPerformed(ActionEvent e){
|
||||
fireEditingStopped();
|
||||
|
||||
int row = table.getSelectedRow();
|
||||
|
||||
mainwindow.setModeEditUser(model.getUserId(row), model.getUserName(row), model.getUserSurname(row));
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public Object getCellEditorValue() {
|
||||
return this.label;
|
||||
}
|
||||
|
||||
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
|
||||
return this.buttonE;
|
||||
}
|
||||
|
||||
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
|
||||
return this.buttonR;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package de.katho.kBorrow.gui;
|
||||
package de.katho.kBorrow.listener;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.event.ActionEvent;
|
||||
@@ -10,48 +10,51 @@ import javax.swing.JTable;
|
||||
import javax.swing.table.TableCellEditor;
|
||||
import javax.swing.table.TableCellRenderer;
|
||||
|
||||
public class UserDeleteTableButton extends AbstractCellEditor implements TableCellRenderer, TableCellEditor {
|
||||
import de.katho.kBorrow.gui.ArticleTableModel;
|
||||
|
||||
public class ArticleDeleteTableButton extends AbstractCellEditor implements TableCellRenderer, TableCellEditor {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -886584066497429394L;
|
||||
|
||||
private static final long serialVersionUID = 7701712368979056068L;
|
||||
private JButton buttonR;
|
||||
private JButton buttonE;
|
||||
private String label;
|
||||
private JTable table;
|
||||
private UserTableModel model;
|
||||
|
||||
public UserDeleteTableButton(String pLabel, JTable pTable){
|
||||
private ArticleTableModel model;
|
||||
|
||||
public ArticleDeleteTableButton(String pLabel, JTable pTable) {
|
||||
this.label = pLabel;
|
||||
this.table = pTable;
|
||||
this.model = (UserTableModel) pTable.getModel();
|
||||
this.model = (ArticleTableModel) pTable.getModel();
|
||||
this.buttonR = new JButton(pLabel);
|
||||
this.buttonE = new JButton(pLabel);
|
||||
|
||||
|
||||
this.buttonE.addActionListener(new ActionListener(){
|
||||
public void actionPerformed(ActionEvent e){
|
||||
fireEditingStopped();
|
||||
|
||||
int row = table.getSelectedRow();
|
||||
int id = model.getUserId(row);
|
||||
|
||||
model.deleteUser(id);
|
||||
int id = model.getArticleId(row);
|
||||
|
||||
model.deleteArticle(id);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Object getCellEditorValue() {
|
||||
return this.label;
|
||||
}
|
||||
|
||||
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
|
||||
@Override
|
||||
public Component getTableCellEditorComponent(JTable arg0, Object arg1, boolean arg2, int arg3, int arg4) {
|
||||
return this.buttonE;
|
||||
}
|
||||
|
||||
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
|
||||
@Override
|
||||
public Component getTableCellRendererComponent(JTable arg0, Object arg1, boolean arg2, boolean arg3, int arg4, int arg5) {
|
||||
return this.buttonR;
|
||||
}
|
||||
|
||||
35
src/de/katho/kBorrow/listener/ArticleEditTableButton.java
Normal file
35
src/de/katho/kBorrow/listener/ArticleEditTableButton.java
Normal file
@@ -0,0 +1,35 @@
|
||||
package de.katho.kBorrow.listener;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JTable;
|
||||
|
||||
import de.katho.kBorrow.gui.ArticleTableModel;
|
||||
import de.katho.kBorrow.gui.MainWindow;
|
||||
|
||||
public class ArticleEditTableButton extends TableButton {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -5902626427691636902L;
|
||||
private MainWindow mainwindow;
|
||||
|
||||
public ArticleEditTableButton(String pLabel, JTable pTable, MainWindow pMainwindow) {
|
||||
super(pLabel, pTable);
|
||||
|
||||
this.mainwindow = pMainwindow;
|
||||
|
||||
this.buttonE.addActionListener(new ActionListener(){
|
||||
public void actionPerformed(ActionEvent e){
|
||||
fireEditingStopped();
|
||||
|
||||
ArticleTableModel model = (ArticleTableModel) table.getModel();
|
||||
int row = table.getSelectedRow();
|
||||
|
||||
mainwindow.setModeEditArticle(model.getArticleId(row), model.getArticleName(row), model.getArticleDescription(row));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
36
src/de/katho/kBorrow/listener/TableButton.java
Normal file
36
src/de/katho/kBorrow/listener/TableButton.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package de.katho.kBorrow.listener;
|
||||
|
||||
import java.awt.Component;
|
||||
|
||||
import javax.swing.AbstractCellEditor;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.table.TableCellEditor;
|
||||
import javax.swing.table.TableCellRenderer;
|
||||
|
||||
public abstract class TableButton extends AbstractCellEditor implements TableCellRenderer, TableCellEditor {
|
||||
private static final long serialVersionUID = -5902626427691636902L;
|
||||
private String label;
|
||||
protected JTable table;
|
||||
protected JButton buttonR;
|
||||
protected JButton buttonE;
|
||||
|
||||
public TableButton (String pLabel, JTable pTable) {
|
||||
this.label = pLabel;
|
||||
this.table = pTable;
|
||||
this.buttonR = new JButton(pLabel);
|
||||
this.buttonE = new JButton(pLabel);
|
||||
}
|
||||
|
||||
public Object getCellEditorValue() {
|
||||
return this.label;
|
||||
}
|
||||
|
||||
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
|
||||
return this.buttonE;
|
||||
}
|
||||
|
||||
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
|
||||
return this.buttonR;
|
||||
}
|
||||
}
|
||||
31
src/de/katho/kBorrow/listener/UserDeleteTableButton.java
Normal file
31
src/de/katho/kBorrow/listener/UserDeleteTableButton.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package de.katho.kBorrow.listener;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JTable;
|
||||
|
||||
import de.katho.kBorrow.gui.UserTableModel;
|
||||
|
||||
public class UserDeleteTableButton extends TableButton {
|
||||
|
||||
private static final long serialVersionUID = -886584066497429394L;
|
||||
|
||||
public UserDeleteTableButton(String pLabel, JTable pTable){
|
||||
super(pLabel, pTable);
|
||||
|
||||
this.buttonE.addActionListener(new ActionListener(){
|
||||
public void actionPerformed(ActionEvent e){
|
||||
fireEditingStopped();
|
||||
|
||||
UserTableModel model = (UserTableModel) table.getModel();
|
||||
|
||||
int row = table.getSelectedRow();
|
||||
int id = model.getUserId(row);
|
||||
|
||||
model.deleteUser(id);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
37
src/de/katho/kBorrow/listener/UserEditTableButton.java
Normal file
37
src/de/katho/kBorrow/listener/UserEditTableButton.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package de.katho.kBorrow.listener;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JTable;
|
||||
|
||||
import de.katho.kBorrow.gui.MainWindow;
|
||||
import de.katho.kBorrow.gui.UserTableModel;
|
||||
|
||||
public class UserEditTableButton extends TableButton {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -886584066497429394L;
|
||||
|
||||
private MainWindow mainwindow;
|
||||
|
||||
public UserEditTableButton(String pLabel, JTable pTable, MainWindow pMainWindow){
|
||||
super(pLabel, pTable);
|
||||
|
||||
this.mainwindow = pMainWindow;
|
||||
|
||||
this.buttonE.addActionListener(new ActionListener(){
|
||||
public void actionPerformed(ActionEvent e){
|
||||
fireEditingStopped();
|
||||
|
||||
UserTableModel model = (UserTableModel) table.getModel();
|
||||
int row = table.getSelectedRow();
|
||||
|
||||
mainwindow.setModeEditUser(model.getUserId(row), model.getUserName(row), model.getUserSurname(row));
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user