/* * @(#)ToggleToolBarAction.java * * Copyright (c) 1996-2010 The authors and contributors of JHotDraw. * You may not use, copy or modify this file, except in compliance with the * accompanying license terms. */ package org.jhotdraw.app.action.window; import java.awt.event.*; import javax.swing.*; import java.beans.*; import org.jhotdraw.app.action.ActionUtil; /** * ToggleToolBarAction. * * @author Werner Randelshofer * @version $Id$ */ public class ToggleToolBarAction extends AbstractAction { private static final long serialVersionUID = 1L; private JToolBar toolBar; private PropertyChangeListener propertyHandler; /** Creates a new instance. */ public ToggleToolBarAction(JToolBar toolBar, String label) { super(label); propertyHandler = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { String name = evt.getPropertyName(); if ("visible".equals(name)) { putValue(ActionUtil.SELECTED_KEY, evt.getNewValue()); } } }; putValue(ActionUtil.SELECTED_KEY, true); setToolBar(toolBar); } @Override public void putValue(String key, Object newValue) { super.putValue(key, newValue); if (ActionUtil.SELECTED_KEY.equals(key)) { if (toolBar != null) { toolBar.setVisible((Boolean) newValue); } } } public void setToolBar(JToolBar newValue) { if (toolBar != null) { toolBar.removePropertyChangeListener(propertyHandler); } toolBar = newValue; if (toolBar != null) { toolBar.addPropertyChangeListener(propertyHandler); putValue(ActionUtil.SELECTED_KEY, toolBar.isVisible()); } } @Override public void actionPerformed(ActionEvent e) { if (toolBar != null) { putValue(ActionUtil.SELECTED_KEY, ! toolBar.isVisible()); } } }