001    package videoautomat.gui;
002    import sale.FormSheet;
003    import sale.FormSheetContentCreator;
004    import sale.UIGate;
005    import sale.stdforms.MsgForm;
006    import util.swing.TableEntryDescriptor;
007    import data.CountingStock;
008    import data.stdforms.SingleTableFormSheet;
009    
010    /**
011     * This class implements graphical-user-interface elements for the whole application, especially
012     * for the <code>VideoAutomat</code>
013     */
014    public class Global {
015            /**
016             * The Caption of the <code>VideoAutomat</code>
017             */
018            public static final String CAPTION_AUTOMAT =
019                    "****** VIDEOAUTOMAT *** 24 H ******";
020            /**
021             * Label for the admin- <code>ActionCapability</code>, if it`s not granted.
022             */
023            public static final String MSG_ACCESS = "Acces denied!!!";
024            /**
025             * Label for the menusheet that contains self-defined items
026             */
027            public static final String MS_NEW = "Videoautomat";
028    
029            /**
030             * Label for the button to start the automat
031             */
032            public static final String MSI_AUTOMAT = "Start automat";
033            /**
034             * Label for the time setter button
035             */
036            public static final String MSI_DAY = "+ 1 Day";
037            /**
038             * An ID to identify the <code>FormButton</code> log on
039             */
040            public static int FB_LOGON = 1;
041            /**
042             * @return the {@link videoautomat.VideoAutomat#getDefaultFormSheet()}which displays the
043             *              video-offer and the possibility to start a {@link videoautomat.SaleProcessLogOn}
044             * @param cs
045             *                  the <Stock>containing the offer
046             * @param uigGate
047             *                  the <code>UIGate</code> this <code>FormSheet</code> should be diplayed at
048             * @param show_zeros
049             *                  if false, lines containing a '0' in the "Count" field will be hidden.
050             * @param ted
051             *                  the <code>TableEntryDescriptor</code> used to display the <Stock>
052             *  
053             */
054    
055            public static FormSheet getStartFormSheet(
056                    CountingStock cs,
057                    UIGate uigGate,
058                    boolean show_zeros,
059                    TableEntryDescriptor ted) {
060                    SingleTableFormSheet stfs_log =
061                            SingleTableFormSheet.create(
062                                    "Please log on!",
063                                    cs,
064                                    uigGate,
065                                    show_zeros,
066                                    ted);
067                    stfs_log.addContentCreator(new FormSheetContentCreator() {
068                            public void createFormSheetContent(FormSheet fs) {
069                                    fs.removeAllButtons();
070                                    fs.addButton("Login", FB_LOGON, null);
071                            }
072                    });
073                    return stfs_log;
074            }
075    
076            /**
077             * @return a <code>FormSheet</code> that informs the user that there isn`t the correct
078             *              amount of money left, to hand back the change.
079             */
080            public static FormSheet getNoChangeFormSheet() {
081                    return new MsgForm(
082                            "No change!",
083                            "There is not enough change in here.\n"
084                                    + "Please insert the correct amount of money\n"
085                                    + "or contact the hotline.");
086            }
087    }