001    package ch.uzh.ifi.attempto.echocomp;
002    
003    import nextapp.echo.app.Button;
004    import nextapp.echo.app.event.ActionListener;
005    
006    /**
007     * This class represents a small square button with one of the following predefined icons: right,
008     * down, plus, diamond.
009     * 
010     * @author Tobias Kuhn
011     */
012    public class SquareButton extends Button {
013            
014            private static final long serialVersionUID = -3555338733759467195L;
015            
016            private static final String imgpath = "ch/uzh/ifi/attempto/echocomp/style/";
017    
018            /**
019             * Creates a new square button.
020             * 
021             * @param iconName The name of the icon button.
022             * @param tooltip The tooltip to be shown.
023             * @param actionListener The action listener.
024             */
025            public SquareButton(String iconName, String tooltip, ActionListener actionListener) {
026                    setRolloverEnabled(true);
027                    setRolloverBackground(Style.lightBackground);
028                    if (tooltip != null) {
029                            setToolTipText(tooltip);
030                    }
031                    addActionListener(actionListener);
032                    setIconName(iconName);
033            }
034            
035            /**
036             * Creates a new square button.
037             * 
038             * @param iconName The name of the icon button.
039             * @param actionListener The action listener.
040             */
041            public SquareButton(String iconName, ActionListener actionListener) {
042                    this(iconName, null, actionListener);
043            }
044            
045            /**
046             * Changes the icon name.
047             * 
048             * @param iconName The new icon name.
049             */
050            public void setIconName(String iconName) {
051                    setIcon(Style.getImage(imgpath + iconName + ".png"));
052            }
053    
054    }