From e4bdaa45006e8689e122535ec0e4a2fd9853f49f Mon Sep 17 00:00:00 2001 From: David Craine Date: Sat, 3 Aug 2002 04:14:22 +0000 Subject: [PATCH] Almost completed the shortcut key configuration git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@626 51baf565-9d33-0410-a72c-fc3788e3496d --- pmd-jbuilder/lib/PMDOpenTool.jar | Bin 87029 -> 91037 bytes .../jbuilder/AcceleratorPropertyGroup.java | 14 +++++ .../pmd/jbuilder/AcceleratorPropertyPage.java | 56 ++++++++++++++---- .../sourceforge/pmd/jbuilder/PMDOpenTool.java | 25 ++++++-- 4 files changed, 80 insertions(+), 15 deletions(-) diff --git a/pmd-jbuilder/lib/PMDOpenTool.jar b/pmd-jbuilder/lib/PMDOpenTool.jar index f8ec00ce8b0f8d61a8399a2f76cf897d3be27264..caf5f6019b08b4d6b9ed0abac1c20cd47dbf23c3 100644 GIT binary patch delta 11710 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 diff --git a/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/AcceleratorPropertyGroup.java b/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/AcceleratorPropertyGroup.java index c9f4d2dafa..3d901a0bfb 100644 --- a/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/AcceleratorPropertyGroup.java +++ b/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/AcceleratorPropertyGroup.java @@ -23,6 +23,8 @@ import java.util.HashMap; import com.borland.primetime.ide.MessageCategory; import com.borland.primetime.ide.Browser; import java.util.Enumeration; +import com.borland.primetime.properties.GlobalIntegerProperty; +import java.awt.event.KeyEvent; @@ -33,6 +35,18 @@ public class AcceleratorPropertyGroup implements PropertyGroup { public static AcceleratorPropertyGroup currentInstance = null; + static GlobalIntegerProperty PROP_CHECKFILE_KEY; + static GlobalIntegerProperty PROP_CHECKFILE_MOD; + static GlobalIntegerProperty PROP_CHECKPROJ_KEY; + static GlobalIntegerProperty PROP_CHECKPROJ_MOD; + + static { + PROP_CHECKFILE_KEY = new GlobalIntegerProperty(Constants.RULESETS, "checkfilekey", 'P'); + PROP_CHECKFILE_MOD = new GlobalIntegerProperty(Constants.RULESETS, "checkfilemod", KeyEvent.CTRL_MASK|KeyEvent.SHIFT_MASK); + PROP_CHECKPROJ_KEY = new GlobalIntegerProperty(Constants.RULESETS, "checkprojkey", 'J'); + PROP_CHECKPROJ_MOD = new GlobalIntegerProperty(Constants.RULESETS, "checkprojmod", KeyEvent.CTRL_MASK|KeyEvent.SHIFT_MASK); + + } /** * Standard Constructor diff --git a/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/AcceleratorPropertyPage.java b/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/AcceleratorPropertyPage.java index f9a3d5532f..350aac9f39 100644 --- a/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/AcceleratorPropertyPage.java +++ b/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/AcceleratorPropertyPage.java @@ -34,8 +34,6 @@ public class AcceleratorPropertyPage extends PropertyPage { private JLabel jLabel1 = new JLabel(); private JComboBox jComboBox1 = new JComboBox(); private JPanel jPanel2 = new JPanel(); - int keycode; - int modifiers; private FlowLayout flowLayout1 = new FlowLayout(); private JTextField jTextField2 = new JTextField(); private JTextField jTextField3 = new JTextField(); @@ -43,6 +41,7 @@ public class AcceleratorPropertyPage extends PropertyPage { private JPanel jPanel3 = new JPanel(); private JLabel jLabel2 = new JLabel(); private JLabel jLabel3 = new JLabel(); + private int[][]keys = new int[2][2]; //data structure to hold keycode and modifier info for 2 distinct actions /** * Constuctor @@ -75,6 +74,11 @@ public class AcceleratorPropertyPage extends PropertyPage { jLabel3.setPreferredSize(new Dimension(60, 17)); jLabel3.setHorizontalAlignment(SwingConstants.CENTER); jLabel3.setText("Key"); + jComboBox1.addItemListener(new java.awt.event.ItemListener() { + public void itemStateChanged(ItemEvent e) { + jComboBox1_itemStateChanged(e); + } + }); this.add(jPanel1, null); jPanel1.add(jLabel1, null); jPanel1.add(jComboBox1, null); @@ -86,22 +90,34 @@ public class AcceleratorPropertyPage extends PropertyPage { jPanel2.add(jTextField2, null); } + private void initKeys() { + keys[0][0] = AcceleratorPropertyGroup.PROP_CHECKFILE_KEY.getInteger(); + keys[0][1] = AcceleratorPropertyGroup.PROP_CHECKFILE_MOD.getInteger(); + keys[1][0] = AcceleratorPropertyGroup.PROP_CHECKPROJ_KEY.getInteger(); + keys[1][1] = AcceleratorPropertyGroup.PROP_CHECKPROJ_MOD.getInteger(); + + } /** * non-Jbuilder specific initialization stuff */ private void init2() { - jComboBox1.addItem("Check File"); - jComboBox1.addItem("Check Project"); + initKeys(); + jComboBox1.addItem("Check File"); //item 0 + jComboBox1.addItem("Check Project"); //item 1 + int selectedItem = jComboBox1.getSelectedIndex(); + jTextField2.setText(KeyEvent.getKeyText(keys[selectedItem][0])); + jTextField3.setText(KeyEvent.getKeyModifiersText(keys[selectedItem][1])); jTextField2.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { - keycode = e.getKeyCode(); - modifiers = e.getModifiers(); + int item = jComboBox1.getSelectedIndex(); + keys[item][0] = e.getKeyCode(); + keys[item][1] = e.getModifiers(); if(e.isActionKey()) { - jTextField2.setText(KeyEvent.getKeyText(keycode)); - jTextField3.setText(KeyEvent.getKeyModifiersText(modifiers)); + jTextField2.setText(KeyEvent.getKeyText(keys[item][0])); + jTextField3.setText(KeyEvent.getKeyModifiersText(keys[item][1])); //jTextField2.setText(""); } @@ -109,8 +125,9 @@ public class AcceleratorPropertyPage extends PropertyPage { public void keyTyped(KeyEvent e) { - jTextField2.setText(KeyEvent.getKeyText(keycode)); - jTextField3.setText(KeyEvent.getKeyModifiersText(modifiers)); + int item = jComboBox1.getSelectedIndex(); + jTextField2.setText(KeyEvent.getKeyText(keys[item][0])); + jTextField3.setText(KeyEvent.getKeyModifiersText(keys[item][1])); //jTextField2.setText(""); } @@ -118,6 +135,18 @@ public class AcceleratorPropertyPage extends PropertyPage { } public void writeProperties () { + //we need to tell the PMDOpenbTool to clear it's current key bindings before we save the new ones + PMDOpenTool.clearShortCuts(); + + //now we can save the new key bindings to the global properties + AcceleratorPropertyGroup.PROP_CHECKFILE_KEY.setInteger(keys[0][0]); + AcceleratorPropertyGroup.PROP_CHECKFILE_MOD.setInteger(keys[0][1]); + AcceleratorPropertyGroup.PROP_CHECKPROJ_KEY.setInteger(keys[1][0]); + AcceleratorPropertyGroup.PROP_CHECKPROJ_MOD.setInteger(keys[1][1]); + + //now we can tell PMDOpenTool to recreate the bindings based on the new global values + PMDOpenTool.registerShortCuts(); + } /** @@ -133,6 +162,13 @@ public class AcceleratorPropertyPage extends PropertyPage { */ public void readProperties () {} + void jComboBox1_itemStateChanged(ItemEvent e) { + int selectedItem = jComboBox1.getSelectedIndex(); + jTextField2.setText(KeyEvent.getKeyText(keys[selectedItem][0])); + jTextField3.setText(KeyEvent.getKeyModifiersText(keys[selectedItem][1])); + + } + } diff --git a/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/PMDOpenTool.java b/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/PMDOpenTool.java index 16a956889f..e702aaecce 100644 --- a/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/PMDOpenTool.java +++ b/pmd-jbuilder/src/net/sourceforge/pmd/jbuilder/PMDOpenTool.java @@ -68,11 +68,7 @@ public class PMDOpenTool { AcceleratorPropertyGroup accpropGrp = new AcceleratorPropertyGroup(); //register the Keymap shortcuts - EditorManager.getKeymap().addActionForKeyStroke(KeyStroke.getKeyStroke('P', Event.CTRL_MASK | Event.SHIFT_MASK), - E_ACTION_PMDCheck); - - EditorManager.getKeymap().addActionForKeyStroke(KeyStroke.getKeyStroke('J', Event.CTRL_MASK | Event.SHIFT_MASK), - E_ACTION_PMDCheckProject); + registerShortCuts(); PropertyManager.registerPropertyGroup(apropGrp); PropertyManager.registerPropertyGroup(cpropGrp); @@ -82,6 +78,25 @@ public class PMDOpenTool { } } + + static void clearShortCuts() { + EditorManager.getKeymap().removeKeyStrokeBinding(KeyStroke.getKeyStroke(AcceleratorPropertyGroup.PROP_CHECKFILE_KEY.getInteger(), + AcceleratorPropertyGroup.PROP_CHECKFILE_MOD.getInteger())); + EditorManager.getKeymap().removeKeyStrokeBinding(KeyStroke.getKeyStroke(AcceleratorPropertyGroup.PROP_CHECKPROJ_KEY.getInteger(), + AcceleratorPropertyGroup.PROP_CHECKPROJ_MOD.getInteger())); + } + + static void registerShortCuts() { + + EditorManager.getKeymap().addActionForKeyStroke(KeyStroke.getKeyStroke(AcceleratorPropertyGroup.PROP_CHECKFILE_KEY.getInteger(), + AcceleratorPropertyGroup.PROP_CHECKFILE_MOD.getInteger()), + E_ACTION_PMDCheck); + + EditorManager.getKeymap().addActionForKeyStroke(KeyStroke.getKeyStroke(AcceleratorPropertyGroup.PROP_CHECKPROJ_KEY.getInteger(), + AcceleratorPropertyGroup.PROP_CHECKPROJ_MOD.getInteger()), + E_ACTION_PMDCheckProject); + } + /** * Registers an "PMD Checker" action with the ContentManager (Tabs) * The action will not be visible if multiple nodes are selected