/plugins/SuperAbbrevs/tags/version0.32/superabbrevs/gui/AddAbbrevDialog.java

# · Java · 123 lines · 87 code · 23 blank · 13 comment · 16 complexity · 5f6b1adefc9ec34191bef4f7e4ad9bcb MD5 · raw file

  1. // jedit mode line :folding=explicit:collapseFolds=1:
  2. package superabbrevs.gui;
  3. import javax.swing.*;
  4. import javax.swing.border.*;
  5. import java.awt.*;
  6. import org.gjt.sp.jedit.*;
  7. import org.gjt.sp.jedit.View;
  8. import java.awt.event.*;
  9. import superabbrevs.SuperAbbrevs;
  10. /*
  11. * I modified Slava Pestov code
  12. * @author Sune Simonsen
  13. */
  14. public class AddAbbrevDialog extends JDialog {
  15. //{{{ private members
  16. private View view;
  17. private AbbrevEditor editor;
  18. private JButton global;
  19. private JButton modeSpecific;
  20. private JButton cancel;
  21. private String abbrev;
  22. //}}}
  23. //{{{ constructor AddAbbrevDialog
  24. public AddAbbrevDialog(View view, String abbrev, String expandsion){
  25. super(view,jEdit.getProperty("add-abbrev.title"),true);
  26. this.abbrev = abbrev;
  27. this.view = view;
  28. JPanel content = new JPanel(new BorderLayout());
  29. content.setBorder(new EmptyBorder(12,12,12,12));
  30. setContentPane(content);
  31. editor = new AbbrevEditor();
  32. editor.setAbbrev(abbrev);
  33. editor.setBorder(new EmptyBorder(6,0,12,0));
  34. editor.setExpansion(expandsion);
  35. content.add(BorderLayout.CENTER,editor);
  36. Box box = new Box(BoxLayout.X_AXIS);
  37. box.add(Box.createGlue());
  38. global = new JButton(jEdit.getProperty("add-abbrev.global"));
  39. global.addActionListener(new ActionHandler());
  40. box.add(global);
  41. box.add(Box.createHorizontalStrut(6));
  42. modeSpecific = new JButton(jEdit.getProperty("add-abbrev.mode"));
  43. modeSpecific.addActionListener(new ActionHandler());
  44. box.add(modeSpecific);
  45. box.add(Box.createHorizontalStrut(6));
  46. cancel = new JButton(jEdit.getProperty("common.cancel"));
  47. cancel.addActionListener(new ActionHandler());
  48. box.add(cancel);
  49. box.add(Box.createGlue());
  50. content.add(BorderLayout.SOUTH,box);
  51. KeyListener listener = new KeyHandler();
  52. addKeyListener(listener);
  53. editor.getTemplateTextArea().addKeyListener(listener);
  54. setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  55. if(abbrev == null)
  56. GUIUtilities.requestFocus(this,editor.getAbbrevField());
  57. else
  58. GUIUtilities.requestFocus(this,editor.getTemplateTextArea());
  59. modeSpecific.setMnemonic(KeyEvent.VK_M);
  60. global.setMnemonic(KeyEvent.VK_G);
  61. cancel.setMnemonic(KeyEvent.VK_C);
  62. pack();
  63. setLocationRelativeTo(view);
  64. setVisible(true);
  65. }
  66. //}}}
  67. //{{{ class Actionhandler
  68. class ActionHandler implements ActionListener {
  69. public void actionPerformed(ActionEvent evt) {
  70. Object source = evt.getSource();
  71. if(source == cancel) {
  72. dispose();
  73. return;
  74. }
  75. String _abbrev = editor.getAbbrev();
  76. if(_abbrev == null || _abbrev.length() == 0) {
  77. getToolkit().beep();
  78. return;
  79. }
  80. if(source == global) {
  81. SuperAbbrevs.addGlobalAbbrev(_abbrev,editor.getExpansion());
  82. } else if(source == modeSpecific) {
  83. SuperAbbrevs.addModeAbbrev(view.getBuffer().getMode().getName(),
  84. _abbrev,editor.getExpansion());
  85. }
  86. if(_abbrev.equals(abbrev)){
  87. SuperAbbrevs.expandAbbrev(view);
  88. }
  89. dispose();
  90. }
  91. }
  92. //}}}
  93. //{{{ class KeyHandler
  94. class KeyHandler extends KeyAdapter {
  95. public void keyPressed(KeyEvent evt) {
  96. if(evt.getKeyCode() == KeyEvent.VK_ESCAPE) dispose();
  97. }
  98. }
  99. //}}}
  100. }