PageRenderTime 48ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/bundles/plugins-trunk/XML/xml/options/CatalogsOptionPane.java

#
Java | 128 lines | 97 code | 18 blank | 13 comment | 11 complexity | cbbfacfae36444053ed98d13f9b7888e MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. /*
  2. * CatalogsOptionPane.java - Catalog manager options panel
  3. * Copyright (C) 2001, 2002 Slava Pestov
  4. *
  5. * The XML plugin is licensed under the GNU General Public License, with
  6. * the following exception:
  7. *
  8. * "Permission is granted to link this code with software released under
  9. * the Apache license version 1.1, for example used by the Xerces XML
  10. * parser package."
  11. */
  12. package xml.options;
  13. import javax.swing.border.EmptyBorder;
  14. import javax.swing.event.*;
  15. import javax.swing.*;
  16. import java.awt.event.*;
  17. import java.awt.*;
  18. import org.gjt.sp.jedit.browser.VFSBrowser;
  19. import org.gjt.sp.jedit.gui.*;
  20. import org.gjt.sp.jedit.*;
  21. public class CatalogsOptionPane extends AbstractOptionPane
  22. {
  23. public CatalogsOptionPane()
  24. {
  25. super("xml.catalogs");
  26. }
  27. // protected members
  28. protected void _init()
  29. {
  30. setLayout(new BorderLayout());
  31. JLabel label = new JLabel(jEdit.getProperty("options.xml.catalogs.caption"));
  32. label.setBorder(new EmptyBorder(0,0,6,0));
  33. add(BorderLayout.NORTH,label);
  34. catalogListModel = new DefaultListModel();
  35. int i = 0;
  36. String catalog;
  37. while((catalog = jEdit.getProperty("xml.catalog." + i)) != null)
  38. {
  39. catalogListModel.addElement(catalog);
  40. i++;
  41. }
  42. add(BorderLayout.CENTER,new JScrollPane(
  43. catalogList = new JList(catalogListModel)));
  44. catalogList.addListSelectionListener(new ListHandler());
  45. JPanel buttons = new JPanel();
  46. buttons.setLayout(new BoxLayout(buttons,BoxLayout.X_AXIS));
  47. buttons.setBorder(new EmptyBorder(6,0,0,0));
  48. add = new RolloverButton(GUIUtilities.loadIcon("Plus.png"));
  49. add.setToolTipText(jEdit.getProperty("options.xml.catalogs.add"));
  50. add.addActionListener(new ActionHandler());
  51. buttons.add(add);
  52. remove = new RolloverButton(GUIUtilities.loadIcon("Minus.png"));
  53. remove.setToolTipText(jEdit.getProperty("options.xml.catalogs.remove"));
  54. remove.addActionListener(new ActionHandler());
  55. buttons.add(remove);
  56. buttons.add(Box.createGlue());
  57. add(BorderLayout.SOUTH,buttons);
  58. updateEnabled();
  59. }
  60. protected void _save()
  61. {
  62. int i;
  63. for(i = 0; i < catalogListModel.getSize(); i++)
  64. {
  65. jEdit.setProperty("xml.catalog." + i,
  66. (String)catalogListModel.getElementAt(i));
  67. }
  68. jEdit.unsetProperty("xml.catalog." + i);
  69. }
  70. // private members
  71. private JList catalogList;
  72. private DefaultListModel catalogListModel;
  73. private JButton add;
  74. private JButton remove;
  75. private void updateEnabled()
  76. {
  77. boolean selected = (catalogList.getSelectedValue() != null);
  78. remove.setEnabled(selected);
  79. }
  80. class ActionHandler implements ActionListener
  81. {
  82. public void actionPerformed(ActionEvent evt)
  83. {
  84. if(evt.getSource() == add)
  85. {
  86. String[] files = GUIUtilities.showVFSFileDialog(
  87. null,null,VFSBrowser.OPEN_DIALOG,true);
  88. if(files == null)
  89. return;
  90. for(int i = 0; i < files.length; i++)
  91. {
  92. catalogListModel.addElement(files[i]);
  93. }
  94. }
  95. else if(evt.getSource() == remove)
  96. {
  97. catalogListModel.removeElementAt(
  98. catalogList.getSelectedIndex());
  99. updateEnabled();
  100. }
  101. }
  102. }
  103. class ListHandler implements ListSelectionListener
  104. {
  105. public void valueChanged(ListSelectionEvent evt)
  106. {
  107. updateEnabled();
  108. }
  109. }
  110. }