/plugins/XQuery/branches/axe/xquery/xquery/SelectionPanel.java

# · Java · 108 lines · 65 code · 22 blank · 21 comment · 5 complexity · 7570ad001bbf200a804d34ea0e0e41b1 MD5 · raw file

  1. /*
  2. * Created on Feb 11, 2004
  3. * @author Wim Le Page
  4. * @author Pieter Wellens
  5. *
  6. */
  7. package xquery;
  8. /**
  9. * @author Wim Le Page
  10. * @author Pieter Wellens
  11. * @version Feb 11, 2004
  12. *
  13. */
  14. import java.awt.BorderLayout;
  15. import java.awt.Dimension;
  16. import java.awt.event.ActionEvent;
  17. import java.awt.event.ActionListener;
  18. import java.net.URL;
  19. import javax.swing.ImageIcon;
  20. import javax.swing.JButton;
  21. import javax.swing.JLabel;
  22. import javax.swing.JPanel;
  23. import javax.swing.JTextField;
  24. import org.gjt.sp.jedit.View;
  25. import org.gjt.sp.jedit.jEdit;
  26. /**
  27. * @author Wim le Page
  28. * @author Pieter Wellens
  29. * @version 0.3.0
  30. *
  31. */
  32. public abstract class SelectionPanel extends JPanel implements ActionListener {
  33. private JButton browseButton;
  34. protected JTextField sourceField = new JTextField();
  35. protected View view;
  36. protected String propLabel;
  37. public SelectionPanel(View view, String propLabel) {
  38. super(new BorderLayout(3,0));
  39. this.view = view;
  40. this.propLabel = propLabel;
  41. JPanel leftPanel = new JPanel(new BorderLayout());
  42. JLabel sourceLabel = new JLabel(jEdit.getProperty(propLabel +".browselabel"));
  43. leftPanel.add(sourceLabel, BorderLayout.NORTH);
  44. String lastSource = jEdit.getProperty(propLabel + ".last-source");
  45. if(lastSource == null) {
  46. sourceField.setText(jEdit.getProperty(propLabel +".prompt"));
  47. } else {
  48. sourceField.setText(lastSource);
  49. }
  50. sourceField.setEnabled(false);
  51. leftPanel.add(sourceField, BorderLayout.SOUTH);
  52. createBrowseButton();
  53. JPanel rightPanel = new JPanel(new BorderLayout());
  54. rightPanel.add(browseButton,BorderLayout.SOUTH);
  55. add(leftPanel);
  56. add(rightPanel, BorderLayout.EAST);
  57. }
  58. private void createBrowseButton() {
  59. String iconName = jEdit.getProperty(propLabel + ".button.icon");
  60. String toolTipText = jEdit.getProperty(propLabel + ".button.tooltip");
  61. String shortcut = jEdit.getProperty("xquery.selectInput.shortcut");
  62. if(shortcut != null) {
  63. toolTipText += " (" + shortcut + ")";
  64. }
  65. URL url = XQueryGUI.class.getResource(iconName);
  66. browseButton = new JButton(new ImageIcon(url));
  67. browseButton.setToolTipText(toolTipText);
  68. browseButton.addActionListener(this);
  69. Dimension dimension = new Dimension(30, 30);
  70. browseButton.setMinimumSize(dimension);
  71. browseButton.setMaximumSize(dimension);
  72. browseButton.setPreferredSize(dimension);
  73. browseButton.setEnabled(false);
  74. };
  75. public String getSourceFieldText() {
  76. return sourceField.getText();
  77. };
  78. public void setSelectionEnabled(boolean b) {
  79. sourceField.setEnabled(b);
  80. browseButton.setEnabled(b);
  81. };
  82. /* (non-Javadoc)
  83. * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
  84. */
  85. public abstract void actionPerformed(ActionEvent event);
  86. }