01: package com.tagtraum.perf.gcviewer.action;
02:
03: import com.tagtraum.perf.gcviewer.GCViewer;
04:
05: import javax.swing.*;
06: import java.awt.*;
07: import java.awt.event.ActionEvent;
08: import java.beans.PropertyVetoException;
09:
10: /**
11: *
12: * @author <a href="mailto:hs@tagtraum.com">Hendrik Schreiber</a>
13: * Date: May 20, 2005
14: * Time: 2:07:18 PM
15: *
16: */
17: public class Arrange extends AbstractAction {
18: private GCViewer gcViewer;
19:
20: public Arrange(final GCViewer gcViewer) {
21: this .gcViewer = gcViewer;
22: putValue(NAME, GCViewer.localStrings
23: .getString("main_frame_menuitem_arrange"));
24: putValue(SHORT_DESCRIPTION, GCViewer.localStrings
25: .getString("main_frame_menuitem_hint_arrange"));
26: putValue(MNEMONIC_KEY, new Integer(GCViewer.localStrings
27: .getString("main_frame_menuitem_mnemonic_arrange")
28: .charAt(0)));
29: putValue(ACTION_COMMAND_KEY, "arrange");
30: putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke('G',
31: Event.CTRL_MASK));
32: setEnabled(false);
33: }
34:
35: public void actionPerformed(final ActionEvent e) {
36: final JInternalFrame[] frames = gcViewer.getDesktopPane()
37: .getAllFrames();
38: final DesktopManager desktopManager = gcViewer.getDesktopPane()
39: .getDesktopManager();
40: for (int i = 0; i < frames.length; i++) {
41: final JInternalFrame frame = frames[i];
42: desktopManager.deiconifyFrame(frame);
43: try {
44: frame.setMaximum(false);
45: } catch (PropertyVetoException e1) {
46: e1.printStackTrace();
47: }
48: final int height = gcViewer.getDesktopPane().getHeight()
49: / frames.length;
50: desktopManager.setBoundsForFrame(frame, 0, height * i,
51: gcViewer.getDesktopPane().getWidth(), height);
52: }
53: }
54: }
|