/**
* (c) 2000-2011 Carlos G�mez Rodr�guez, todos los derechos reservados / all rights reserved.
* Licencia en license.txt / License in license.txt
* File created: 26/10/2012 17:52:27
*/
package eu.irreality.age.windowing;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.util.Map;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JComponent;
import javax.swing.JTabbedPane;
import javax.swing.KeyStroke;
/**
* @author carlos
*
*/
public class TabUtils
{
public static void setDefaultMnemonics ( final JTabbedPane jtp )
{
for ( int i = 0 ; i < jtp.getTabCount() ; i++ )
{
switch ( i )
{
case 0:
jtp.setMnemonicAt(i, KeyEvent.VK_1); break;
case 1:
jtp.setMnemonicAt(i, KeyEvent.VK_2); break;
case 2:
jtp.setMnemonicAt(i, KeyEvent.VK_3); break;
case 3:
jtp.setMnemonicAt(i, KeyEvent.VK_4); break;
case 4:
jtp.setMnemonicAt(i, KeyEvent.VK_5); break;
case 5:
jtp.setMnemonicAt(i, KeyEvent.VK_6); break;
case 6:
jtp.setMnemonicAt(i, KeyEvent.VK_7); break;
case 7:
jtp.setMnemonicAt(i, KeyEvent.VK_8); break;
case 8:
jtp.setMnemonicAt(i, KeyEvent.VK_9); break;
}
}
Action cycleLeft = new AbstractAction()
{
public void actionPerformed ( ActionEvent e )
{
int newIndex = jtp.getSelectedIndex() - 1;
if ( newIndex < 0 )
newIndex = jtp.getTabCount()-1;
jtp.setSelectedIndex(newIndex);
}
} ;
Action cycleRight = new AbstractAction()
{
public void actionPerformed ( ActionEvent e )
{
int newIndex = jtp.getSelectedIndex() + 1;
if ( newIndex >= jtp.getTabCount() )
newIndex = 0;
jtp.setSelectedIndex(newIndex);
}
} ;
InputMap inputMap = jtp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_LEFT , InputEvent.ALT_DOWN_MASK ) , "CycleLeft" );
inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP , InputEvent.CTRL_DOWN_MASK ) , "CycleLeft" );
inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT , InputEvent.ALT_DOWN_MASK ) , "CycleRight" );
inputMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN , InputEvent.CTRL_DOWN_MASK ) , "CycleRight" );
ActionMap actionMap = jtp.getActionMap();
actionMap.put("CycleLeft", cycleLeft);
actionMap.put("CycleRight", cycleRight);
}
}