Changeset 4519


Ignore:
Timestamp:
2003-06-09T13:00:47+12:00 (21 years ago)
Author:
mdewsnip
Message:

Moved the functionality of the "Append" button into a new thread, to hopefully prevent some nasty AWT deadlocks. Not very confident about it.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/src/org/greenstone/gatherer/gui/MetaEditPane.java

    r4514 r4519  
    205205    Object esrc = event.getSource();
    206206    if(esrc == add) {
     207        (new AppendMetadataTask()).start();
     208    }
     209    else if(esrc == update) {
     210        // You can only update if there is a selected_metadata and
     211        // you have valid values in all fields.
     212        ElementWrapper element = tree.getSelectedMetadataElement();
     213        String value = tree.getSelectedValue();
     214        if(selected_metadata != null && records != null && element != null && value != null) {
     215        selected_metadata = Gatherer.c_man.getCollection().msm.updateMetadata(System.currentTimeMillis(), selected_metadata, records, value, MetaEditPrompt.OVERWRITE, selected_metadata.isFileLevel());
     216        }
     217        GValueNode value_node = ((GValueModel) tree.getModel()).addValue(value);
     218        model.setSelectedMetadata(new Metadata(element, value_node));
     219    }
     220    else if(esrc == remove) {
     221        if(selected_metadata != null && records != null) {
     222        Gatherer.c_man.getCollection().msm.removeMetadata(System.currentTimeMillis(), selected_metadata, records);
     223        }
     224    }
     225    else if(esrc == expand) {
     226        EditorDialog ed = new EditorDialog();
     227        String temp = ed.display(tree.getSelectedValue());
     228        if(temp != null) {
     229        tree.setSelectedValue(temp);
     230        }
     231    }
     232    //else if(esrc == assigned_metadata_view || esrc == unassigned_metadata_view) {
     233    //  model.changeView();
     234    //}
     235    validateControls();
     236    }
     237
     238    private class AppendMetadataTask
     239    extends Thread {
     240
     241    AppendMetadataTask() {
     242    }
     243
     244    public void run() {
    207245        // Check the new metadata is valid
    208246        ElementWrapper element = tree.getSelectedMetadataElement();
     
    222260        }
    223261        GValueNode value_node = ((GValueModel) tree.getModel()).addValue(value);
     262        System.err.println("Back from model.addValue()...");
    224263        model.setSelectedMetadata(new Metadata(element, value_node));
    225         }
    226     }
    227     else if(esrc == update) {
    228         // You can only update if there is a selected_metadata and
    229         // you have valid values in all fields.
    230         ElementWrapper element = tree.getSelectedMetadataElement();
    231         String value = tree.getSelectedValue();
    232         if(selected_metadata != null && records != null && element != null && value != null) {
    233         selected_metadata = Gatherer.c_man.getCollection().msm.updateMetadata(System.currentTimeMillis(), selected_metadata, records, value, MetaEditPrompt.OVERWRITE, selected_metadata.isFileLevel());
    234         }
    235         GValueNode value_node = ((GValueModel) tree.getModel()).addValue(value);
    236         model.setSelectedMetadata(new Metadata(element, value_node));
    237     }
    238     else if(esrc == remove) {
    239         if(selected_metadata != null && records != null) {
    240         Gatherer.c_man.getCollection().msm.removeMetadata(System.currentTimeMillis(), selected_metadata, records);
    241         }
    242     }
    243     else if(esrc == expand) {
    244         EditorDialog ed = new EditorDialog();
    245         String temp = ed.display(tree.getSelectedValue());
    246         if(temp != null) {
    247         tree.setSelectedValue(temp);
    248         }
    249     }
    250     //else if(esrc == assigned_metadata_view || esrc == unassigned_metadata_view) {
    251     //  model.changeView();
    252     //}
    253     validateControls();
    254     }
     264        System.err.println("Done setSelectedMetadata()...");
     265        }
     266    }
     267    }
     268
    255269    /** Some actions can only occur after this panel has been displayed on-screen, so this method is provided to do exactly that. Such actions include the proportioning of the split panes and the setting of table column widths.
    256270    * @see org.greenstone.gatherer.gui.table.GTableModel
Note: See TracChangeset for help on using the changeset viewer.