001 package market.stdform; 002 003 import java.util.Hashtable; 004 005 import market.CIArticle; 006 import market.Conversions; 007 import sale.FormSheet; 008 import sale.FormSheetContentCreator; 009 import util.swing.AbstractTableEntryDescriptor; 010 import data.CountingStock; 011 import data.stdforms.SingleTableFormSheet; 012 import data.swing.CountingStockTableModel; 013 014 /** 015 * This FormSheet displays the order of a customer in a table 016 * with one further column to tick off the articles, it is used by workers to execute the order. 017 */ 018 public class FSWorkerOrder{ 019 020 /** 021 * @param customer the customer who`s order gets executed. 022 * @param order the order that gets executed. 023 * @param done Hashtable with boolean values used for the tick-off column. 024 */ 025 public static SingleTableFormSheet getOrderTable(String customer, CountingStock order, final Hashtable<CIArticle, Object> done){ 026 027 AbstractTableEntryDescriptor ted = new AbstractTableEntryDescriptor(){ 028 private static final long serialVersionUID = -6796571499809624870L; 029 030 public int getColumnCount() { 031 return 3; 032 } 033 034 public String getColumnName(int nIdx) { 035 return (new String[]{ "Artikel", "Anzahl", "Erledigt"}) [nIdx]; 036 } 037 038 public Class<?> getColumnClass(int nIdx) { 039 return (new Class[] {String.class, Number.class, Boolean.class}) [nIdx]; 040 } 041 042 public Object getValueAt(Object oRecord, int nIdx) { 043 CIArticle article = Conversions.recordToCIArticle(oRecord); 044 int count = ((CountingStockTableModel.Record)oRecord).getCount(); 045 switch (nIdx) { 046 case 0: return article.getArticleName(); 047 case 1: return new Integer(count).toString(); 048 case 2: return done.get(article); 049 } 050 return null; 051 } 052 053 public boolean canSortByColumn(int nIndex) { 054 return false; 055 } 056 057 public boolean isElementEditable(Object oRecord, int nIdx) { 058 return nIdx == 2; 059 } 060 061 public void setValueAt(Object oRecord, int nIndex, Object oValue) { 062 if (nIndex == 2) { 063 done.put(Conversions.recordToCIArticle(oRecord), oValue); 064 } 065 } 066 }; 067 068 final SingleTableFormSheet stfs = SingleTableFormSheet.create( 069 "Kundenauftrag von "+ customer, 070 order, 071 null, 072 ted); 073 074 stfs.addContentCreator(new FormSheetContentCreator() { 075 private static final long serialVersionUID = 1128483388797998676L; 076 protected void createFormSheetContent(final FormSheet fs) { 077 fs.removeAllButtons(); 078 fs.addButton("Auftrag abschliessen", ButtonIDs.BTN_ACCEPT, null); 079 fs.addButton("Fehlbestand", ButtonIDs.BTN_EDIT, null); 080 fs.addButton("Zurück", ButtonIDs.BTN_BACK, null); 081 } 082 }); 083 return stfs; 084 } 085 }