Changeset 11301


Ignore:
Timestamp:
2006-03-03T12:27:47+13:00 (18 years ago)
Author:
mdewsnip
Message:

Now detects and prevents you from editing metadata in metadata.xml files that applies to multiple files (ie. the FileSet element includes wildcards).

Location:
trunk/gli
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/classes/dictionary.properties

    r11246 r11301  
    404404EnrichPane.No_Metadata:No Metadata Available
    405405EnrichPane.No_Metadata_Element:<HTML><STRONG><FONT FACE={FONT} COLOR=Black>No Metadata Element Selected</FONT></STRONG></HTML>
     406EnrichPane.NotOneFileOnlyMetadataSelected:This piece of metadata does not apply only to this file, and cannot be edited.
    406407EnrichPane.Value_Field_Tooltip:Value to assign to the selected metadata element
    407408EnrichPane.Value_Field_Tooltip_Uneditable:Value assigned to the selected metadata element
  • trunk/gli/src/org/greenstone/gatherer/gui/MetadataValueTreePane.java

    r9871 r11301  
    8585    /** The name of the panel containing the "inherited metadata selected" placeholder */
    8686    private String INHERITED_METADATA_SELECTED_CARD = "Inherited metadata selected";
     87    /** The name of the panel containing the "not only file only metadata selected" placeholder */
     88    private String NOT_ONE_FILE_ONLY_METADATA_SELECTED_CARD = "Not one file only metadata selected";
    8789    /** The name of the panel containing the "no metadata element selected" placeholder */
    8890    private String NO_METADATA_ELEMENT_SELECTED_CARD = "No metadata element selected";
     
    134136    inherited_metadata_selected_pane.add(inherited_metadata_selected_message, BorderLayout.CENTER);
    135137
     138    // Card containing the "not one file only metadata selected" message
     139    JTextArea not_one_file_only_metadata_selected_message = new JTextArea("");
     140    not_one_file_only_metadata_selected_message.setEditable(false);
     141    not_one_file_only_metadata_selected_message.setLineWrap(true);
     142    not_one_file_only_metadata_selected_message.setOpaque(false);
     143    not_one_file_only_metadata_selected_message.setWrapStyleWord(true);
     144    Dictionary.registerText(not_one_file_only_metadata_selected_message, "EnrichPane.NotOneFileOnlyMetadataSelected");
     145
     146    JPanel not_one_file_only_metadata_selected_pane = new JPanel();
     147    not_one_file_only_metadata_selected_pane.setBorder(BorderFactory.createEmptyBorder(25,0,0,0));
     148    not_one_file_only_metadata_selected_pane.setLayout(new BorderLayout());
     149    not_one_file_only_metadata_selected_pane.add(not_one_file_only_metadata_selected_message, BorderLayout.CENTER);
     150
    136151    // Card containing the "no metadata element selected" message
    137152    JLabel no_metadata_element_selected_label = new JLabel();
     
    153168    this.add(extracted_metadata_element_selected_pane, EXTRACTED_METADATA_ELEMENT_SELECTED_CARD);
    154169    this.add(inherited_metadata_selected_pane, INHERITED_METADATA_SELECTED_CARD);
     170    this.add(not_one_file_only_metadata_selected_pane, NOT_ONE_FILE_ONLY_METADATA_SELECTED_CARD);
    155171    this.add(metadata_value_tree_pane, METADATA_VALUE_TREE_CARD);
    156172    }
     
    243259    }
    244260
     261    // If the metadata applies to multiple files, display "not one file only metadata selected" card and we're done
     262    if (new_metadata_value.isOneFileOnlyMetadata() == false) {
     263        card_layout.show(this, NOT_ONE_FILE_ONLY_METADATA_SELECTED_CARD);
     264        return;
     265    }
     266
    245267    // If an extracted metadata element is selected, display "extracted metadata element selected" card
    246268    MetadataElement new_metadata_element = new_metadata_value.getMetadataElement();
  • trunk/gli/src/org/greenstone/gatherer/metadata/MetadataValue.java

    r8164 r11301  
    4040    private MetadataValueTreeNode metadata_value_tree_node = null;
    4141    private boolean is_accumulating_metadata = false;
     42    /** Whether this metadata applies to only one file (ie. there are no wildcards in the FileSet value) */
     43    private boolean is_one_file_only_metadata = true;
    4244
    4345
     
    112114
    113115
     116    public boolean isOneFileOnlyMetadata()
     117    {
     118    return is_one_file_only_metadata;
     119    }
     120
     121
    114122    public void setIsAccumulatingMetadata(boolean is_accumulating_metadata)
    115123    {
    116124    this.is_accumulating_metadata = is_accumulating_metadata;
    117125    }
     126
     127
     128    public void setIsOneFileOnlyMetadata(boolean is_one_file_only_metadata)
     129    {
     130    this.is_one_file_only_metadata = is_one_file_only_metadata;
     131    }
    118132}
  • trunk/gli/src/org/greenstone/gatherer/metadata/MetadataValueTableEntry.java

    r9856 r11301  
    4747    this(metadata_value.getMetadataElement(), metadata_value.getMetadataValueTreeNode());
    4848    inheritsMetadataFromFolder(metadata_value.getFolderMetadataInheritedFrom());
     49    setIsOneFileOnlyMetadata(metadata_value.isOneFileOnlyMetadata());
    4950    }
    5051
  • trunk/gli/src/org/greenstone/gatherer/metadata/MetadataXMLFile.java

    r11240 r11301  
    196196        Element current_fileset_element = (Element) fileset_elements_nodelist.item(i);
    197197        boolean current_fileset_matches = false;
     198        boolean is_one_file_only_metadata = true;
    198199        File folder_metadata_inherited_from = null;
    199200
     
    203204        Element current_filename_element = (Element) filename_elements_nodelist.item(j);
    204205        String current_filename_element_value = XMLTools.getElementTextValue(current_filename_element);
     206
     207        // Does this fileset specify metadata for one file only?
     208        is_one_file_only_metadata = true;
     209        if (current_filename_element_value.indexOf("*") != -1) {
     210            is_one_file_only_metadata = false;
     211        }
    205212
    206213        // This fileset specifies metadata for the file
     
    275282        MetadataValue metadata_value = new MetadataValue(metadata_element, metadata_value_tree_node);
    276283        metadata_value.inheritsMetadataFromFolder(folder_metadata_inherited_from);
     284        metadata_value.setIsOneFileOnlyMetadata(is_one_file_only_metadata);
    277285
    278286        // Is this accumulating metadata?
Note: See TracChangeset for help on using the changeset viewer.