Logo Search packages:      
Sourcecode: wims version File versions  Download package


package rene.gui;

import java.util.StringTokenizer;

import rene.dialogs.ItemEditorElement;
import rene.util.sort.SortObject;

A keyboard item. Can be constructed from a menu string (like
editor.file.open) and a key string (like control.o). Can test a key
event, if it fits.

00014 public class KeyboardItem
      implements ItemEditorElement, SortObject
{     boolean Shift,Control,Alt;
      String CharKey;
      String MenuString,ActionName;
      int CommandType=0;

      Copy constructor, for use in editing (clone).
00024       public KeyboardItem (KeyboardItem item)
      {     Shift=item.Shift; Control=item.Control; Alt=item.Alt;
            CharKey=item.CharKey; MenuString=item.MenuString;
            ActionName=item.ActionName; CommandType=item.CommandType;

      @param charkey The keyboard descriptive character (like "page down")
      @param menustring The menu item (may have some *s added)
      @param actionname The description of the menu item.
      @param shift,control,alt Modifier flags.
      @param commandtype The command key, that is needed (0 is none).
00037       public KeyboardItem (String charkey, String menustring, String actionname,
            boolean shift, boolean control, boolean alt, int commandtype)
      {     Shift=shift; Control=control; Alt=alt;
            MenuString=menustring; ActionName=actionname;

      @param menu The menu string.
      @param key The key descripion a la "esc1.shift.control.e"
00049       public KeyboardItem (String menu, String key)
      {     MenuString=menu;
            StringTokenizer t=new StringTokenizer(key,".");
            while (t.hasMoreTokens())
            {     String token=(String)t.nextToken();
                  if (t.hasMoreTokens())
                  {     if (token.equals("control")) Control=true;
                        else if (token.equals("shift")) Shift=true;
                        else if (token.equals("alt")) Alt=true;
                        else if (token.startsWith("esc"))
                              // esc should be followed by a number
                        {     try
                              {     CommandType=Integer.parseInt(token.substring(3));
                              catch (Exception e) {}
                        else return;
                  {     if (key.equals("")) return;

      public String getMenuString () { return MenuString; }
      public String getActionName () { return ActionName; }
      public String getCharKey () { return CharKey; }
      public boolean isShift () { return Shift; }
      public boolean isControl () { return Control; }
      public boolean isAlt () { return Alt; }
      public int getCommandType () { return CommandType; }

      Get a menu string, which is stripped from stars.
00089       public String getStrippedMenuString ()
      {     String s=MenuString;
            while (s.endsWith("*")) s=s.substring(0,s.length()-1);
            return s;

      Compute a visible shortcut to append after the menu items (like
      "(Ctr O)". The modifiers depend on the language.
00099       public String shortcut ()
      {     if (CharKey.equals("none")) return "";
            String s=CharKey.toUpperCase();
            if (Alt) s=Global.name("shortcut.alt")+" "+s;
            if (Control) s=Global.name("shortcut.control")+" "+s;
            if (Shift) s=Global.name("shortcut.shift")+" "+s;
            if (CommandType>0)
                  s=Keyboard.commandShortcut(CommandType)+" "+s;
            return s;

      Get the name of this KeyboardItem element.
00113       public String getName ()
      {     return MenuString;
      Method of SortObject, necessary to sort the keys by name.
00120       public int compare (SortObject o)
      {     return getName().compareTo(((KeyboardItem)o).getName());
      Return a key description for this item (to save as parameter).
      This should be the same as the key parameter in the constructor.
00128       public String keyDescription ()
      {     String s=CharKey.toLowerCase();
            if (s.equals("none") || s.equals("default")) return s;
            if (Alt) s="alt."+s;
            if (Control) s="control."+s;
            if (Shift) s="shift."+s;
            if (CommandType>0) s="esc"+CommandType+"."+s;
            return s;

Generated by  Doxygen 1.6.0   Back to index