Changeset 10392


Ignore:
Timestamp:
2005-08-02T11:48:28+12:00 (19 years ago)
Author:
mdewsnip
Message:

Now uploads the modified metadata.xml files to the server when metadata is edited.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/src/org/greenstone/gatherer/metadata/MetadataXMLFileManager.java

    r10346 r10392  
    3131import java.util.*;
    3232import org.greenstone.gatherer.DebugStream;
     33import org.greenstone.gatherer.Gatherer;
    3334import org.greenstone.gatherer.collection.CollectionTreeNode;
     35import org.greenstone.gatherer.remote.RemoteGreenstoneServer;
    3436import org.greenstone.gatherer.util.XMLTools;
    3537
     
    4143    /** The objects listening for MetadataChanged events. */
    4244    static private ArrayList metadata_changed_listeners = new ArrayList();
     45    /** Keep track of which metadata.xml files have been modified so we can upload them to the server */
     46    static private ArrayList modified_metadata_xml_files = new ArrayList();
    4347
    4448
     
    6670            applicable_metadata_xml_file_found = true;
    6771            metadata_xml_file.addMetadata(current_file, metadata_value);
     72            if (!modified_metadata_xml_files.contains(metadata_xml_file)) {
     73            modified_metadata_xml_files.add(metadata_xml_file);
     74            }
    6875        }
    6976        }
     
    8087        // ...and add the metadata
    8188        new_metadata_xml_file.addMetadata(current_file, metadata_value);
     89        if (!modified_metadata_xml_files.contains(new_metadata_xml_file)) {
     90            modified_metadata_xml_files.add(new_metadata_xml_file);
     91        }
    8292        }
    8393    }
     
    8595    // Let any listeners know that the metadata has changed
    8696    fireMetadataChangedEvent(file_nodes);
     97
     98    // Upload the modified metadata.xml files to the server, if we're using one
     99    uploadModifiedMetadataXMLFiles();
    87100    }
    88101
     
    266279        if (current_file_directory.getAbsolutePath().startsWith(metadata_xml_file.getParentFile().getAbsolutePath())) {
    267280            metadata_xml_file.removeMetadata(current_file, metadata_value);
     281            if (!modified_metadata_xml_files.contains(metadata_xml_file)) {
     282            modified_metadata_xml_files.add(metadata_xml_file);
     283            }
    268284        }
    269285        }
     
    272288    // Let any listeners know that the metadata has changed
    273289    fireMetadataChangedEvent(file_nodes);
     290
     291    // Upload the modified metadata.xml files to the server, if we're using one
     292    uploadModifiedMetadataXMLFiles();
    274293    }
    275294
     
    296315        if (current_file_directory.getAbsolutePath().equals(metadata_xml_file.getParentFile().getAbsolutePath())) {
    297316            metadata_xml_file.replaceMetadata(current_file, old_metadata_value, new_metadata_value);
     317            if (!modified_metadata_xml_files.contains(metadata_xml_file)) {
     318            modified_metadata_xml_files.add(metadata_xml_file);
     319            }
    298320        }
    299321        }
     
    302324    // Let any listeners know that the metadata has changed
    303325    fireMetadataChangedEvent(file_nodes);
     326
     327    // Upload the modified metadata.xml files to the server, if we're using one
     328    uploadModifiedMetadataXMLFiles();
    304329    }
    305330
     
    318343    }
    319344    }
     345
     346
     347    static private void uploadModifiedMetadataXMLFiles()
     348    {
     349    // This is only necessary when the collection is stored on a remote server
     350    if (Gatherer.isGsdlRemote) {
     351        if (modified_metadata_xml_files.isEmpty()) {
     352        DebugStream.println("No modified metadata.xml files to upload.");
     353        return;
     354        }
     355
     356        // Upload the files modified since last time, then reset the list
     357        RemoteGreenstoneServer.uploadCollectionFiles((File[]) modified_metadata_xml_files.toArray(new File[0]));
     358        modified_metadata_xml_files.clear();
     359    }
     360    }
    320361}
Note: See TracChangeset for help on using the changeset viewer.