Changeset 36193
- Timestamp:
- 2022-05-16T14:47:40+12:00 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/gli/src/org/greenstone/gatherer/cdm/TranslationView.java
r19798 r36193 52 52 static final private Dimension COMPONENT_SIZE = new Dimension(225,25); 53 53 static final private int LANGUAGE_WIDTH = 75; 54 static final private String GENERAL_STR = "General:";55 static final private String INDEX_STR = "Index:";56 static final private String LEVEL_STR = "Level:";57 static final private String PARTITION_STR = "Partitions:";54 // static final private String GENERAL_STR = "General:"; 55 // static final private String INDEX_STR = "Index:"; 56 // static final private String LEVEL_STR = "Level:"; 57 // static final private String PARTITION_STR = "Partitions:"; 58 58 59 59 public TranslationView() { … … 82 82 } 83 83 84 private CollectionMeta newCollOrSearchMeta(String name, String type, String language) { 85 return newCollOrSearchMeta(name, type, language, false); 86 } 87 88 private CollectionMeta newCollOrSearchMeta(String name, String type, String language, boolean dummy) { 89 CollectionMeta meta; 90 if (type != null) { 91 meta = new SearchMeta(name, type, language, dummy); 92 } else { 93 meta = new CollectionMeta(name, language, dummy); 94 } 95 return meta; 96 97 98 } 99 private TreeSet getLanguages() { 100 TreeSet lang_set = CollectionDesignManager.collectionmeta_manager.getLanguages(); 101 System.err.println("coll lang set = "+lang_set); 102 System.err.println("search lang_set = "+CollectionDesignManager.searchmeta_manager.getLanguages()); 103 lang_set.addAll(CollectionDesignManager.searchmeta_manager.getLanguages()); 104 System.err.println("all lang set = "+lang_set); 105 return lang_set; 106 } 84 107 private Object[] getFeaturesList() { 85 108 ArrayList features_model = new ArrayList(); 109 110 // add general metadata 111 ArrayList general_metadata = CollectionDesignManager.collectionmeta_manager.getMetadata(); 112 for(int i = 0; i < general_metadata.size(); i++) { 113 CollectionMeta metadata = (CollectionMeta) general_metadata.get(i); 114 if(!metadata.isSpecial()) { 115 Object bob = new BobTheMagicalComparableWrapper(metadata.getName(), null); 116 if(!features_model.contains(bob)) { 117 features_model.add(bob); 118 } 119 } 120 } 86 121 87 122 // Add the indexes … … 89 124 int indexes_size = indexes.size(); 90 125 for(int j = 0; j < indexes_size; j++) { 91 Object bob = new BobTheMagicalComparableWrapper(indexes.get(j) );126 Object bob = new BobTheMagicalComparableWrapper(indexes.get(j), SearchMeta.TYPE_INDEX); 92 127 if(!features_model.contains(bob)) { 93 128 features_model.add(bob); … … 99 134 int levels_size = levels.size(); 100 135 for (int j=0; j<levels.size(); j++) { 101 Object bob = new BobTheMagicalComparableWrapper(levels.get(j)); 136 Object bob = new BobTheMagicalComparableWrapper(levels.get(j), SearchMeta.TYPE_LEVEL); 137 if(!features_model.contains(bob)) { 138 features_model.add(bob); 139 } 140 } 141 } 142 // Add the sortfields, if any 143 ArrayList sortfields = CollectionDesignManager.index_manager.getSortFields(); 144 if (sortfields !=null) { 145 int sort_size = sortfields.size(); 146 for (int j=0; j<sort_size; j++) { 147 Object bob = new BobTheMagicalComparableWrapper(sortfields.get(j), SearchMeta.TYPE_SORT); 148 if(!features_model.contains(bob)) { 149 features_model.add(bob); 150 } 151 } 152 } 153 // Add the facets, if any 154 ArrayList facets = CollectionDesignManager.index_manager.getFacets(); 155 if (facets !=null) { 156 int facet_size = facets.size(); 157 for (int j=0; j<facet_size; j++) { 158 Object bob = new BobTheMagicalComparableWrapper(facets.get(j), SearchMeta.TYPE_FACET); 102 159 if(!features_model.contains(bob)) { 103 160 features_model.add(bob); … … 109 166 int subindexes_size = subindexes.size(); 110 167 for(int j = 0; j < subindexes_size; j++) { 111 Object bob = new BobTheMagicalComparableWrapper(subindexes.get(j) );168 Object bob = new BobTheMagicalComparableWrapper(subindexes.get(j), SearchMeta.TYPE_PARTITION); 112 169 if(!features_model.contains(bob)) { 113 170 features_model.add(bob); … … 115 172 } 116 173 117 // Finally we add any remaining metadata as general 118 ArrayList general_metadata = CollectionDesignManager.collectionmeta_manager.getMetadata(); 119 for(int i = 0; i < general_metadata.size(); i++) { 120 CollectionMeta metadata = (CollectionMeta) general_metadata.get(i); 121 if(!metadata.isSpecial()) { 122 Object bob = new BobTheMagicalComparableWrapper(metadata.getName()); 123 if(!features_model.contains(bob)) { 124 features_model.add(bob); 125 } 126 } 127 } 128 129 Collections.sort(features_model); 174 ArrayList languages = CollectionDesignManager.language_manager.getLanguages(); 175 int languages_size = languages.size(); 176 for(int j = 0; j < languages_size; j++) { 177 Object bob = new BobTheMagicalComparableWrapper(languages.get(j), SearchMeta.TYPE_LANGUAGE); 178 if(!features_model.contains(bob)) { 179 features_model.add(bob); 180 } 181 } 182 183 //Collections.sort(features_model); we want them in this order I reckon 130 184 131 185 return features_model.toArray(); … … 136 190 private Object content; 137 191 private String text; 138 BobTheMagicalComparableWrapper(Object content) { 192 private String type; 193 BobTheMagicalComparableWrapper(Object content, String type) { 139 194 this.content = content; 195 this.type = type; 140 196 } 141 197 public int compareTo(Object object) { … … 151 207 /** Equals is used by contains and since we want to prevent double up of metadata we compare differently than in compareTo. */ 152 208 public boolean equals(Object object) { 153 return (object != null && content.toString().equals(((BobTheMagicalComparableWrapper)object).getContent().toString())); 209 BobTheMagicalComparableWrapper bob = (BobTheMagicalComparableWrapper)object; 210 return (object != null && content.toString().equals(bob.getContent().toString()) && ((type == null && bob.getType()==null) || type.equals(bob.getType()))); 154 211 } 155 212 … … 158 215 } 159 216 160 public String getName() { 217 public String getName() { 218 if (content instanceof IndexOption) { 219 return ((IndexOption)content).getName(); 220 } 221 if (content instanceof Index) { 222 return ((Index)content).getID(); 223 } 224 if (content instanceof SubcollectionIndex) { 225 return ((SubcollectionIndex)content).getID(); 226 } 227 return content.toString(); 228 } 229 230 public String getType() { 231 return type; 232 } 233 public String getNameOld() { 161 234 if(content instanceof Index) { 162 235 return StaticStrings.STOP_CHARACTER + ((Index)content).getID(); … … 175 248 176 249 public String toString() { 250 177 251 if(text == null) { 178 252 String temp = content.toString(); 179 if(temp.indexOf(StaticStrings.SPACE_CHARACTER) != -1) { 180 temp = temp.substring(0, temp.indexOf(StaticStrings.SPACE_CHARACTER)); 181 } 182 if(content instanceof Index) { 183 text = INDEX_STR + temp; 184 } 185 else if (content instanceof IndexOption) { 186 text = LEVEL_STR + temp; 187 } 188 else if(content instanceof SubcollectionIndex) { 189 text = PARTITION_STR + temp; 190 } 191 else { 192 text = GENERAL_STR + temp; 193 } 253 if (type != null) { 254 text = Dictionary.get("CDM.SearchMetadataManager.Type_"+type)+": "+temp; 255 } else { 256 text = Dictionary.get("CDM.TranslationManager.Type_general")+": "+temp; 257 } 258 // if(temp.indexOf(StaticStrings.SPACE_CHARACTER) != -1) { 259 // temp = temp.substring(0, temp.indexOf(StaticStrings.SPACE_CHARACTER)); 260 // } 261 // if(content instanceof Index) { 262 // text = INDEX_STR + temp; 263 // } 264 // else if (content instanceof IndexOption) { 265 // text = LEVEL_STR + temp; 266 // } 267 // else if(content instanceof SubcollectionIndex) { 268 // text = PARTITION_STR + temp; 269 // } 270 // else { 271 // text = GENERAL_STR + temp; 272 // } 194 273 } 195 274 return text; … … 214 293 TranslationControl() { 215 294 this.setComponentOrientation(Dictionary.getOrientation()); 216 fragment_table_model = new FragmentTableModel("", new TreeSet(), new ArrayList());295 fragment_table_model = new FragmentTableModel("", "", new TreeSet(), new ArrayList()); 217 296 // Creation 218 297 JPanel header_panel = new DesignPaneHeader("CDM.GUI.Translation", "translatetext"); … … 396 475 BobTheMagicalComparableWrapper selected_feature = (BobTheMagicalComparableWrapper)features_list.getSelectedValue(); 397 476 String language = (String) language_combobox.getSelectedItem(); 398 CollectionMeta metadatum = new CollectionMeta(selected_feature.getName(), language);477 CollectionMeta metadatum = newCollOrSearchMeta(selected_feature.getName(), selected_feature.getType(), language); //new CollectionMeta(selected_feature.getName(), language); 399 478 metadatum.setValue(translation_text); 400 CollectionDesignManager.collectionmeta_manager.addMetadatum(metadatum);401 479 fragment_table.clearSelection(); 402 ArrayList metadata = CollectionDesignManager.collectionmeta_manager.getMetadata(selected_feature.getName()); 403 fragment_table_model.setData(selected_feature.getName(), CollectionDesignManager.collectionmeta_manager.getLanguages(), metadata); 480 ArrayList metadata; 481 if (metadatum instanceof SearchMeta) { 482 System.err.println("adding meta to search" + metadatum); 483 CollectionDesignManager.searchmeta_manager.addMetadatum(metadatum); 484 485 metadata = CollectionDesignManager.searchmeta_manager.getMetadata(selected_feature.getName(), selected_feature.getType()); 486 System.err.println("metadata = "+metadata); 487 } else { 488 // just a general metadata 489 System.err.println("adding meta to general"); 490 CollectionDesignManager.collectionmeta_manager.addMetadatum(metadatum); 491 492 metadata = CollectionDesignManager.collectionmeta_manager.getMetadata(selected_feature.getName()); 493 } 494 System.err.println("new langues = "+getLanguages()); 495 fragment_table_model.setData(selected_feature.getName(), selected_feature.getType(), getLanguages(), metadata); 404 496 int index = fragment_table_model.getMetadataIndexByLanguage(language); 405 ///ystem.err.println("I want to select the row " + index + " out of " + metadata.size());497 System.err.println("I want to select the row " + index + " out of " + metadata.size()); 406 498 fragment_table.setRowSelectionInterval(index, index); 407 499 metadatum = null; … … 425 517 if((index = fragment_table.getSelectedRow()) != -1) { 426 518 CollectionMeta metadata = fragment_table_model.getMetadata(index); 427 CollectionDesignManager.collectionmeta_manager.removeMetadata(metadata); 519 if (metadata instanceof SearchMeta) { 520 CollectionDesignManager.searchmeta_manager.removeMetadata(metadata); 521 } else { 522 CollectionDesignManager.collectionmeta_manager.removeMetadata(metadata); 523 } 428 524 fragment_table_model.remove(index); 429 525 // If a remove occured then enable add … … 469 565 BobTheMagicalComparableWrapper selected_feature = (BobTheMagicalComparableWrapper)features_list.getSelectedValue(); 470 566 // Retrieve the default language translation, or otherwise the first match, to be default text. 471 CollectionMeta default_metadata = CollectionDesignManager.collectionmeta_manager.getMetadatum(selected_feature.getName()); 567 CollectionMeta default_metadata; 568 // Update the text fragment table. 569 fragment_table.clearSelection(); 570 if (selected_feature.getType() != null) { 571 default_metadata = CollectionDesignManager.searchmeta_manager.getMetadatum(selected_feature.getName(), selected_feature.getType()); 572 fragment_table_model.setData(selected_feature.getName(), selected_feature.getType(), getLanguages(), CollectionDesignManager.searchmeta_manager.getMetadata(selected_feature.getName())); 573 } else { 574 default_metadata = CollectionDesignManager.collectionmeta_manager.getMetadatum(selected_feature.getName()); 575 fragment_table_model.setData(selected_feature.getName(), selected_feature.getType(), getLanguages(), CollectionDesignManager.collectionmeta_manager.getMetadata(selected_feature.getName())); 576 } 472 577 if(default_metadata != null) { 473 578 default_area.setText(default_metadata.getValue(CollectionMeta.TEXT)); 474 579 } 475 // Update the text fragment table. 476 fragment_table.clearSelection(); 477 fragment_table_model.setData(selected_feature.getName(), CollectionDesignManager.collectionmeta_manager.getLanguages(), CollectionDesignManager.collectionmeta_manager.getMetadata(selected_feature.getName())); 580 478 581 selected_feature = null; 479 582 // Now we check whatever value is currently selected in the combobox to see if it is valid to add. … … 501 604 default_area.setText(""); 502 605 fragment_table.clearSelection(); 503 fragment_table_model.setData("", new TreeSet(), new ArrayList());606 fragment_table_model.setData("", "", new TreeSet(), new ArrayList()); 504 607 translation_area.setText(""); 505 608 // Update and disable the text area … … 552 655 private ArrayList metadata; 553 656 private String feature_name; 657 private String feature_type; 554 658 private TreeSet languages; 555 659 556 FragmentTableModel(String feature_name, TreeSet languages, ArrayList metadata) {660 FragmentTableModel(String feature_name, String feature_type, TreeSet languages, ArrayList metadata) { 557 661 this.feature_name = feature_name; 662 this.feature_type = feature_type; 558 663 this.languages = languages; 559 664 this.metadata = metadata; … … 606 711 } 607 712 } 608 return new CollectionMeta(feature_name, language, true); 713 //return new CollectionMeta(feature_name, language, true); 714 return newCollOrSearchMeta(feature_name, feature_type, language, true); 609 715 } 610 716 … … 658 764 } 659 765 660 public void setData(String feature_name, TreeSet languages, ArrayList metadata) {766 public void setData(String feature_name, String feature_type, TreeSet languages, ArrayList metadata) { 661 767 this.feature_name = feature_name; 768 this.feature_type = feature_type; 662 769 this.languages = languages; 663 770 this.metadata = metadata;
Note:
See TracChangeset
for help on using the changeset viewer.