View Javadoc

1   /*
2    * Copyright (c) 2003-2008 by Cosylab d. d.
3    *
4    * This file is part of CosyBeans-Common.
5    *
6    * CosyBeans-Common is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * CosyBeans-Common is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with CosyBeans-Common.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  package com.cosylab.gui.components.util;
21  
22  import java.awt.event.ActionEvent;
23  
24  import javax.swing.AbstractAction;
25  import javax.swing.JSplitPane;
26  
27  
28  /**
29   * An action that, when associated with a JSplitPane,
30   * changes the orientation from horizontal to vertical
31   * and vice versa.
32   *
33   * @author <a href="mailto:miha.kadunc@cosylab.com">Miha Kadunc</a>
34   * @version $id$
35   */
36  public class SplitPaneOrientationAction extends AbstractAction {
37     
38  	private static final long serialVersionUID = 1L;
39  	private JSplitPane split;
40  
41      /**
42       * Creates a new action, associated with the <code>pane</code> to
43       * change its orientation.
44       */
45      public SplitPaneOrientationAction(JSplitPane pane) {
46          super();
47          split = pane;
48          putValue(AbstractAction.SHORT_DESCRIPTION, "Change Orientation");
49          putValue(AbstractAction.LONG_DESCRIPTION,
50              "Change orientation of the split pane");
51          putValue(AbstractAction.NAME, "Change Orientation");
52          putValue(AbstractAction.SMALL_ICON,
53              IconHelper.createIcon(
54                  "icons/window/ChangeOrientation16.gif"));
55      }
56  
57      /**
58       * Called when the action is performed. Switches the orientation.
59       */
60      public void actionPerformed(ActionEvent e) {
61          if (split.getOrientation() == JSplitPane.HORIZONTAL_SPLIT) {
62              split.setOrientation(JSplitPane.VERTICAL_SPLIT);
63          } else {
64              split.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
65          }
66      }
67  }