001 package market.stdform; 002 003 import market.UMUserBase; 004 import market.UStaffer; 005 import sale.FormSheet; 006 import sale.FormSheetContentCreator; 007 import users.UserManagerFilter; 008 import users.stdforms.UserTableFormSheet; 009 import util.swing.AbstractTableEntryDescriptor; 010 011 /** 012 * This FormSheet displays the whole staff of the market in a table. New workers can be employed and 013 * current workers can have their data edited by the manager or even be fired. 014 */ 015 public class FSManagerEmployeeOverview extends UserTableFormSheet { 016 017 /** 018 * ID for serialization. 019 */ 020 private static final long serialVersionUID = 3267449147384918254L; 021 022 /** 023 * Creates a {@link UserTableFormSheet}. The look of the table is 024 * defined by the {@link TEDManagerEmployeeOverview}. 025 */ 026 public FSManagerEmployeeOverview() { 027 super("Angestellte", new UserManagerFilter(UMUserBase.getGlobalBase().getStaff()), 028 null, null, null, new TEDManagerEmployeeOverview()); 029 addContentCreator(new FormSheetContentCreator() { 030 private static final long serialVersionUID = -5651635858420607923L; 031 public void createFormSheetContent(final FormSheet fs) { 032 fs.removeAllButtons(); 033 fs.addButton("Einstellen", ButtonIDs.BTN_ADD, null); 034 fs.addButton("Daten bearbeiten", ButtonIDs.BTN_EDIT, null); 035 fs.addButton("Entlassen", ButtonIDs.BTN_DELETE, null); 036 } 037 }); 038 } 039 } 040 041 /** 042 * The {@link util.swing.TableEntryDescriptor} used by {@link FSManagerEmployeeOverview}. 043 */ 044 class TEDManagerEmployeeOverview extends AbstractTableEntryDescriptor { 045 046 /** 047 * ID for serialization. 048 */ 049 private static final long serialVersionUID = -5637971544602732337L; 050 051 /** 052 * @return the number of the table's columns. 053 */ 054 public int getColumnCount() { 055 return 2; 056 } 057 058 /** 059 * @param nIndex the affected column. 060 * @return columns' names. 061 */ 062 public String getColumnName(int nIndex) { 063 return (new String[]{"Name", "Abteilung"}) [nIndex]; 064 } 065 066 /** 067 * @param nIndex the affected column. 068 * @return columns' classes. They indicate how column's values should be aligned. 069 */ 070 public Class<?> getColumnClass (int nIndex) { 071 return String.class; 072 } 073 074 /** 075 * @param oRecord the affected table record. 076 * @param nIndex the affected column. 077 * @return columns' values 078 */ 079 public Object getValueAt(Object oRecord, int nIndex) { 080 UStaffer usr = (UStaffer)oRecord; 081 switch (nIndex) { 082 case 0: return usr.getSurname() + ", " + usr.getFirstName(); 083 case 1: return usr.getQualification(); 084 } 085 return null; 086 } 087 088 /** 089 * Determines if columns can be sorted by the user. 090 * 091 * @param nIndex the affected column. 092 * @return <ul><li>true: columns can be sorted</li> 093 * <li>false: columns cannot be sorted</li></ul> 094 */ 095 public boolean canSortByColumn(int nIndex) { 096 return true; 097 } 098 }