Changeset 638

Show
Ignore:
Timestamp:
02/02/10 19:38:45 (3 years ago)
Author:
stefan
Message:

shortcuts are configurable

Location:
trunk/src/jlatexeditor
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/jlatexeditor/gproperties/GProperties.java

    r636 r638  
    3838  public static final Range BOOLEAN = BetterProperties2.BOOLEAN; 
    3939  public static final Range STRING  = BetterProperties2.STRING; 
     40  public static final Range SHORTCUT = BetterProperties2.STRING; 
    4041 
    4142  private static final String EDITOR_FONT_NAME = "editor.font.name"; 
     
    9293    properties.addEntry(new Comment(" Spell checker settings")); 
    9394    properties.addEntry(new Def(ASPELL_LANG, new PSet(aspellDicts), "en_GB")); 
     95    properties.addEntry(new Comment("\n Shortcuts")); 
    9496    //properties.addEntry(new Def("xwinfo", STRING, null, "xwinfo/xwinfo")); 
     97 
     98    properties.addEntry(new Comment(" File menu")); 
     99    properties.addEntry(new Def("shortcut.new", SHORTCUT, "control N")); 
     100    properties.addEntry(new Def("shortcut.open", SHORTCUT, "control O")); 
     101    properties.addEntry(new Def("shortcut.save", SHORTCUT, "control S")); 
     102    properties.addEntry(new Def("shortcut.close", SHORTCUT, "control W")); 
     103    properties.addEntry(new Def("shortcut.exit", SHORTCUT, "")); 
     104    properties.addEntry(new Comment(" Edit menu")); 
     105    properties.addEntry(new Def("shortcut.undo", SHORTCUT, "control Z")); 
     106    properties.addEntry(new Def("shortcut.redo", SHORTCUT, "control shift Z")); 
     107    properties.addEntry(new Def("shortcut.find", SHORTCUT, "control F")); 
     108    properties.addEntry(new Def("shortcut.replace", SHORTCUT, "control R")); 
     109    properties.addEntry(new Def("shortcut.find next", SHORTCUT, "F3")); 
     110    properties.addEntry(new Def("shortcut.find previous", SHORTCUT, "shift F3")); 
     111    properties.addEntry(new Def("shortcut.cut", SHORTCUT, "control X")); 
     112    properties.addEntry(new Def("shortcut.copy", SHORTCUT, "control C")); 
     113    properties.addEntry(new Def("shortcut.paste", SHORTCUT, "control V")); 
     114    properties.addEntry(new Def("shortcut.comment", SHORTCUT, "control D")); 
     115    properties.addEntry(new Def("shortcut.uncomment", SHORTCUT, "control shift D")); 
     116    properties.addEntry(new Def("shortcut.diff", SHORTCUT, "alt D")); 
     117    properties.addEntry(new Comment(" Build menu")); 
     118    properties.addEntry(new Def("shortcut.pdf", SHORTCUT, "alt 1")); 
     119    properties.addEntry(new Def("shortcut.dvi", SHORTCUT, "alt 2")); 
     120    properties.addEntry(new Def("shortcut.dvi + ps", SHORTCUT, "alt 3")); 
     121    properties.addEntry(new Def("shortcut.dvi + ps + pdf", SHORTCUT, "alt 4")); 
     122    properties.addEntry(new Comment(" Version control menu")); 
     123    properties.addEntry(new Def("shortcut.svn update", SHORTCUT, "alt U")); 
     124    properties.addEntry(new Def("shortcut.svn commit", SHORTCUT, "alt C")); 
     125    properties.addEntry(new Def("shortcut.font", SHORTCUT, "")); 
     126    properties.addEntry(new Def("shortcut.global settings", SHORTCUT, "control alt S")); 
     127    properties.addEntry(new Comment(" Update")); 
     128    properties.addEntry(new Def("shortcut.update", SHORTCUT, "")); 
     129    properties.addEntry(new Def("shortcut.about", SHORTCUT, "")); 
    95130 
    96131    load(); 
     
    167202    return properties.getString(ASPELL_LANG); 
    168203  } 
     204 
     205  public static String getString(String key) { 
     206    return properties.getString(key); 
     207  } 
    169208} 
  • trunk/src/jlatexeditor/gproperties/GPropertiesSyntaxHighlighting.java

    r610 r638  
    181181        String value = matcher.group(2); 
    182182 
    183         Def def = GProperties.getDef(key); 
     183        Def def = GProperties.getDef(key.replaceAll("\\\\(.)", "$1")); 
    184184        if (def == null) { 
    185185          // mark invalid key 
     
    187187        } else { 
    188188          // check value 
    189           if (!def.getRange().isValid(value)) { 
     189          if (!def.getRange().isValid(value.replaceAll("\\\\(.)", "$1"))) { 
    190190            markError(row, matcher.start(2), value.length()); 
    191191          } 
  • trunk/src/jlatexeditor/JLatexEditorJFrame.java

    r633 r638  
    3636import java.io.*; 
    3737import java.util.ArrayList; 
    38 import java.util.Arrays; 
    3938import java.util.Calendar; 
    4039import java.util.HashMap; 
     
    151150    menuBar.add(fileMenu); 
    152151 
    153     JMenuItem newMenuItem = new JMenuItem("New"); 
    154     newMenuItem.setActionCommand("new"); 
    155     newMenuItem.setMnemonic('N'); 
    156     newMenuItem.setAccelerator(KeyStroke.getKeyStroke("control N")); 
    157     newMenuItem.addActionListener(this); 
    158     fileMenu.add(newMenuItem); 
    159  
    160     JMenuItem openMenuItem = new JMenuItem("Open"); 
    161     openMenuItem.setActionCommand("open"); 
    162     openMenuItem.setMnemonic('O'); 
    163     openMenuItem.setAccelerator(KeyStroke.getKeyStroke("control O")); 
    164     openMenuItem.addActionListener(this); 
    165     fileMenu.add(openMenuItem); 
    166  
    167     JMenuItem saveMenuItem = new JMenuItem("Save"); 
    168     saveMenuItem.setActionCommand("save"); 
    169     saveMenuItem.setMnemonic('S'); 
    170     saveMenuItem.setAccelerator(KeyStroke.getKeyStroke("control S")); 
    171     saveMenuItem.addActionListener(this); 
    172     fileMenu.add(saveMenuItem); 
    173  
    174     JMenuItem closeMenuItem = new JMenuItem("Close"); 
    175     closeMenuItem.setActionCommand("close"); 
    176     closeMenuItem.setMnemonic('C'); 
    177     closeMenuItem.setAccelerator(KeyStroke.getKeyStroke("control W")); 
    178     closeMenuItem.addActionListener(this); 
    179     fileMenu.add(closeMenuItem); 
    180  
    181     JMenuItem exitMenuItem = new JMenuItem("Exit"); 
    182     exitMenuItem.setActionCommand("exit"); 
    183     exitMenuItem.setMnemonic('E'); 
    184     exitMenuItem.addActionListener(this); 
    185     fileMenu.add(exitMenuItem); 
     152    fileMenu.add(createMenuItem("New", "new", 'N')); 
     153    fileMenu.add(createMenuItem("Open", "open", 'O')); 
     154    fileMenu.add(createMenuItem("Save", "save", 'S')); 
     155    fileMenu.add(createMenuItem("Close", "close", 'C')); 
     156    fileMenu.add(createMenuItem("Exit", "exit", 'E')); 
    186157 
    187158    JMenu editMenu = new JMenu("Edit"); 
     
    189160    menuBar.add(editMenu); 
    190161 
    191     JMenuItem undoMenuItem = new JMenuItem("Undo"); 
    192     undoMenuItem.setActionCommand("undo"); 
    193     undoMenuItem.setMnemonic('U'); 
    194     undoMenuItem.setAccelerator(KeyStroke.getKeyStroke("control Z")); 
    195     undoMenuItem.addActionListener(this); 
    196     editMenu.add(undoMenuItem); 
    197  
    198     JMenuItem redoMenuItem = new JMenuItem("Redo"); 
    199     redoMenuItem.setActionCommand("redo"); 
    200     redoMenuItem.setMnemonic('R'); 
    201     redoMenuItem.setAccelerator(KeyStroke.getKeyStroke("control shift Z")); 
    202     redoMenuItem.addActionListener(this); 
    203     editMenu.add(redoMenuItem); 
    204  
     162    editMenu.add(createMenuItem("Undo", "undo", 'U')); 
     163    editMenu.add(createMenuItem("Redo", "redo", 'R')); 
    205164    editMenu.addSeparator(); 
    206  
    207     JMenuItem findMenuItem = new JMenuItem("Find"); 
    208     findMenuItem.setActionCommand("find"); 
    209     findMenuItem.setMnemonic('F'); 
    210     findMenuItem.setAccelerator(KeyStroke.getKeyStroke("control F")); 
    211     findMenuItem.addActionListener(this); 
    212     editMenu.add(findMenuItem); 
    213  
    214     JMenuItem replaceMenuItem = new JMenuItem("Replace"); 
    215     replaceMenuItem.setActionCommand("replace"); 
    216     replaceMenuItem.setMnemonic('R'); 
    217     replaceMenuItem.setAccelerator(KeyStroke.getKeyStroke("control R")); 
    218     replaceMenuItem.addActionListener(this); 
    219     editMenu.add(replaceMenuItem); 
    220  
    221     JMenuItem findNextMenuItem = new JMenuItem("Find Next"); 
    222     findNextMenuItem.setActionCommand("find next"); 
    223     findNextMenuItem.setMnemonic('N'); 
    224     findNextMenuItem.setAccelerator(KeyStroke.getKeyStroke("F3")); 
    225     findNextMenuItem.addActionListener(this); 
    226     editMenu.add(findNextMenuItem); 
    227  
    228     JMenuItem findPreviousMenuItem = new JMenuItem("Find Previous"); 
    229     findPreviousMenuItem.setActionCommand("find previous"); 
    230     findPreviousMenuItem.setMnemonic('P'); 
    231     findPreviousMenuItem.setAccelerator(KeyStroke.getKeyStroke("shift F3")); 
    232     findPreviousMenuItem.addActionListener(this); 
    233     editMenu.add(findPreviousMenuItem); 
    234  
    235     JMenuItem cutMenuItem = new JMenuItem("Cut"); 
    236     cutMenuItem.setActionCommand("cut"); 
    237     cutMenuItem.setAccelerator(KeyStroke.getKeyStroke("control X")); 
    238     cutMenuItem.addActionListener(this); 
    239     editMenu.add(cutMenuItem); 
    240  
    241     JMenuItem copyMenuItem = new JMenuItem("Copy"); 
    242     copyMenuItem.setActionCommand("copy"); 
    243     copyMenuItem.setAccelerator(KeyStroke.getKeyStroke("control C")); 
    244     copyMenuItem.addActionListener(this); 
    245     editMenu.add(copyMenuItem); 
    246  
    247     JMenuItem pasteMenuItem = new JMenuItem("Paste"); 
    248     pasteMenuItem.setActionCommand("paste"); 
    249     pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke("control V")); 
    250     pasteMenuItem.addActionListener(this); 
    251     editMenu.add(pasteMenuItem); 
    252  
     165    editMenu.add(createMenuItem("Find", "find", 'F')); 
     166    editMenu.add(createMenuItem("Replace", "replace", 'R')); 
     167    editMenu.add(createMenuItem("Find Next", "find next", 'N')); 
     168    editMenu.add(createMenuItem("Find Previous", "find previous", 'P')); 
     169    editMenu.add(createMenuItem("Cut", "cut", null)); 
     170    editMenu.add(createMenuItem("Copy", "copy", null)); 
     171    editMenu.add(createMenuItem("Paste", "paste", null)); 
    253172    editMenu.addSeparator(); 
    254  
    255     JMenuItem commentMenuItem = new JMenuItem("Comment"); 
    256     commentMenuItem.setActionCommand("comment"); 
    257     commentMenuItem.setMnemonic('o'); 
    258     commentMenuItem.setAccelerator(KeyStroke.getKeyStroke("control D")); 
    259     commentMenuItem.addActionListener(this); 
    260     editMenu.add(commentMenuItem); 
    261  
    262     JMenuItem uncommentMenuItem = new JMenuItem("Uncomment"); 
    263     uncommentMenuItem.setActionCommand("uncomment"); 
    264     uncommentMenuItem.setMnemonic('u'); 
    265     uncommentMenuItem.setAccelerator(KeyStroke.getKeyStroke("control shift D")); 
    266     uncommentMenuItem.addActionListener(this); 
    267     editMenu.add(uncommentMenuItem); 
    268  
     173    editMenu.add(createMenuItem("Comment", "comment", 'o')); 
     174    editMenu.add(createMenuItem("Uncomment", "uncomment", 'u')); 
    269175    editMenu.addSeparator(); 
    270  
    271     JMenuItem diffMenuItem = new JMenuItem("Diff"); 
    272     diffMenuItem.setActionCommand("diff"); 
    273     diffMenuItem.setMnemonic('D'); 
    274     diffMenuItem.setAccelerator(KeyStroke.getKeyStroke("alt D")); 
    275     diffMenuItem.addActionListener(this); 
    276     editMenu.add(diffMenuItem); 
     176    editMenu.add(createMenuItem("Diff", "diff", 'D')); 
    277177 
    278178    JMenu buildMenu = new JMenu("Build"); 
     
    280180    menuBar.add(buildMenu); 
    281181 
    282     JMenuItem pdfMenuItem = new JMenuItem("pdf"); 
    283     pdfMenuItem.setActionCommand("pdf"); 
    284     pdfMenuItem.setAccelerator(KeyStroke.getKeyStroke("alt 1")); 
    285     pdfMenuItem.addActionListener(this); 
    286     buildMenu.add(pdfMenuItem); 
    287  
    288     JMenuItem dviMenuItem = new JMenuItem("dvi"); 
    289     dviMenuItem.setActionCommand("dvi"); 
    290     dviMenuItem.setAccelerator(KeyStroke.getKeyStroke("alt 2")); 
    291     dviMenuItem.addActionListener(this); 
    292     buildMenu.add(dviMenuItem); 
    293  
    294     JMenuItem dvipsMenuItem = new JMenuItem("dvi + ps"); 
    295     dvipsMenuItem.setActionCommand("dvi + ps"); 
    296     dvipsMenuItem.setAccelerator(KeyStroke.getKeyStroke("alt 3")); 
    297     dvipsMenuItem.addActionListener(this); 
    298     buildMenu.add(dvipsMenuItem); 
    299  
    300     JMenuItem dvipspdfMenuItem = new JMenuItem("dvi + ps + pdf"); 
    301     dvipspdfMenuItem.setActionCommand("dvi + ps + pdf"); 
    302     dvipspdfMenuItem.setAccelerator(KeyStroke.getKeyStroke("alt 4")); 
    303     dvipspdfMenuItem.addActionListener(this); 
    304     buildMenu.add(dvipspdfMenuItem); 
     182    buildMenu.add(createMenuItem("pdf", "pdf", null)); 
     183    buildMenu.add(createMenuItem("dvi", "dvi", null)); 
     184    buildMenu.add(createMenuItem("dvi + ps", "dvi + ps", null)); 
     185    buildMenu.add(createMenuItem("dvi + ps + pdf", "dvi + ps + pdf", null)); 
    305186 
    306187    JMenu vcMenu = new JMenu("Version Control"); 
     
    308189    menuBar.add(vcMenu); 
    309190 
    310     JMenuItem svnMenuItem = new JMenuItem("SVN update"); 
    311     svnMenuItem.setActionCommand("svn update"); 
    312     svnMenuItem.setMnemonic('u'); 
    313     svnMenuItem.setAccelerator(KeyStroke.getKeyStroke("alt U")); 
    314     svnMenuItem.addActionListener(this); 
    315     vcMenu.add(svnMenuItem); 
    316  
    317     JMenuItem svnCommitItem = new JMenuItem("SVN commit"); 
    318     svnCommitItem.setActionCommand("svn commit"); 
    319     svnCommitItem.setMnemonic('c'); 
    320     svnCommitItem.setAccelerator(KeyStroke.getKeyStroke("alt C")); 
    321     svnCommitItem.addActionListener(this); 
    322     vcMenu.add(svnCommitItem); 
     191    vcMenu.add(createMenuItem("SVN update", "svn update", 'u')); 
     192    vcMenu.add(createMenuItem("SVN commit", "svn commit", 'c')); 
    323193 
    324194    JMenu settingsMenu = new JMenu("Settings"); 
     
    326196    menuBar.add(settingsMenu); 
    327197 
    328     JMenuItem fontMenuItem = new JMenuItem("Font"); 
    329     fontMenuItem.setActionCommand("font"); 
    330     fontMenuItem.setMnemonic('F'); 
    331     fontMenuItem.addActionListener(this); 
    332     settingsMenu.add(fontMenuItem);   
    333  
    334     JMenuItem globalSettings = new JMenuItem("Global Settings"); 
    335     globalSettings.setActionCommand("global settings"); 
    336     globalSettings.setMnemonic('G'); 
    337     globalSettings.setAccelerator(KeyStroke.getKeyStroke("control alt S")); 
    338     globalSettings.addActionListener(this); 
    339     settingsMenu.add(globalSettings); 
     198    settingsMenu.add(createMenuItem("Font", "font", 'F')); 
     199    settingsMenu.add(createMenuItem("Global Settings", "global settings", 'G')); 
    340200 
    341201    JMenu helpMenu = new JMenu("Help"); 
     
    343203    menuBar.add(helpMenu); 
    344204 
    345     JMenuItem updateMenuItem = new JMenuItem("Check for update"); 
    346     updateMenuItem.setActionCommand("update"); 
    347     updateMenuItem.setMnemonic('u'); 
    348     //updateMenuItem.setAccelerator(KeyStroke.getKeyStroke("alt u")); 
    349     updateMenuItem.addActionListener(this); 
     205    JMenuItem updateMenuItem = createMenuItem("Check for update", "update", 'u'); 
    350206    if (devVersion) updateMenuItem.setVisible(false); 
    351207    helpMenu.add(updateMenuItem); 
    352  
    353     JMenuItem aboutCommitItem = new JMenuItem("About"); 
    354     aboutCommitItem.setActionCommand("about"); 
    355     aboutCommitItem.setMnemonic('A'); 
    356     //aboutCommitItem.setAccelerator(KeyStroke.getKeyStroke("")); 
    357     aboutCommitItem.addActionListener(this); 
    358     helpMenu.add(aboutCommitItem); 
     208    helpMenu.add(createMenuItem("About", "about", 'A')); 
    359209     
    360210    // error messages 
     
    399249    backgroundParser.start(); 
    400250  } 
     251 
     252  private JMenuItem createMenuItem(String label, String command, Character mnemonic) { 
     253    JMenuItem newMenuItem = new JMenuItem(label); 
     254    newMenuItem.setActionCommand(command); 
     255    if (mnemonic != null) { 
     256      newMenuItem.setMnemonic(mnemonic); 
     257    } 
     258    String shorcutString = GProperties.getString("shortcut." + command); 
     259    if (shorcutString != null && !shorcutString.equals("")) { 
     260      newMenuItem.setAccelerator(KeyStroke.getKeyStroke(shorcutString)); 
     261    } 
     262    newMenuItem.addActionListener(this); 
     263    return newMenuItem; 
     264  } 
    401265 
    402266  private void initFileChooser() {