001    // This file is part of AceWiki.
002    // Copyright 2008-2012, AceWiki developers.
003    // 
004    // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU
005    // Lesser General Public License as published by the Free Software Foundation, either version 3 of
006    // the License, or (at your option) any later version.
007    // 
008    // AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
009    // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
010    // Lesser General Public License for more details.
011    // 
012    // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If
013    // not, see http://www.gnu.org/licenses/.
014    
015    package ch.uzh.ifi.attempto.echocomp;
016    
017    import nextapp.echo.app.Alignment;
018    import nextapp.echo.app.Button;
019    import nextapp.echo.app.Color;
020    import nextapp.echo.app.Extent;
021    import nextapp.echo.app.Font;
022    import nextapp.echo.app.Insets;
023    import nextapp.echo.app.event.ActionListener;
024    
025    /**
026     * This class creates borderless small buttons. 
027     *  
028     * @author Tobias Kuhn
029     */
030    public class SmallButton extends Button {
031            
032            private static final long serialVersionUID = 1529104452172147464L;
033    
034            /**
035             * Creates a new small button.
036             * 
037             * @param text The button text.
038             * @param actionListener The action-listener of the button.
039             * @param size The size of the text.
040             * @param enabled false if the button should be disabled.
041             */
042            public SmallButton(String text, ActionListener actionListener, int size, boolean enabled) {
043                    super(text);
044                    
045                    setActionCommand(text);
046                    addActionListener(actionListener);
047                    
048                    setHeight(new Extent(size + 4));
049                    setFont(new Font(Style.fontTypeface, Font.ITALIC, new Extent(size)));
050                    setBackground(null);
051                    setForeground(Style.mediumForeground);
052                    setDisabledBackground(null);
053                    setDisabledForeground(Color.BLACK);
054                    
055                    setRolloverEnabled(true);
056                    setRolloverForeground(Style.lightForeground);
057                    setRolloverBackground(Style.darkBackground);
058                    setInsets(new Insets(2, 0));
059                    setAlignment(new Alignment(Alignment.CENTER, Alignment.CENTER));
060                    setTextAlignment(new Alignment(Alignment.CENTER, Alignment.CENTER));
061                    
062                    setEnabled(enabled);
063                    setLineWrap(false);
064            }
065            
066            /**
067             * Creates a new small button.
068             * 
069             * @param text The button text.
070             * @param actionListener The action-listener of the button.
071             * @param size The size of the text.
072             */
073            public SmallButton(String text, ActionListener actionListener, int size) {
074                    this(text, actionListener, size, true);
075            }
076            
077            /**
078             * Creates a new small button with text size 10.
079             * 
080             * @param text The button text.
081             * @param actionListener The action-listener of the button.
082             * @param enabled false if the button should be disabled.
083             */
084            public SmallButton(String text, ActionListener actionListener, boolean enabled) {
085                    this(text, actionListener, 10, enabled);
086            }
087            
088            /**
089             * Creates a new small button with text size 10.
090             * 
091             * @param text The button text.
092             * @param actionListener The action-listener of the button.
093             */
094            public SmallButton(String text, ActionListener actionListener) {
095                    this(text, actionListener, 10, true);
096            }
097    
098    }