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 * Creates a {@link UserTableFormSheet}. The look of the table is 019 * defined by the {@link TEDManagerEmployeeOverview}. 020 */ 021 public FSManagerEmployeeOverview() { 022 super("Angestellte", new UserManagerFilter(UMUserBase.getGlobalBase().getStaff()), 023 null, null, null, new TEDManagerEmployeeOverview()); 024 addContentCreator(new FormSheetContentCreator() { 025 public void createFormSheetContent(final FormSheet fs) { 026 fs.removeAllButtons(); 027 fs.addButton("Einstellen", ButtonIDs.BTN_ADD, null); 028 fs.addButton("Daten bearbeiten", ButtonIDs.BTN_EDIT, null); 029 fs.addButton("Entlassen", ButtonIDs.BTN_DELETE, null); 030 } 031 }); 032 } 033 } 034 035 /** 036 * The {@link util.swing.TableEntryDescriptor} used by {@link FSManagerEmployeeOverview}. 037 */ 038 class TEDManagerEmployeeOverview extends AbstractTableEntryDescriptor { 039 040 /** 041 * @return the number of the table's columns. 042 */ 043 public int getColumnCount() { 044 return 2; 045 } 046 047 /** 048 * @param nIndex the affected column. 049 * @return columns' names. 050 */ 051 public String getColumnName(int nIndex) { 052 return (new String[]{"Name", "Abteilung"}) [nIndex]; 053 } 054 055 /** 056 * @param nIndex the affected column. 057 * @return columns' classes. They indicate how column's values should be aligned. 058 */ 059 public Class getColumnClass (int nIndex) { 060 return String.class; 061 } 062 063 /** 064 * @param oRecord the affected table record. 065 * @param nIndex the affected column. 066 * @return columns' values 067 */ 068 public Object getValueAt(Object oRecord, int nIndex) { 069 UStaffer usr = (UStaffer)oRecord; 070 switch (nIndex) { 071 case 0: return usr.getSurname() + ", " + usr.getFirstName(); 072 case 1: return usr.getQualification(); 073 } 074 return null; 075 } 076 077 /** 078 * Determines if columns can be sorted by the user. 079 * 080 * @param nIndex the affected column. 081 * @return <ul><li>true: columns can be sorted</li> 082 * <li>false: columns cannot be sorted</li></ul> 083 */ 084 public boolean canSortByColumn(int nIndex) { 085 return true; 086 } 087 }