001 package videoautomat.gui;
002 import java.util.Comparator;
003
004 import sale.FormSheet;
005 import sale.FormSheetContentCreator;
006 import sale.UIGate;
007 import sale.stdforms.MsgForm;
008 import users.UserManager;
009 import users.stdforms.LogOnForm;
010 import users.swing.UserFilter;
011 import util.swing.TableEntryDescriptor;
012 import data.CountingStock;
013 import data.stdforms.SingleTableFormSheet;
014
015 /**
016 * This class implements graphical-user-interface elements for the SaleProcessLogOn
017 */
018 public class LogOn {
019 /**
020 * An ID to identify the <code>FormButton</code> rent
021 */
022 public static int FB_RENT = 1;
023
024 /**
025 * An ID to identify the <code>FormButton</code> hand back
026 */
027 public static int FB_HANDBACK = 2;
028
029 /**
030 * An ID to identify the <code>FormButton</code> admin
031 */
032 public static int FB_ADMIN = 3;
033
034 /**
035 * An ID to identify the <code>FormButton</code> logout
036 */
037 public static int FB_LOGOUT = 4;
038 /**
039 * @return a <code>LogOnForm</code>
040 * @param ask_password
041 * if false no password is needed and selection of the user name is sufficient.
042 * @param um
043 * the UserManager that manages the users to select from.
044 * @param cmp
045 * a comparator that defines the order in which the user names appear. If null, users will be ordered by
046 * their names.
047 * @param uf
048 * a filter that allows only a subset of the users to be selected from. If null, no filtering will
049 * occur.
050 *
051 */
052 public static LogOnForm getLogOnForm(
053 boolean ask_password,
054 UserManager um,
055 Comparator cmp,
056 UserFilter uf) {
057 LogOnForm lof =
058 new LogOnForm(
059 "Are you a registered user?",
060 "Select your user name!",
061 "Enter your passphrase!",
062 ask_password,
063 um,
064 cmp,
065 uf);
066 return lof;
067 }
068
069 /**
070 * @return a <code>FormSheet<code> informing the user, that logging on failed.
071 */
072 public static FormSheet getFaultFormSheet() {
073 return new MsgForm(
074 "Log on failed!",
075 "You didnt choose a user name or the passphrase didn`t match!");
076 }
077
078 /**
079 * @return a <code>FormSheet<code> where the video-offer is displayed and possibilities exist to start further activities.
080 * @param cs the <code>Stock</code> that contains the video-offer
081 * @param uigGate the <code>UIGate</code> this <code>FormSheet</code> is displayed
082 * @param show_zeros if false, lines containing a '0' in the "Count" field will be hidden.
083 * @param ted the <code>TableEntryDescriptor</code> used to display the <Stock>
084 *
085 */
086 public static FormSheet getMainFormSheet(
087 CountingStock cs,
088 UIGate uigGate,
089 boolean show_zeros,
090 TableEntryDescriptor ted) {
091 SingleTableFormSheet stfs_main =
092 SingleTableFormSheet.create(
093 "Select an action!",
094 cs,
095 uigGate,
096 show_zeros,
097 ted);
098 stfs_main.addContentCreator(new FormSheetContentCreator() {
099 public void createFormSheetContent(FormSheet fs) {
100 fs.removeAllButtons();
101 fs.addButton("Rent", FB_RENT, null);
102 fs.addButton("Hand back", FB_HANDBACK, null);
103 fs.addButton("Administrate", FB_ADMIN, null);
104 fs.addButton("Logout", FB_LOGOUT, null);
105 }
106 });
107
108 return stfs_main;
109 }
110 }