    001    // This file is part of the Attempto Java Packages.
    002    // Copyright 2008, Attempto Group, University of Zurich (see http://attempto.ifi.uzh.ch).
    003    //
    004    // The Attempto Java Packages is free software: you can redistribute it and/or modify it under the
    005    // terms of the GNU Lesser General Public License as published by the Free Software Foundation,
    006    // either version 3 of the License, or (at your option) any later version.
    007    //
    008    // The Attempto Java Packages is distributed in the hope that it will be useful, but WITHOUT ANY
    009    // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    010    // PURPOSE. See the GNU Lesser General Public License for more details.
    011    //
    012    // You should have received a copy of the GNU Lesser General Public License along with the Attempto
    013    // Java Packages. If not, see http://www.gnu.org/licenses/.
    014
    015    package ch.uzh.ifi.attempto.preditor;
    016
    017    import ch.uzh.ifi.attempto.echocomp.Style;
    018    import nextapp.echo2.app.Extent;
    019    import nextapp.echo2.app.Font;
    020    import nextapp.echo2.app.event.ActionEvent;
    021    import nextapp.echo2.app.event.ActionListener;
    022
    023    /**
    024     * This abstract class represents a menu item that performs an action when the user clicks on it.
    025     *
    026     * @author Tobias Kuhn
    027     */
    028    public abstract class SpecialMenuItem extends MenuItem implements ActionListener {
    029
    030            /**
    031             * A new special menu item is initialized.
    032             *
    033             * @param text The text of the menu item.
    034             */
    035            public SpecialMenuItem(String text) {
    036                    setText(text);
    037                    setActionCommand(text);
    038            setFont(new Font(Style.fontTypeface, Font.ITALIC, new Extent(12)));
    039                    setForeground(Style.mediumForeground);
    040                    addActionListener(this);
    041        }
    042
    043            /**
    044             * The implementation of this abstract method defines the action that is done when the
    045             * user clicks on the menu item.
    046             */
    047            public abstract void action();
    048
    049            public void actionPerformed(ActionEvent e) {
    050                    action();
    051            }
    052
    053            public boolean equals(Object obj) {
    054                    if (obj instanceof SpecialMenuItem) {
    055                            return getText().equals(((SpecialMenuItem) obj).getText());
    056                    }
    057                    return false;
    058            }
    059
    060    }