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

File:
1 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            */
Note: See TracChangeset for help on using the changeset viewer.