/* * @(#)MinimizeWindowAction.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 javax.annotation.Nullable; import org.jhotdraw.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import org.jhotdraw.app.Application; import org.jhotdraw.app.View; import org.jhotdraw.app.action.AbstractViewAction; /** * Minimizes the Frame of the current view. * * @author Werner Randelshofer * @version $Id$ */ public class MinimizeWindowAction extends AbstractViewAction { private static final long serialVersionUID = 1L; public static final String ID = "window.minimize"; /** Creates a new instance. */ public MinimizeWindowAction(Application app, @Nullable View view) { super(app, view); ResourceBundleUtil labels = ResourceBundleUtil.getBundle("org.jhotdraw.app.Labels"); labels.configureAction(this, ID); } private JFrame getFrame() { return (JFrame) SwingUtilities.getWindowAncestor( getActiveView().getComponent() ); } @Override public void actionPerformed(ActionEvent evt) { JFrame frame = getFrame(); if (frame != null) { frame.setExtendedState(frame.getExtendedState() ^ Frame.ICONIFIED); } else { Toolkit.getDefaultToolkit().beep(); } } }