diff options
Diffstat (limited to 'Master/Daten- und Systemintegration/camelprototypewsclient/src/main/OrderPosTableModel.java')
| -rw-r--r-- | Master/Daten- und Systemintegration/camelprototypewsclient/src/main/OrderPosTableModel.java | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/Master/Daten- und Systemintegration/camelprototypewsclient/src/main/OrderPosTableModel.java b/Master/Daten- und Systemintegration/camelprototypewsclient/src/main/OrderPosTableModel.java new file mode 100644 index 0000000..ca084c0 --- /dev/null +++ b/Master/Daten- und Systemintegration/camelprototypewsclient/src/main/OrderPosTableModel.java @@ -0,0 +1,110 @@ +package main;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.table.AbstractTableModel;
+
+import de.h_da.fbi.dsi.ws0910.camelprototype.OrderPosition;
+
+public class OrderPosTableModel extends AbstractTableModel {
+ private static final long serialVersionUID = 1L;
+
+ private List<OrderPosition> posList;
+
+ public OrderPosTableModel() {
+ super();
+ posList = new ArrayList<OrderPosition>();
+ addPosition();
+ }
+
+ @Override
+ public int getColumnCount() {
+ return 3;
+ }
+
+ @Override
+ public int getRowCount() {
+ return posList.size();
+ }
+
+ @Override
+ public Object getValueAt(int rowIndex, int columnIndex) {
+ OrderPosition actOrderPosition = posList.get(rowIndex);
+ Object res = null;
+ switch(columnIndex) {
+ case 0: res = actOrderPosition.getArticleNo(); break;
+ case 1: res = actOrderPosition.getArticle(); break;
+ case 2: res = actOrderPosition.getAmount(); break;
+ default: res = null;
+ }
+ return res;
+ }
+
+ @Override
+ public String getColumnName(int column) {
+ switch(column) {
+ case 0: return "Article No.";
+ case 1: return "Article";
+ case 2: return "Amount";
+ default: return "";
+ }
+ }
+
+ @Override
+ public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
+ OrderPosition actOrderPosition = posList.get(rowIndex);
+ String val = (String) aValue;
+ switch(columnIndex) {
+ case 0: actOrderPosition.setArticleNo(val); break;
+ case 1: actOrderPosition.setArticle(val); break;
+ case 2: {
+ int intVal = Integer.parseInt(val);
+ actOrderPosition.setAmount(intVal);
+ break;
+ }
+ }
+ if(validate(actOrderPosition) && (rowIndex == posList.size()-1 )) {
+ addPosition();
+ }
+ fireTableDataChanged();
+ }
+
+ @Override
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return true;
+ }
+ public void addPosition() {
+ posList.add(new OrderPosition("", 0, ""));
+ fireTableDataChanged();
+ }
+ public void clear() {
+ posList.clear();
+ fireTableDataChanged();
+ }
+ public OrderPosition[] getOrderPositions() {
+ List<OrderPosition> res = new ArrayList<OrderPosition>();
+ for(OrderPosition pos : posList) {
+ if(validate(pos)) {
+ res.add(pos);
+ }
+ }
+ return res.toArray(new OrderPosition[res.size()]);
+ }
+ private boolean validate(OrderPosition pos) {
+ if(!pos.getArticleNo().isEmpty()
+ && !pos.getArticle().isEmpty()
+ && (pos.getAmount() > 0) ) {
+ return true;
+ }
+ return false;
+ }
+ public boolean isValid() {
+ for(OrderPosition pos: posList) {
+ if(!validate(pos)) {
+ return false;
+ }
+ }
+ return true;
+ }
+}
|
