Changeset 36139 for main


Ignore:
Timestamp:
2022-04-12T11:07:08+12:00 (2 years ago)
Author:
kjdon
Message:

updated to use the new MGIndex/Index classes. a bit of code refactoring to reduce duplication

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/gli/src/org/greenstone/gatherer/cdm/IndexManager.java

    r24367 r36139  
    7070    public IndexManager(Element indexes, String current_build_type) {
    7171
    72     super(indexes, StaticStrings.INDEX_ELEMENT, new Index());
     72    super(indexes, StaticStrings.INDEX_ELEMENT, (current_build_type.equals(BuildTypeManager.BUILD_TYPE_MG)?new MGIndex():new Index()));
    7373    DebugStream.println("IndexManager: " + getSize() + " indexes parsed.");
    7474    index_model = this;
    7575     
    76        
    7776    // Parse and retrieve the default index
    7877    NodeList default_index_elements = CollectionConfiguration.getElementsByTagName(StaticStrings.INDEX_DEFAULT_ELEMENT);
    7978    if(default_index_elements.getLength() > 0) {
    80                  
    81         default_index = new Index((Element)default_index_elements.item(0));
     79        if (current_build_type.equals(BuildTypeManager.BUILD_TYPE_MG)) {
     80        default_index = new MGIndex((Element)default_index_elements.item(0));
     81        } else {
     82        default_index = new Index((Element)default_index_elements.item(0));
     83        }
    8284    }
    8385    build_type = current_build_type;
     
    136138   
    137139    private void changeToMGIndexes() {
     140    this.setClassType(new MGIndex());
    138141    Element mgpp_element = root;
    139142    // Retrieve and assign MG element and default index element
     
    154157        for(int i = 0; i < level_size; i++) {
    155158          IndexOption level = (IndexOption) levels.get(i);
    156           Index new_index = new Index(level.getName(), index.getSources());
     159          Index new_index = new MGIndex(level.getName(), index.getSources());
    157160          // Try to retrieve existing metadatum
    158161          String source_str = new_index.getID();
     
    183186
    184187    private void changeToMGPPIndexes() {
     188    this.setClassType(new Index());
    185189    Element mg_element = root;
    186190    // Retrieve and assign the MGPP indexes element.
     
    397401        if(default_index == null) {
    398402        // Create the default index element, and place immediately after indexes element.
    399         Element default_index_element = root.getOwnerDocument().createElement(StaticStrings.INDEX_DEFAULT_ELEMENT);               
    400         default_index = new Index(default_index_element);
     403        Element default_index_element = root.getOwnerDocument().createElement(StaticStrings.INDEX_DEFAULT_ELEMENT);             
     404        if (build_type.equals(BuildTypeManager.BUILD_TYPE_MG)) {
     405            default_index = new MGIndex(default_index_element);
     406        } else {
     407            default_index = new Index(default_index_element);
     408        }
    401409        Node target_node = CollectionConfiguration.findInsertionPoint(default_index_element);
    402410        if(target_node != null) {
     
    406414            root.getOwnerDocument().getDocumentElement().appendChild(default_index_element);
    407415        }
     416        } else {
     417        if (build_type.equals(BuildTypeManager.BUILD_TYPE_MG) &&! (default_index instanceof org.greenstone.gatherer.cdm.MGIndex)) {
     418            default_index = new MGIndex(default_index.getElement());
     419        } else if (!build_type.equals(BuildTypeManager.BUILD_TYPE_MG) && default_index instanceof org.greenstone.gatherer.cdm.MGIndex) {
     420            default_index = new Index(default_index.getElement());
     421        }
    408422        }
    409423        default_index.setAssigned(true);
    410         default_index.setLevel(index.getLevel());
    411424        default_index.setSources(index.getSources());
     425        if (build_type.equals(BuildTypeManager.BUILD_TYPE_MG)) {
     426        ((MGIndex)default_index).setLevel(((MGIndex)index).getLevel());
     427        }
    412428       
    413429    }
     
    847863            }
    848864            if (!mgpp_enabled) {
    849             level_combobox.setSelectedIndex(existing_index.getLevel());
     865            level_combobox.setSelectedIndex(((MGIndex)existing_index).getLevel());
    850866            }
    851867           
     
    894910            index = new Index(sources);
    895911            } else {
    896             index = new Index(level_combobox.getSelectedIndex(), sources);
     912            index = new MGIndex(level_combobox.getSelectedIndex(), sources);
    897913            }
    898914        } else {
     
    911927       
    912928        }
     929
     930        private Index generateNewIndex() {
     931        Index index = null;
     932        ArrayList sources;
     933        if (mgpp_enabled && allfields_box.isSelected()) {
     934            sources = new ArrayList();
     935            sources.add(ALLFIELDS);
     936            index = new Index(sources);
     937        }
     938        else if (text_checkbox.isSelected() || !source_list.isNothingTicked()) {
     939            sources = source_list.getTicked();
     940            if (text_checkbox.isSelected()) {
     941            sources.add(0, StaticStrings.TEXT_STR);
     942            }
     943            if(mgpp_enabled) {
     944            index = new Index(sources);
     945            } else {
     946            index = new MGIndex(level_combobox.getSelectedIndex(), sources);
     947            }
     948        }
     949        return index;
     950         
     951
     952        }
     953       
     954        private CollectionMeta generateCollectionMeta(Index index) {
     955        CollectionMeta metadatum = new CollectionMeta(StaticStrings.STOP_CHARACTER + index.getID());
     956        if (use_macro_as_display_name(index.getID())) {
     957            metadatum.setValue(get_macro_name(index.getID()));
     958        } else {
     959            metadatum.setValue(index.getID());
     960        }
     961        return metadatum;
     962        }
     963       
    913964        private class AddIndexListener
    914965        implements ActionListener
     
    916967        public void actionPerformed(ActionEvent event)
    917968        {
    918             Index index;
    919             if (mgpp_enabled && allfields_box.isSelected()) {
    920             ArrayList sources = new ArrayList();
    921             sources.add(ALLFIELDS);
    922             index = new Index(sources);
     969            Index index = generateNewIndex();
     970            if (index != null) {
     971           
     972            CollectionMeta metadatum = generateCollectionMeta(index);
     973            // Add the index
     974            addIndex(index, metadatum);
     975            index_list.setSelectedValue(index, true);
    923976            }
    924             else if (text_checkbox.isSelected() ||
    925                  !source_list.isNothingTicked()) {
    926             ArrayList sources = source_list.getTicked();
    927             if (text_checkbox.isSelected()) {
    928                 sources.add(0, StaticStrings.TEXT_STR);
    929             }
    930             if(mgpp_enabled) {
    931                 index = new Index(sources);
    932             } else {
    933                 index = new Index(level_combobox.getSelectedIndex(), sources);
    934             }
    935             } else {
    936             return;
    937             }
    938          
    939             // Before we add the index to the model, we have to add a default collection metadata for this
    940             CollectionMeta metadatum = new CollectionMeta(StaticStrings.STOP_CHARACTER + index.getID());
    941             if (use_macro_as_display_name(index.getID())) {
    942             metadatum.setValue(get_macro_name(index.getID()));
    943             } else {
    944             metadatum.setValue(index.getID());
    945             }
    946        
    947             // Finally, add the index
    948             addIndex(index, metadatum);
    949             index_list.setSelectedValue(index, true);
    950             new_index_prompt.dispose();
     977            new_index_prompt.dispose();         
    951978        }
    952979        }
     
    10181045        implements ActionListener {
    10191046       
    1020         public void actionPerformed(ActionEvent event) {
    1021        
    1022             ArrayList sources;
    1023             Index index = null;
    1024             if (text_checkbox.isSelected() || !source_list.isNothingTicked()) {
    1025             sources = source_list.getTicked();
    1026             if (text_checkbox.isSelected()) {
    1027                 sources.add(0, StaticStrings.TEXT_STR);
    1028             }
    1029             if (mgpp_enabled) {
    1030                 index = new Index(sources);
    1031             } else {
    1032                 index = new Index(level_combobox.getSelectedIndex(), sources);
    1033             }
    1034             }
     1047        public void actionPerformed(ActionEvent event)
     1048        {
     1049            Index index = generateNewIndex();
    10351050            if (index != null) {
    1036             // Create the new collection meta
    1037             CollectionMeta metadatum = new CollectionMeta(StaticStrings.STOP_CHARACTER + index.getID());
    1038             if (use_macro_as_display_name(index.getID())) {
    1039                 metadatum.setValue(get_macro_name(index.getID()));
    1040             } else {
    1041                 metadatum.setValue(index.getID());
    1042             }
    1043            
     1051            CollectionMeta metadatum = generateCollectionMeta(index);
    10441052            // replace the index
    10451053            replaceIndex((Index) index_list.getSelectedValue(), index, metadatum);
    10461054            index_list.setSelectedValue(index, true);
    1047            
    10481055            }
    10491056            new_index_prompt.dispose();
    1050        
    10511057        }
    10521058        }
Note: See TracChangeset for help on using the changeset viewer.