Changeset 7550


Ignore:
Timestamp:
2004-06-03T14:11:01+12:00 (20 years ago)
Author:
mdewsnip
Message:

Tidied up the little interface for specifying multiple metadata elements, then turned it off at Ian's request.

File:
1 edited

Legend:

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

    r7543 r7550  
    446446        break;
    447447        case Argument.METADATUM:
     448        case Argument.METADATA:
    448449        value = new GComboBox(Gatherer.c_man.getCollection().msm.getAssignedElements(), false);
    449450
     
    466467        }
    467468        break;
    468         case Argument.METADATA:
    469         // Comma separated metadata values.
    470         ArrayList values = argument.getValues();
    471         value = new GComboBox(Gatherer.c_man.getCollection().msm.getAssignedElements(), false);
    472         //((JComboBox)value).setEditable(false);
    473         DefaultListModel model = new DefaultListModel();
    474         list = new JList(model);
    475         list.setVisibleRowCount(3);
    476         for(int i = 0; i < values.size(); i++) {
    477             model.addElement(values.get(i));
    478         }
    479 
    480         one = new GLIButton();
    481         one.addActionListener(new AddListener((JComboBox)value, list));
    482         one.setMnemonic(KeyEvent.VK_A);
    483         Dictionary.setBoth(one, "CDM.ArgumentConfiguration.Add", "CDM.ArgumentConfiguration.Add_Tooltip");
    484         two = new GLIButton();
    485         two.addActionListener(new RemoveListener(list));
    486         two.setMnemonic(KeyEvent.VK_R);
    487         Dictionary.setBoth(two, "CDM.ArgumentConfiguration.Remove", "CDM.ArgumentConfiguration.Remove_Tooltip");
    488 
    489         if(argument.getValues().size() > 0 || argument.isRequired()) {
    490             enabled.setSelected(true);
    491             list.setBackground(Color.white);
    492             list.setEnabled(true);
    493             one.setEnabled(true);
    494             two.setEnabled(true);
    495             value.setEnabled(true);
    496         }
    497         else {
    498             enabled.setSelected(false);
    499             list.setBackground(Color.lightGray);
    500             list.setEnabled(false);
    501             one.setEnabled(false);
    502             two.setEnabled(false);
    503             value.setEnabled(false);
    504         }
    505         break;
     469// ---- Special interface for adding and ordering multiple metadata items ----
     470// Turned off at Ian's request!
     471//          case Argument.METADATA:
     472//          // Comma separated metadata values.
     473//          ArrayList values = argument.getValues();
     474//          value = new GComboBox(Gatherer.c_man.getCollection().msm.getAssignedElements(), false);
     475//          //((JComboBox)value).setEditable(false);
     476//          DefaultListModel model = new DefaultListModel();
     477//          list = new JList(model);
     478//          list.setVisibleRowCount(3);
     479//          for(int i = 0; i < values.size(); i++) {
     480//              model.addElement(values.get(i));
     481//          }
     482
     483//          one = new GLIButton();
     484//          one.addActionListener(new AddListener((JComboBox)value, list));
     485//          one.setMnemonic(KeyEvent.VK_A);
     486//          Dictionary.setBoth(one, "CDM.ArgumentConfiguration.Add", "CDM.ArgumentConfiguration.Add_Tooltip");
     487//          two = new GLIButton();
     488//          two.addActionListener(new RemoveListener(list));
     489//          two.setMnemonic(KeyEvent.VK_R);
     490//          Dictionary.setBoth(two, "CDM.ArgumentConfiguration.Remove", "CDM.ArgumentConfiguration.Remove_Tooltip");
     491
     492//          if(argument.getValues().size() > 0 || argument.isRequired()) {
     493//              enabled.setSelected(true);
     494//              list.setBackground(Color.white);
     495//              list.setEnabled(true);
     496//              one.setEnabled(true);
     497//              two.setEnabled(true);
     498//              value.setEnabled(true);
     499//          }
     500//          else {
     501//              enabled.setSelected(false);
     502//              list.setBackground(Color.lightGray);
     503//              list.setEnabled(false);
     504//              one.setEnabled(false);
     505//              two.setEnabled(false);
     506//              value.setEnabled(false);
     507//          }
     508//          break;
    506509        } // end of switch
    507510
     
    547550        enabled.addActionListener(new EnabledListener(one, two, list, value));
    548551        }
     552
    549553        // Layout
    550         if(list == null) {
     554        inner_pane.setLayout(new BorderLayout());
     555        if (argument.isRequired()) {
     556        inner_pane.add(label, BorderLayout.WEST);
     557        }
     558        else {
     559        inner_pane.add(enabled, BorderLayout.WEST);
     560        }
     561
     562        if (list == null) {
    551563        enabled.setBorder(BorderFactory.createEmptyBorder(0,0,5,0));
    552         inner_pane.setLayout(new BorderLayout());
    553         if(argument.isRequired()) {
    554             inner_pane.add(label, BorderLayout.WEST);
    555         }
    556         else {
    557             inner_pane.add(enabled, BorderLayout.WEST);
    558         }
    559         if(value != null) {
     564        if (value != null) {
    560565            inner_pane.add(value, BorderLayout.CENTER);
    561566        }
    562567        }
    563568        else {
    564         JPanel control_pane = new JPanel(new GridLayout(2,1));
    565         control_pane.add(enabled);
    566         control_pane.add(value);
    567         control_pane.setOpaque(false);
    568 
    569569        JPanel left_pane = new JPanel(new BorderLayout());
    570         left_pane.add(control_pane, BorderLayout.CENTER);
     570        left_pane.add(new JLabel(""), BorderLayout.NORTH);
     571        left_pane.add(value, BorderLayout.CENTER);
    571572        left_pane.add(one, BorderLayout.SOUTH);
    572573        left_pane.setOpaque(false);
     
    577578        right_pane.setOpaque(false);
    578579
    579         inner_pane.setLayout(new GridLayout(1,2));
    580         inner_pane.add(left_pane);
    581         inner_pane.add(right_pane);
    582         }
     580        JPanel control_pane = new JPanel(new GridLayout(1, 2));
     581        control_pane.add(left_pane);
     582        control_pane.add(right_pane);
     583
     584        inner_pane.add(control_pane, BorderLayout.CENTER);
     585        }
     586
    583587        setLayout(new BorderLayout());
    584         //add(owner_label, BorderLayout.NORTH);
    585588        add(inner_pane, BorderLayout.CENTER);
    586589    }
     
    682685            return true;
    683686        case Argument.METADATUM:
     687        case Argument.METADATA:
    684688            Object new_value_raw = ((JComboBox)value).getSelectedItem();
    685689            if(new_value_raw instanceof ElementWrapper) {
     
    711715            argument.setAssigned(true);
    712716            return true;
     717//          case Argument.METADATA:
     718//              DefaultListModel model = (DefaultListModel)list.getModel();
     719//              ArrayList values = new ArrayList();
     720//              for(int i = 0; i < model.size(); i++) {
     721//              values.add(model.get(i));
     722//              }
     723//              argument.setValues(values);
     724//              argument.setAssigned(true);
     725//              return true;
    713726        case Argument.HIERARCHY:
    714727            argument.setValue(((JComboBox)value).getSelectedItem().toString());
    715728            // Kinda lucked out here. Its impossible not to choose an entry from these comboboxes as they are restricted.
    716             argument.setAssigned(true);
    717             return true;
    718         case Argument.METADATA:
    719             DefaultListModel model = (DefaultListModel)list.getModel();
    720             ArrayList values = new ArrayList();
    721             for(int i = 0; i < model.size(); i++) {
    722             values.add(model.get(i));
    723             }
    724             argument.setValues(values);
    725729            argument.setAssigned(true);
    726730            return true;
     
    824828        ElementWrapper element = (ElementWrapper) source.getSelectedItem();
    825829        String name = element.toString();
    826         if(!model.contains(name)) {
    827             boolean found = false;
    828             int index = 0;
    829             while(!found && index < model.size()) {
    830             String sibling = (String) model.get(index);
    831             if(name.compareTo(sibling) < 0) {
    832                 model.add(index, name);
    833                 found = true;
    834             }
    835             else {
    836                 index++;
    837             }
    838             }
    839             if(!found) {
    840             model.addElement(name);
    841             }
     830        if (!model.contains(name)) {
     831            model.addElement(name);
    842832        }
    843833        }
Note: See TracChangeset for help on using the changeset viewer.