Changeset 1082


Ignore:
Timestamp:
Jun 22, 2011, 11:43:09 AM (6 years ago)
Author:
joerg
Message:
 
Location:
trunk/src
Files:
2 edited

Legend:

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

    r996 r1082  
    88import sce.codehelper.WordWithPos;
    99
     10import javax.swing.*;
     11import java.awt.*;
     12import java.awt.event.KeyEvent;
     13import java.awt.event.KeyListener;
    1014import java.util.ArrayList;
    1115
     
    2630
    2731      range = GProperties.getRange(key);
     32
     33      if(range.description().equals("Java shortcut")) {
     34        params = new PatternPair("^([^#=]+)=([^#]*)", "([^#]*)").find(pane);
     35        key = params.get(0).word.replaceAll("\\\\ ", " ");
     36        value = params.get(1);
     37
     38        KeyStrokeCreator keystrokeCreator = new KeyStrokeCreator();
     39        keystrokeCreator.popItUp();
     40
     41        return false;
     42      }
     43
    2844      return true;
    2945    }
     
    109125    }
    110126  }
     127
     128  public class KeyStrokeCreator extends JPopupMenu implements KeyListener {
     129    JTextField field = new JTextField("<perform your keystroke>");
     130
     131    public KeyStrokeCreator() {
     132      field.setColumns(50);
     133      add(field);
     134    }
     135
     136    public void keyTyped(KeyEvent e) {
     137    }
     138
     139    public void keyPressed(KeyEvent e) {
     140      if(e.getKeyCode() == KeyEvent.VK_ENTER) {
     141        WordWithPos wordPos = getWordToReplace();
     142        document.replace(wordPos.getStartPos(), wordPos.getEndPos(), field.getText());
     143        setVisible(false);
     144      } else
     145      if(e.getKeyCode() == KeyEvent.VK_ESCAPE) {
     146        setVisible(false);
     147      } else {
     148        String text = KeyStroke.getKeyStroke(e.getKeyCode(), e.getModifiers()).toString();
     149        text = text.replaceAll(" pressed ", " ");
     150        field.setText(text);
     151      }
     152    }
     153
     154    public void keyReleased(KeyEvent e) {
     155    }
     156
     157    public void popItUp() {
     158      WordWithPos wordPos = getWordToReplace();
     159      Point wordPoint = pane.modelToView(wordPos.getStartRow(), wordPos.getStartCol());
     160
     161      show(pane, wordPoint.x, wordPoint.y + pane.getLineHeight());
     162      pack();
     163
     164      field.addKeyListener(this);
     165      field.requestFocus();
     166    }
     167  }
    111168}
  • trunk/src/sce/codehelper/CHCommand.java

    r1071 r1082  
    155155    CHCommand o = (CHCommand) obj;
    156156
    157     if(!name.equals(o.name)
    158             || !usage.equals(o.usage)
    159             || !style.equals(o.style)
    160             || !hint.equals(o.hint)) return false;
     157    if(!equalsNull(name, o.name)
     158            || !equalsNull(usage, o.usage)
     159            || !equalsNull(style, o.style)
     160            || !equalsNull(hint, o.hint)) return false;
    161161
    162162    if(arguments.size() != o.arguments.size()) return false;
     
    169169    return true;
    170170  }
     171
     172  private boolean equalsNull(Object o1, Object o2) {
     173    if(o1 == null || o2 == null) return o1 != o2;
     174    return o1.equals(o2);
     175  }
    171176}
Note: See TracChangeset for help on using the changeset viewer.