Changeset 6324


Ignore:
Timestamp:
2003-12-19T14:53:47+13:00 (20 years ago)
Author:
jmt12
Message:

Now whenever a JSpinner loses focus prematurely, a mouse listener ensures that changes are commited before the focus lose is processed

File:
1 edited

Legend:

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

    r6087 r6324  
    3838import org.greenstone.gatherer.cdm.CollectionDesignManager;
    3939import org.greenstone.gatherer.cdm.PlugIn;
     40import org.greenstone.gatherer.gui.GComboBox;
     41import org.greenstone.gatherer.gui.GLIButton;
    4042import org.greenstone.gatherer.gui.ModalDialog;
    4143import org.greenstone.gatherer.gui.SimpleMenuBar;
     
    118120
    119121    JPanel button_pane = new JPanel();
    120     cancel = new JButton();
     122    cancel = new GLIButton();
    121123    cancel.setMnemonic(KeyEvent.VK_C);
    122124    Dictionary.setBoth(cancel, "General.Cancel", "General.Pure_Cancel_Tooltip");
    123     ok = new JButton();
     125    ok = new GLIButton();
    124126    ok.setMnemonic(KeyEvent.VK_O);
    125127    Dictionary.setBoth(ok, "General.OK", "General.OK_Tooltip");
     
    324326        }
    325327        Collections.sort(options_model);
    326         value = new JComboBox(options_model.toArray());
    327         ((JComboBox)value).setEditable(true);
     328        value = new GComboBox(options_model.toArray(), false);
     329        //((JComboBox)value).setEditable(false);
    328330        ((JComboBox)value).addActionListener(new ToolTipUpdater());
    329         if(existing_value != null) {
     331        if(existing_value != null && existing_value.length() > 0) {
    330332            // Select the correct value. Since they're all text strings we better iterate to be safe.
    331333            selectValue((JComboBox)value, existing_value);
    332334        }
    333335        else if(default_value != null) {
     336            ///ystem.err.println("Default for argument: " + argument.getName());
    334337            // Same as above except for default value.
    335338            selectValue((JComboBox)value, default_value);
     
    340343        break;
    341344        case Argument.HIERARCHY:
    342         value = new JComboBox(Gatherer.c_man.getCollection().msm.getAssignedElements(true));
     345        value = new GComboBox(Gatherer.c_man.getCollection().msm.getAssignedElements(true), false);
    343346        /** @TODO - figure out a smarter way of allowing Greenstone extracted metadata to be selected. */
    344         ((JComboBox)value).setEditable(true);
     347        //((JComboBox)value).setEditable(false);
    345348        ((JComboBox)value).addItemListener(new HierarchyListener());
    346349        // Now ensure we have the existing value or default value selected if either exist.
    347         if(existing_value != null) {
     350        if(existing_value != null && existing_value.length() > 0) {
    348351            selectValue((JComboBox)value, existing_value);
    349352        }
     
    375378        case Argument.STRING:
    376379        // Use a standard text field
    377         if(existing_value != null) {
     380        if(existing_value != null && existing_value.length() > 0) {
    378381            value = new JTextField(existing_value);
    379382        }
     
    405408        break;
    406409        case Argument.LANGUAGE:
    407         value = new JComboBox(CollectionDesignManager.language_manager.getLanguageCodes().toArray());
     410        value = new GComboBox(CollectionDesignManager.language_manager.getLanguageCodes().toArray(), false);
     411        //((JComboBox)value).setEditable(false);
    408412        // Now ensure we have the existing value or default value selected if either exist.
    409413        Language selected = null;
    410         if(existing_value != null) {
     414        if(existing_value != null && existing_value.length() > 0) {
    411415            selected = CollectionDesignManager.language_manager.getLanguage(existing_value);
    412416        }
     
    419423        break;
    420424        case Argument.METADATUM:
    421         value = new JComboBox(Gatherer.c_man.getCollection().msm.getAssignedElements());
     425        value = new GComboBox(Gatherer.c_man.getCollection().msm.getAssignedElements(), false);
     426        //((JComboBox)value).setEditable(false);
    422427        //((JComboBox)value).setEditable(true);
    423428        // Now ensure we have the existing value or default value selected if either exist.
    424         if(existing_value != null) {
     429        if(existing_value != null && existing_value.length() > 0) {
    425430            boolean found = selectValue((JComboBox)value, existing_value);
    426431            // Its possible that this is a custom value and so doesn't exist in the combobox. If so add it and then select it
     
    437442        // Comma separated metadata values.
    438443        ArrayList values = argument.getValues();
    439         value = new JComboBox(Gatherer.c_man.getCollection().msm.getAssignedElements());
     444        value = new GComboBox(Gatherer.c_man.getCollection().msm.getAssignedElements(), false);
     445        //((JComboBox)value).setEditable(false);
    440446        DefaultListModel model = new DefaultListModel();
    441447        list = new JList(model);
     
    445451        }
    446452
    447         one = new JButton();
     453        one = new GLIButton();
    448454        one.addActionListener(new AddListener((JComboBox)value, list));
     455        one.setMnemonic(KeyEvent.VK_A);
    449456        Dictionary.setBoth(one, "CDM.ArgumentConfiguration.Add", "CDM.ArgumentConfiguration.Add_Tooltip");
    450         two = new JButton();
     457        two = new GLIButton();
    451458        two.addActionListener(new RemoveListener(list));
     459        two.setMnemonic(KeyEvent.VK_R);
    452460        Dictionary.setBoth(two, "CDM.ArgumentConfiguration.Remove", "CDM.ArgumentConfiguration.Remove_Tooltip");
    453461
     
    655663            // But we have to be careful as an arbitary string object could be zero length
    656664            String new_value = new_value_raw.toString();
    657             System.err.println("The current value is: " + new_value);
     665            ///ystem.err.println("The current value is: " + new_value);
    658666            if(new_value.length() > 0) {
    659667                argument.setValue(new_value);
     
    727735     */
    728736    public boolean selectValue(JComboBox combobox, String target) {
     737        ///ystem.err.println("Searching for the target string: " + target);
    729738        for(int i = 0; i < combobox.getItemCount(); i++) {
    730739        Object object = combobox.getItemAt(i);
    731740        if(object instanceof ListOption) {
    732741            ListOption lo = (ListOption) object;
    733             if(lo.getValue().equals(target)) {
     742            ///ystem.err.print("/tChecking: " + lo.getValue() + "... ");
     743            if(lo.getValue().startsWith(target)) {
     744            ///ystem.err.println("Match!");
    734745            combobox.setSelectedIndex(i);
    735746            return true;
    736747            }
     748            /*
     749            else {
     750            System.err.println("No Match.");
     751            }
     752            */
    737753        }
    738754        else if(object instanceof ElementWrapper) {
     
    9871003        public void actionPerformed(ActionEvent event) {
    9881004        JComboBox source = (JComboBox)event.getSource();
    989         ListOption lo = (ListOption)source.getSelectedItem();
    990         if(lo != null) {
    991            String description = Utility.formatHTMLWidth(lo.getDesc(), 60);
    992            source.setToolTipText(description);
    993         }
    994         else {
    995            source.setToolTipText(StaticStrings.EMPTY_STR);
     1005        Object object = source.getSelectedItem();
     1006        if(object instanceof ListOption) {
     1007            ListOption lo = (ListOption)object;
     1008            if(lo != null) {
     1009            String description = Utility.formatHTMLWidth(lo.getDesc(), 60);
     1010            source.setToolTipText(description);
     1011            }
     1012            else {
     1013            source.setToolTipText(StaticStrings.EMPTY_STR);
     1014            }
    9961015        }
    9971016        }
Note: See TracChangeset for help on using the changeset viewer.