Changeset 4526


Ignore:
Timestamp:
2003-06-09T16:13:37+12:00 (21 years ago)
Author:
mdewsnip
Message:

Moved the functionality of the "replace" and "remove" buttons into their own thread, in the same way as the "append" button. This (hopefully) will mean no more nasty AWT deadlocks.

File:
1 edited

Legend:

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

    r4522 r4526  
    210210    }
    211211    else if(esrc == update) {
    212         // You can only update if there is a selected_metadata and
    213         // you have valid values in all fields.
    214         ElementWrapper element = tree.getSelectedMetadataElement();
    215         String value = tree.getSelectedValue();
    216         if(selected_metadata != null && records != null && element != null && value != null) {
    217         selected_metadata = Gatherer.c_man.getCollection().msm.updateMetadata(System.currentTimeMillis(), selected_metadata, records, value, MetaEditPrompt.OVERWRITE, selected_metadata.isFileLevel());
    218         }
    219         GValueNode value_node = ((GValueModel) tree.getModel()).addValue(value);
    220         model.setSelectedMetadata(new Metadata(element, value_node));
     212        (new UpdateMetadataTask()).start();
    221213    }
    222214    else if(esrc == remove) {
    223         if(selected_metadata != null && records != null) {
    224         Gatherer.c_man.getCollection().msm.removeMetadata(System.currentTimeMillis(), selected_metadata, records);
    225         }
     215        (new RemoveMetadataTask()).start();
    226216    }
    227217    else if(esrc == expand) {
     
    241231    extends Thread {
    242232
    243     AppendMetadataTask() {
    244     }
     233    public AppendMetadataTask() { }
    245234
    246235    public void run() {
     
    262251        }
    263252        GValueNode value_node = ((GValueModel) tree.getModel()).addValue(value);
    264         System.err.println("Back from model.addValue()...");
    265253        model.setSelectedMetadata(new Metadata(element, value_node));
    266         System.err.println("Done setSelectedMetadata()...");
     254        }
     255    }
     256    }
     257
     258    private class UpdateMetadataTask
     259    extends Thread {
     260
     261    public UpdateMetadataTask() { }
     262
     263    public void run() {
     264        // You can only update if there is a selected_metadata and
     265        // you have valid values in all fields.
     266        ElementWrapper element = tree.getSelectedMetadataElement();
     267        String value = tree.getSelectedValue();
     268        if(selected_metadata != null && records != null && element != null && value != null) {
     269        selected_metadata = Gatherer.c_man.getCollection().msm.updateMetadata(System.currentTimeMillis(), selected_metadata, records, value, MetaEditPrompt.OVERWRITE, selected_metadata.isFileLevel());
     270        }
     271        GValueNode value_node = ((GValueModel) tree.getModel()).addValue(value);
     272        model.setSelectedMetadata(new Metadata(element, value_node));
     273    }
     274    }
     275
     276    private class RemoveMetadataTask
     277    extends Thread {
     278
     279    public RemoveMetadataTask() { }
     280
     281    public void run() {
     282        if(selected_metadata != null && records != null) {
     283        Gatherer.c_man.getCollection().msm.removeMetadata(System.currentTimeMillis(), selected_metadata, records);
    267284        }
    268285    }
Note: See TracChangeset for help on using the changeset viewer.