Changeset 10392
- Timestamp:
- 2005-08-02T11:48:28+12:00 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/metadata/MetadataXMLFileManager.java
r10346 r10392 31 31 import java.util.*; 32 32 import org.greenstone.gatherer.DebugStream; 33 import org.greenstone.gatherer.Gatherer; 33 34 import org.greenstone.gatherer.collection.CollectionTreeNode; 35 import org.greenstone.gatherer.remote.RemoteGreenstoneServer; 34 36 import org.greenstone.gatherer.util.XMLTools; 35 37 … … 41 43 /** The objects listening for MetadataChanged events. */ 42 44 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(); 43 47 44 48 … … 66 70 applicable_metadata_xml_file_found = true; 67 71 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 } 68 75 } 69 76 } … … 80 87 // ...and add the metadata 81 88 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 } 82 92 } 83 93 } … … 85 95 // Let any listeners know that the metadata has changed 86 96 fireMetadataChangedEvent(file_nodes); 97 98 // Upload the modified metadata.xml files to the server, if we're using one 99 uploadModifiedMetadataXMLFiles(); 87 100 } 88 101 … … 266 279 if (current_file_directory.getAbsolutePath().startsWith(metadata_xml_file.getParentFile().getAbsolutePath())) { 267 280 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 } 268 284 } 269 285 } … … 272 288 // Let any listeners know that the metadata has changed 273 289 fireMetadataChangedEvent(file_nodes); 290 291 // Upload the modified metadata.xml files to the server, if we're using one 292 uploadModifiedMetadataXMLFiles(); 274 293 } 275 294 … … 296 315 if (current_file_directory.getAbsolutePath().equals(metadata_xml_file.getParentFile().getAbsolutePath())) { 297 316 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 } 298 320 } 299 321 } … … 302 324 // Let any listeners know that the metadata has changed 303 325 fireMetadataChangedEvent(file_nodes); 326 327 // Upload the modified metadata.xml files to the server, if we're using one 328 uploadModifiedMetadataXMLFiles(); 304 329 } 305 330 … … 318 343 } 319 344 } 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 } 320 361 }
Note:
See TracChangeset
for help on using the changeset viewer.