Changeset 9331
- Timestamp:
- 2005-03-09T11:20:04+13:00 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/gui/EnrichPane.java
r9166 r9331 108 108 private JButton remove; 109 109 /** The button, which when clicked, updates the selected metadata from the selected records. */ 110 private JButton update;110 private JButton replace; 111 111 /** This button creates an editor dialog to allow for an expanded area to type in text. */ 112 112 private JButton expand; … … 143 143 Dictionary.registerBoth(add, "EnrichPane.Accumulate", "EnrichPane.Accumulate_Tooltip"); 144 144 145 update = new GLIButton();146 update.addActionListener(this);147 update.setEnabled(false);148 update.setMnemonic(KeyEvent.VK_P);149 update.setPreferredSize(Utility.MINIMUM_BUTTON_SIZE);150 Dictionary.registerBoth( update, "EnrichPane.Overwrite", "EnrichPane.Overwrite_Tooltip");145 replace = new GLIButton(); 146 replace.addActionListener(this); 147 replace.setEnabled(false); 148 replace.setMnemonic(KeyEvent.VK_P); 149 replace.setPreferredSize(Utility.MINIMUM_BUTTON_SIZE); 150 Dictionary.registerBoth(replace, "EnrichPane.Overwrite", "EnrichPane.Overwrite_Tooltip"); 151 151 152 152 remove = new GLIButton(); … … 184 184 Object esrc = event.getSource(); 185 185 186 // Add button pressed 187 if (esrc == add) { 186 // One of the metadata editing buttons was pressed 187 if (esrc == add || esrc == replace || esrc == remove) { 188 // Double-check that some files and a metadata element have been selected 189 MetadataValueTableEntry selected_metadata_value_table_entry = metadata_value_table.getSelectedMetadataValueTableEntry(); 190 if (file_nodes == null || selected_metadata_value_table_entry == null) { 191 return; 192 } 193 194 // If we're adding metadata to folders display the warning 195 if (esrc == add && !file_nodes[0].isLeaf()) { 196 WarningDialog dialog = new WarningDialog("warning.DirectoryLevelMetadata", null, true); 197 int dialog_result = dialog.display(); 198 dialog.dispose(); 199 200 if (dialog_result != JOptionPane.OK_OPTION) { 201 return; 202 } 203 } 204 205 // Lock the interface so nothing can be changed while the metadata edit is being processed 206 Gatherer.g_man.wait(true); 207 208 // Add button pressed 209 if (esrc == add) { 210 MetadataElement metadata_element = metadata_value_table.getSelectedMetadataElement(); 211 MetadataValueTreeNode metadata_value_tree_node = metadata_element.addMetadataValue(metadata_value_tree.getSelectedValue()); 212 MetadataValue metadata_value = new MetadataValue(metadata_element, metadata_value_tree_node); 213 metadata_value.setIsAccumulatingMetadata(true); 214 (new AppendMetadataTask(metadata_value)).run(); 215 } 216 217 // Replace button pressed 218 else if (esrc == replace) { 219 MetadataElement metadata_element = metadata_value_table.getSelectedMetadataElement(); 220 MetadataValueTreeNode metadata_value_tree_node = metadata_element.addMetadataValue(metadata_value_tree.getSelectedValue()); 221 MetadataValue metadata_value = new MetadataValue(metadata_element, metadata_value_tree_node); 222 metadata_value.setIsAccumulatingMetadata(!metadata_value_table.getSelectedMetadataValueTableEntry().isInheritedMetadata()); 223 (new ReplaceMetadataTask(metadata_value, selected_metadata_value_table_entry)).run(); 224 } 225 226 // Remove button pressed 227 else if (esrc == remove) { 228 (new RemoveMetadataTask(selected_metadata_value_table_entry)).run(); 229 } 230 231 // Note that the collection's metadata has been changed 188 232 Gatherer.c_man.getCollection().setMetadataChanged(true); 189 MetadataElement metadata_element = metadata_value_table.getSelectedMetadataElement();190 MetadataValueTreeNode metadata_value_tree_node = metadata_element.addMetadataValue(metadata_value_tree.getSelectedValue());191 MetadataValue metadata_value = new MetadataValue(metadata_element, metadata_value_tree_node);192 metadata_value.setIsAccumulatingMetadata(true);193 (new AppendMetadataTask(metadata_value)).start();194 }195 196 // Replace button pressed197 else if (esrc == update) {198 Gatherer.c_man.getCollection().setMetadataChanged(true);199 MetadataElement metadata_element = metadata_value_table.getSelectedMetadataElement();200 MetadataValueTreeNode metadata_value_tree_node = metadata_element.addMetadataValue(metadata_value_tree.getSelectedValue());201 MetadataValue metadata_value = new MetadataValue(metadata_element, metadata_value_tree_node);202 metadata_value.setIsAccumulatingMetadata(!metadata_value_table.getSelectedMetadataValueTableEntry().isInheritedMetadata());203 (new UpdateMetadataTask(metadata_value)).start();204 }205 206 // Remove button pressed207 else if (esrc == remove) {208 Gatherer.c_man.getCollection().setMetadataChanged(true);209 (new RemoveMetadataTask()).start();210 233 } 211 234 … … 530 553 public void run() 531 554 { 532 if (file_nodes == null || metadata_value == null) {533 return;534 }535 536 // If we're adding metadata to folders display the warning537 if (!file_nodes[0].isLeaf()) {538 WarningDialog dialog = new WarningDialog("warning.DirectoryLevelMetadata", null, true);539 int dialog_result = dialog.display();540 dialog.dispose();541 542 if (dialog_result != JOptionPane.OK_OPTION) {543 return;544 }545 }546 547 555 // Edit metadata.xml files to add the metadata 548 556 MetadataXMLFileManager.addMetadata(file_nodes, metadata_value); … … 552 560 metadata_value_table.rebuildAndSelectRowWithValueClosestTo(metadata_value); 553 561 metadata_edit_event = false; 562 563 // Operation finished, so turn busy cursor off 564 Gatherer.g_man.wait(false); 554 565 } 555 566 } 556 567 557 568 558 private class UpdateMetadataTask569 private class ReplaceMetadataTask 559 570 extends Thread 560 571 { 561 572 private MetadataValue metadata_value = null; 562 563 private UpdateMetadataTask(MetadataValue metadata_value) 573 private MetadataValueTableEntry selected_metadata_value_table_entry = null; 574 575 private ReplaceMetadataTask(MetadataValue metadata_value, MetadataValueTableEntry selected_metadata_value_table_entry) 564 576 { 565 577 this.metadata_value = metadata_value; 578 this.selected_metadata_value_table_entry = selected_metadata_value_table_entry; 566 579 } 567 580 568 581 public void run() 569 582 { 570 MetadataValueTableEntry selected_metadata_value_table_entry = metadata_value_table.getSelectedMetadataValueTableEntry();571 if (selected_metadata_value_table_entry == null || file_nodes == null || metadata_value == null) {572 return;573 }574 575 583 // Edit metadata.xml files to replace the metadata 576 584 MetadataXMLFileManager.removeMetadata(file_nodes, selected_metadata_value_table_entry); … … 581 589 metadata_value_table.rebuildAndSelectRowWithValueClosestTo(metadata_value); 582 590 metadata_edit_event = false; 591 592 // Operation finished, so turn busy cursor off 593 Gatherer.g_man.wait(false); 583 594 } 584 595 } … … 588 599 extends Thread 589 600 { 601 private MetadataValueTableEntry selected_metadata_value_table_entry = null; 602 603 private RemoveMetadataTask(MetadataValueTableEntry selected_metadata_value_table_entry) 604 { 605 this.selected_metadata_value_table_entry = selected_metadata_value_table_entry; 606 } 607 590 608 public void run() 591 609 { 592 MetadataValueTableEntry selected_metadata_value_table_entry = metadata_value_table.getSelectedMetadataValueTableEntry();593 if (selected_metadata_value_table_entry == null || file_nodes == null) {594 return;595 }596 597 610 // Edit metadata.xml files to remove the metadata 598 611 MetadataXMLFileManager.removeMetadata(file_nodes, selected_metadata_value_table_entry); … … 602 615 metadata_value_table.rebuildAndSelectRowWithValueClosestTo(selected_metadata_value_table_entry); 603 616 metadata_edit_event = false; 617 618 // Operation finished, so turn busy cursor off 619 Gatherer.g_man.wait(false); 604 620 } 605 621 } … … 1024 1040 button_pane.setLayout(new GridLayout()); 1025 1041 button_pane.add(add); 1026 button_pane.add( update);1042 button_pane.add(replace); 1027 1043 button_pane.add(remove); 1028 1044 … … 1198 1214 1199 1215 // Nothing to replace or remove 1200 update.setEnabled(false);1216 replace.setEnabled(false); 1201 1217 remove.setEnabled(false); 1202 1218 return; … … 1206 1222 if (getSelectedValue().equals(metadata_value_table_entry.getFullValue())) { 1207 1223 // Can't replace 1208 update.setEnabled(false);1224 replace.setEnabled(false); 1209 1225 1210 1226 // Adding, however, is dependant on whether the selected metadata is common or uncommon. If the later then you can append so as to make it common. … … 1214 1230 // Can append or replace, if something has been entered 1215 1231 add.setEnabled((getSelectedValue().length() > 0)); 1216 update.setEnabled((getSelectedValue().length() > 0));1232 replace.setEnabled((getSelectedValue().length() > 0)); 1217 1233 } 1218 1234
Note:
See TracChangeset
for help on using the changeset viewer.