Changeset 4638


Ignore:
Timestamp:
2003-06-13T11:24:14+12:00 (21 years ago)
Author:
kjdon
Message:

the remove and configure plugin/classifier buttons are now disabled if there is no selection in the list. also teh two lists have been made singly selectable - no more multiple selections

Location:
trunk/gli/src/org/greenstone/gatherer/cdm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java

    r4626 r4638  
    7070import javax.swing.JScrollPane;
    7171import javax.swing.JTextArea;
     72import javax.swing.ListSelectionModel;
    7273import javax.swing.event.ListSelectionEvent;
    7374import javax.swing.event.ListSelectionListener;
     
    742743        classifier_model.add(((Classifier)classifiers[i]).getName());
    743744        }
    744                 // Now we add custom classifiers.
     745        // Now we add custom classifiers.
    745746        addCustomClassifiers(classifier_model);
    746747        Collections.sort(classifier_model);
    747                 // Create
     748        // Create
    748749        add = new JButton(get("Add"));
    749750        JPanel button_pane = new JPanel();
    750751        JPanel central_pane = new JPanel();
    751752        configure = new JButton(get("Configure"));
     753        configure.setEnabled(false);
    752754        JPanel header_pane = new JPanel();
    753755        instructions = new JTextArea(get("Instructions"));
     
    761763        JLabel classifier_label = new JLabel(get("Classifier"));
    762764        classifier_list = new JList(assigned);
     765        classifier_list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    763766        JLabel classifier_list_label = new JLabel(get("Assigned"));
    764767        classifier_list_label.setHorizontalAlignment(JLabel.CENTER);
     
    767770        JPanel classifier_pane = new JPanel();
    768771        remove = new JButton(get("Remove"));
     772        remove.setEnabled(false);
    769773        JLabel title = new JLabel(get("Title"));
    770774        title.setHorizontalAlignment(JLabel.CENTER);
    771775        title.setOpaque(true);
    772776        JPanel temp = new JPanel(new BorderLayout());
    773                 // Listeners
     777        // Listeners
    774778        add.addActionListener(new AddListener());
    775779        configure.addActionListener(new ConfigureListener());
    776780        remove.addActionListener(new RemoveListener());
    777781        classifier_list.addMouseListener(new ClickListener());
    778                 // Layout
     782        classifier_list.addListSelectionListener(new ListListener());
     783        // Layout
    779784        title.setBorder(BorderFactory.createEmptyBorder(0,0,2,0));
    780785        instructions.setBorder(BorderFactory.createEmptyBorder(2,5,2,5));
     
    795800        button_pane.add(configure);
    796801        button_pane.add(remove);
    797                 // Scope these mad bordering skillz.
     802        // Scope these mad bordering skillz.
    798803        temp.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(5,0,5,0), BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(get("Controls")), BorderFactory.createEmptyBorder(2,2,2,2))));
    799804        temp.add(classifier_pane, BorderLayout.NORTH);
     
    829834            */
    830835    private void addCustomClassifiers(ArrayList classifier_model) {
    831                 //classifier_model.add("CustomAZList");
    832                 // Search for classifiers under the org.greenstone.gatherer.cdm.custom directory.
     836        //classifier_model.add("CustomAZList");
     837        // Search for classifiers under the org.greenstone.gatherer.cdm.custom directory.
    833838        File custom_directory = new File(Utility.BASE_DIR + "classes" + File.separator + "org" + File.separator + "greenstone" + File.separator + "gatherer" + File.separator + "cdm" + File.separator + "custom");
    834839        if(custom_directory.exists()) {
     
    10021007    }
    10031008
     1009    /** listens for changes in the list selection and enables the configure and remove buttons if there is a selection, disables them if there is no selection */
     1010    private class ListListener
     1011        implements ListSelectionListener {
     1012
     1013        public void valueChanged(ListSelectionEvent e) {
     1014        if (!e.getValueIsAdjusting()) { // we get two events for one change in list selection - use the false one ( the second one)
     1015            if (classifier_list.isSelectionEmpty()) {
     1016            configure.setEnabled(false);
     1017            remove.setEnabled(false);
     1018            } else {
     1019            configure.setEnabled(true);
     1020            remove.setEnabled(true);
     1021            }
     1022        }
     1023        }
     1024    }
    10041025    /** This class listens for actions upon the remove button in the controls, and if detected calls the removeClassifier() method.
    10051026            */
  • trunk/gli/src/org/greenstone/gatherer/cdm/PlugInManager.java

    r4598 r4638  
    669669        central_pane = new JPanel();
    670670        configure = new JButton(get("Configure"));
     671        configure.setEnabled(false);
    671672        configure.setMnemonic(KeyEvent.VK_C);
    672673        header_pane = new JPanel();
     
    715716        movement_pane = new JPanel();
    716717        plugin = new JComboBox(available);
    717                 //plugin.setEditable(true);
     718        //plugin.setEditable(true);
    718719        plugin.setSelectedIndex(0);
    719720        plugin_label = new JLabel(get("PlugIn"));
    720721        plugin_list = new JList(assigned);
    721722        plugin_list.setCellRenderer(new ListRenderer());
     723        plugin_list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    722724        plugin_list_label = new JLabel(get("Assigned"));
    723725        plugin_list_label.setHorizontalAlignment(JLabel.CENTER);
     
    726728        plugin_pane = new JPanel();
    727729        remove = new JButton(get("Remove"));
     730        remove.setEnabled(false);
    728731        remove.setMnemonic(KeyEvent.VK_R);
    729732        title = new JLabel(get("Title"));
    730733        title.setHorizontalAlignment(JLabel.CENTER);
    731734        title.setOpaque(true);
    732                 // Listeners
     735        // Listeners
    733736        add.addActionListener(new AddListener());
    734737        configure.addActionListener(new ConfigureListener());
     
    740743        remove.addActionListener(new RemoveListener());
    741744        plugin_list.addMouseListener(new ClickListener());
    742                 // Layout
     745        plugin_list.addListSelectionListener(new ListListener());
     746        // Layout
    743747        title.setBorder(BorderFactory.createEmptyBorder(0,0,2,0));
    744748
     
    907911        }
    908912    }
     913
     914    /** listens for changes in the list selection and enables the configure and remove buttons if there is a selection, disables them if there is no selection */
     915    private class ListListener
     916        implements ListSelectionListener {
     917
     918        public void valueChanged(ListSelectionEvent e) {
     919        if (!e.getValueIsAdjusting()) { // we get two events for one change in list selection - use the false one ( the second one)
     920            if (plugin_list.isSelectionEmpty()) {
     921            configure.setEnabled(false);
     922            remove.setEnabled(false);
     923            } else {
     924            configure.setEnabled(true);
     925            remove.setEnabled(true);
     926            }
     927        }
     928        }
     929    }
     930
    909931    /** Listens for actions apon the move buttons in the manager controls, and if detected calls the <i>movePlugIn()</i> method of the manager with the appropriate details. */
    910932    private class MoveListener
Note: See TracChangeset for help on using the changeset viewer.