001 package market.stdform;
002
003 import market.UCustomer;
004 import market.UMUserBase;
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 all customers of the market in a table. Customers can be selected for a
013 * detailed view or for deletion.
014 */
015 public class FSManagerCustomerOverview extends UserTableFormSheet {
016
017 /**
018 * Creates a {@link UserTableFormSheet}. The look of the table is
019 * defined by the {@link TEDManagerCustomerOverview}.
020 */
021 public FSManagerCustomerOverview() {
022 super("Kunden", new UserManagerFilter(UMUserBase.getGlobalBase().getCustomers()),
023 null, null, null, new TEDManagerCustomerOverview());
024 addContentCreator(new FormSheetContentCreator() {
025 public void createFormSheetContent(final FormSheet fs) {
026 fs.removeAllButtons();
027 fs.addButton("Daten bearbeiten", ButtonIDs.BTN_EDIT, null);
028 fs.addButton("Geschäftsbeziehung beenden", ButtonIDs.BTN_DELETE, null);
029 }
030 });
031 }
032 }
033
034 /**
035 * The {@link util.swing.TableEntryDescriptor} used by {@link FSManagerCustomerOverview}.
036 */
037 class TEDManagerCustomerOverview extends AbstractTableEntryDescriptor {
038
039 /**
040 * @return the number of the table's columns.
041 */
042 public int getColumnCount() {
043 return 2;
044 }
045
046 /**
047 * @param nIndex the affected column.
048 * @return columns' names.
049 */
050 public String getColumnName(int nIndex) {
051 return (new String[]{"Name", "Firma"}) [nIndex];
052 }
053
054 /**
055 * @param nIndex the affected column.
056 * @return columns' classes. They indicate how column's values should be aligned.
057 */
058 public Class getColumnClass (int nIndex) {
059 return String.class;
060 }
061
062 /**
063 * @param oRecord the affected table record.
064 * @param nIndex the affected column.
065 * @return columns' values
066 */
067 public Object getValueAt(Object oRecord, int nIndex) {
068 UCustomer usr = (UCustomer)oRecord;
069 switch (nIndex) {
070 case 0:
071 return usr.getSurname() + ", " + usr.getFirstName();
072 case 1:
073 return usr.getCompany();
074 }
075 return null;
076 }
077
078
079 /**
080 * Determines if columns can be sorted by the user.
081 *
082 * @param nIndex the affected column.
083 * @return <ul><li>true: columns can be sorted</li>
084 * <li>false: columns cannot be sorted</li></ul>
085 */
086 public boolean canSortByColumn(int nIndex) {
087 return true;
088 }
089
090 }