/*
* @(#)ToggleVisibleAction.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.*;
import java.awt.event.*;
import javax.swing.*;
import org.jhotdraw.app.action.ActionUtil;
/**
* Toggles the visible state of a Component.
* Is selected, when the Component is visible.
*
* @author Werner Randelshofer.
* @version $Id$
*/
public class ToggleVisibleAction extends AbstractAction {
private static final long serialVersionUID = 1L;
private Component component;
/** Creates a new instance. */
public ToggleVisibleAction(Component c, String name) {
this.component = c;
putValue(Action.NAME, name);
putValue(ActionUtil.SELECTED_KEY, c.isVisible());
c.addComponentListener(new ComponentAdapter() {
@Override
public void componentShown(ComponentEvent e) {
putValue(ActionUtil.SELECTED_KEY, component.isVisible());
}
@Override
public void componentHidden(ComponentEvent e) {
putValue(ActionUtil.SELECTED_KEY, component.isVisible());
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
component.setVisible(! component.isVisible());
}
}