Changeset 8023 for trunk/gli/src
- Timestamp:
- 2004-08-23T16:02:45+12:00 (20 years ago)
- Location:
- trunk/gli/src/org/greenstone/gatherer
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/gui/MetadataValueTableCellRenderer.java
r7983 r8023 8 8 import org.greenstone.gatherer.Gatherer; 9 9 import org.greenstone.gatherer.metadata.MetadataElement; 10 import org.greenstone.gatherer.metadata.MetadataTools; 10 11 import org.greenstone.gatherer.metadata.MetadataValueTableModel; 11 12 import org.greenstone.gatherer.util.Utility; … … 75 76 } 76 77 77 // We set a tooltip over the element column containing the de scription of the element78 // We set a tooltip over the element column containing the definition of the element 78 79 if (value instanceof MetadataElement) { 79 renderer.setToolTipText(Utility.formatHTMLWidth(((MetadataElement) value).getDescription(), 60)); 80 String interface_language_code = Gatherer.config.getLanguage(); 81 String metadata_element_definition = MetadataTools.getMetadataElementAttribute((MetadataElement) value, "definition", interface_language_code, "en"); 82 if (metadata_element_definition != null) { 83 renderer.setToolTipText(Utility.formatHTMLWidth(metadata_element_definition, 60)); 84 } 80 85 } 81 86 -
trunk/gli/src/org/greenstone/gatherer/metadata/DocXMLFile.java
r8021 r8023 170 170 MetadataElement metadata_element = extracted_metadata_set.getMetadataElement(metadata_element_name_full); 171 171 if (metadata_element == null) { 172 metadata_element_name_full = metadata_set_namespace + MetadataTools.NAMESPACE_SEPARATOR + metadata_element_name_full;173 metadata_element = new MetadataElement(metadata_element_name_full, null);172 // This element isn't defined in ex.mds, so we're uninterested 173 continue; 174 174 } 175 175 -
trunk/gli/src/org/greenstone/gatherer/metadata/MetadataElement.java
r7978 r8023 1 1 package org.greenstone.gatherer.metadata; 2 3 4 import org.greenstone.gatherer.util.XMLTools; 5 import org.w3c.dom.*; 2 6 3 7 … … 6 10 { 7 11 private String metadata_element_name_full = null; 8 private String metadata_element_description= null;12 private Element metadata_element_element = null; 9 13 private MetadataValueTreeModel metadata_value_tree_model = null; 10 14 11 15 12 public MetadataElement(String metadata_element_name_full, String metadata_element_description)16 public MetadataElement(String metadata_element_name_full, Element metadata_element_element) 13 17 { 14 18 this.metadata_element_name_full = metadata_element_name_full; 15 this.metadata_element_ description = metadata_element_description;19 this.metadata_element_element = metadata_element_element; 16 20 this.metadata_value_tree_model = new MetadataValueTreeModel(this); 17 21 } … … 24 28 25 29 26 public String get Description()30 public String getAttribute(String attribute_name, String language_code) 27 31 { 28 return metadata_element_description; 32 // Some extracted metadata elements may not be in ex.mds, and so have no attributes 33 // if (metadata_element_element == null) { 34 // return null; 35 // } 36 37 Element parent_element = metadata_element_element; 38 boolean language_matches = false; 39 40 NodeList language_elements_nodelist = metadata_element_element.getElementsByTagName("Language"); 41 for (int i = 0; i < language_elements_nodelist.getLength(); i++) { 42 Element current_language_element = (Element) language_elements_nodelist.item(i); 43 String current_language_element_code = current_language_element.getAttribute("code"); 44 if (current_language_element_code.equals(language_code)) { 45 // Found language; use it for the next step 46 parent_element = current_language_element; 47 language_matches = true; 48 break; 49 } 50 } 51 52 NodeList attribute_elements_nodelist = parent_element.getElementsByTagName("Attribute"); 53 for (int i = 0; i < attribute_elements_nodelist.getLength(); i++) { 54 Element current_attribute_element = (Element) attribute_elements_nodelist.item(i); 55 String current_attribute_element_name = current_attribute_element.getAttribute("name"); 56 if (!current_attribute_element_name.equals(attribute_name)) { 57 // Move on to the next Attribute element if the name doesn't match 58 continue; 59 } 60 61 // Check if the language matches 62 String current_attribute_element_language = current_attribute_element.getAttribute("language"); 63 if (language_matches || current_attribute_element_language.equals(language_code)) { 64 // Found attribute; returns its value 65 return XMLTools.getElementTextValue(current_attribute_element); 66 } 67 } 68 69 return null; 29 70 } 30 71 -
trunk/gli/src/org/greenstone/gatherer/metadata/MetadataSet.java
r7978 r8023 30 30 NodeList element_elements_nodelist = document.getElementsByTagName("Element"); 31 31 for (int i = 0; i < element_elements_nodelist.getLength(); i++) { 32 Element current_element_element = (Element) element_elements_nodelist.item(i);33 String metadata_element_name = current_element_element.getAttribute("name");32 Element metadata_element_element = (Element) element_elements_nodelist.item(i); 33 String metadata_element_name = metadata_element_element.getAttribute("name"); 34 34 String metadata_element_name_full = metadata_set_namespace + MetadataTools.NAMESPACE_SEPARATOR + metadata_element_name; 35 String metadata_element_description = "Description"; // !!! TO DO 36 metadata_set_elements.add(new MetadataElement(metadata_element_name_full, metadata_element_description)); 35 metadata_set_elements.add(new MetadataElement(metadata_element_name_full, metadata_element_element)); 37 36 } 38 37 } -
trunk/gli/src/org/greenstone/gatherer/metadata/MetadataSetManager.java
r7978 r8023 45 45 } 46 46 47 47 48 48 static public MetadataSet getMetadataSet(String metadata_set_namespace) 49 49 { … … 62 62 63 63 64 static public ArrayList listMetadataSets(File directory) 65 { 66 // Make sure the directory (metadata) exists 67 if (directory.exists() == false) { 68 return null; 69 } 70 71 // Load just those .mds files in this directory, and return them 72 ArrayList directory_metadata_sets = new ArrayList(); 73 File[] directory_files = directory.listFiles(); 74 for (int i = 0; i < directory_files.length; i++) { 75 File child_file = directory_files[i]; 76 if (!child_file.isDirectory() && child_file.getName().endsWith(".mds")) { 77 MetadataSet metadata_set = new MetadataSet(child_file); 78 directory_metadata_sets.add(metadata_set); 79 } 80 } 81 82 return directory_metadata_sets; 83 } 84 85 64 86 static public void loadMetadataSets(File directory) 65 87 { 88 // Make sure the directory (metadata) exists 89 if (directory.exists() == false) { 90 return; 91 } 92 66 93 // Look recursively at each subfile of the directory for .mds files 67 94 File[] directory_files = directory.listFiles(); -
trunk/gli/src/org/greenstone/gatherer/metadata/MetadataTools.java
r7978 r8023 6 6 { 7 7 static final public String NAMESPACE_SEPARATOR = "."; 8 9 10 static public String getMetadataElementName(String metadata_element_name_full) 11 { 12 // Full element name contains namespace 13 if (metadata_element_name_full.indexOf(NAMESPACE_SEPARATOR) != -1) { 14 return metadata_element_name_full.substring(metadata_element_name_full.indexOf(NAMESPACE_SEPARATOR) + 1); 15 } 16 17 // No namespace 18 return metadata_element_name_full; 19 } 20 21 22 static public String getMetadataElementAttribute(MetadataElement metadata_element, String attribute_name, String language_code, String fallback_language_code) 23 { 24 String metadata_element_attribute = metadata_element.getAttribute(attribute_name, language_code); 25 26 // If the attribute isn't defined in the desired language, resort to the fallback 27 if (metadata_element_attribute == null && !language_code.equals(fallback_language_code)) { 28 metadata_element_attribute = metadata_element.getAttribute(attribute_name, fallback_language_code); 29 } 30 31 return metadata_element_attribute; 32 } 8 33 9 34 … … 18 43 return ""; 19 44 } 20 21 22 static public String getMetadataElementName(String metadata_element_name_full)23 {24 // Full element name contains namespace25 if (metadata_element_name_full.indexOf(NAMESPACE_SEPARATOR) != -1) {26 return metadata_element_name_full.substring(metadata_element_name_full.indexOf(NAMESPACE_SEPARATOR) + 1);27 }28 29 // No namespace30 return metadata_element_name_full;31 }32 45 } -
trunk/gli/src/org/greenstone/gatherer/util/XMLTools.java
r8015 r8023 50 50 51 51 // None found 52 return null;52 return ""; 53 53 } 54 54
Note:
See TracChangeset
for help on using the changeset viewer.