freemind.common.IconProperty.java Source code

Java tutorial

Introduction

Here is the source code for freemind.common.IconProperty.java

Source

/*FreeMind - A Program for creating and viewing Mindmaps
 *Copyright (C) 2000-2006  Joerg Mueller, Daniel Polansky, Christian Foltin and others.
 *
 *See COPYING for Details
 *
 *This program is free software; you can redistribute it and/or
 *modify it under the terms of the GNU General Public License
 *as published by the Free Software Foundation; either version 2
 *of the License, or (at your option) any later version.
 *
 *This program is distributed in the hope that it will be useful,
 *but WITHOUT ANY WARRANTY; without even the implied warranty of
 *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *GNU General Public License for more details.
 *
 *You should have received a copy of the GNU General Public License
 *along with this program; if not, write to the Free Software
 *Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * Created on 25.02.2006
 */
/*$Id: IconProperty.java,v 1.1.2.1.2.4 2007/08/05 22:15:21 dpolivaev Exp $*/
package freemind.common;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JLabel;

import com.jgoodies.forms.builder.DefaultFormBuilder;

import freemind.main.FreeMindMain;
import freemind.modes.MindIcon;
import freemind.modes.common.dialogs.IconSelectionPopupDialog;

public class IconProperty extends PropertyBean implements PropertyControl, ActionListener {
    String description;

    String label;

    JButton mButton;

    private final FreeMindMain mFreeMindMain;

    /**
     * Of IconInformation s.
     */
    private final Vector mIcons;

    private MindIcon mActualIcon = null;

    public IconProperty(String description, String label, FreeMindMain frame, Vector icons) {
        super();
        this.description = description;
        this.label = label;
        this.mFreeMindMain = frame;
        this.mIcons = icons;
        mButton = new JButton();
        mButton.addActionListener(this);
    }

    public String getDescription() {
        return description;
    }

    public String getLabel() {
        return label;
    }

    public void setValue(String value) {
        for (Iterator iter = mIcons.iterator(); iter.hasNext();) {
            MindIcon icon = (MindIcon) iter.next();
            if (icon.getName().equals(value)) {
                mActualIcon = icon;
                setIcon(mActualIcon);
            }
        }
    }

    private void setIcon(MindIcon actualIcon) {
        mButton.setIcon(actualIcon.getIcon());
        mButton.setToolTipText(actualIcon.getDescription());
    }

    public String getValue() {
        return mActualIcon.getName();
    }

    public void layout(DefaultFormBuilder builder, TextTranslator pTranslator) {
        JLabel label = builder.append(pTranslator.getText(getLabel()), mButton);
        label.setToolTipText(pTranslator.getText(getDescription()));
    }

    public void actionPerformed(ActionEvent arg0) {
        Vector icons = new Vector();
        Vector descriptions = new Vector();
        for (Iterator iter = mIcons.iterator(); iter.hasNext();) {
            MindIcon icon = (MindIcon) iter.next();
            icons.add(icon);
            descriptions.add(icon.getDescription());
        }
        IconSelectionPopupDialog dialog = new IconSelectionPopupDialog(mFreeMindMain.getJFrame(), icons,
                mFreeMindMain);
        dialog.setLocationRelativeTo(mFreeMindMain.getJFrame());
        dialog.setModal(true);
        dialog.setVisible(true);
        int result = dialog.getResult();
        if (result >= 0) {
            MindIcon icon = (MindIcon) mIcons.get(result);
            setValue(icon.getName());
            firePropertyChangeEvent();
        }
    }

    public void setEnabled(boolean pEnabled) {
        mButton.setEnabled(pEnabled);
    }

}