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 }