001 package market.stdform; 002 003 import market.SICustomer; 004 import market.UCustomer; 005 import sale.FormSheet; 006 import sale.FormSheetContentCreator; 007 import users.UserManager; 008 import util.swing.AbstractTableEntryDescriptor; 009 import util.swing.TableEntryDescriptor; 010 import data.StoringStock; 011 import data.stdforms.SingleTableFormSheet; 012 013 014 /** 015 * This FormSheet displays the customers who are waiting at the till in a table, 016 * with the customer who waits the longest time at the top. 017 */ 018 public class FSSellerCustomerTable { 019 020 /** 021 * @return the customer table. 022 * 023 * @param ss the StoringStock containing the waiting customers in form of {@link SICustomer}. 024 */ 025 public static SingleTableFormSheet getCustomerTable(StoringStock ss){ 026 027 SingleTableFormSheet stfs = SingleTableFormSheet.create( 028 "Kunden-Warteschlange", 029 ss, 030 null, 031 getTED()); 032 033 stfs.addContentCreator(new FormSheetContentCreator() { 034 protected void createFormSheetContent(final FormSheet fs) { 035 fs.removeAllButtons(); 036 fs.addButton("Kunden bedienen", ButtonIDs.BTN_OK, null); 037 fs.addButton("Auftrag stornieren", ButtonIDs.BTN_CANCEL, null); 038 }} 039 ); 040 return stfs; 041 } 042 043 /** 044 * @return the TableEntryDescriptor of the table, declaring two columns: the userID and full name of the customer. 045 */ 046 private static TableEntryDescriptor getTED(){ 047 AbstractTableEntryDescriptor ted = new AbstractTableEntryDescriptor(){ 048 public int getColumnCount() { 049 return 2; 050 } 051 052 public String getColumnName(int nIdx) { 053 return (new String[]{ "KundenID", "Name"}) [nIdx]; 054 } 055 056 public Class getColumnClass(int nIdx) { 057 return (new Class[] {String.class, String.class}) [nIdx]; 058 } 059 060 public Object getValueAt(Object oRecord, int nIdx) { 061 UCustomer customer = (UCustomer)UserManager.getGlobalUM().getUser(((SICustomer)oRecord).getName()); 062 switch(nIdx){ 063 case 0: return customer.getName(); 064 case 1: return customer.getFullName(); 065 } 066 return null; 067 } 068 }; 069 return ted; 070 } 071 }