Ignore:
Timestamp:
2005-07-13T11:12:11+12:00 (19 years ago)
Author:
mdewsnip
Message:

New code for "incremental" building, by Matthew Whyte.

I've only had time to look at this briefly; I've fixed a few obvious problems but I imagine this will be pretty flaky for a while.

Location:
trunk/gli/src/org/greenstone/gatherer/cdm
Files:
1 added
13 edited

Legend:

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

    r9642 r10237  
    129129    cancel.addActionListener(this);
    130130    ok.addActionListener(this);
     131    ok.addActionListener(CollectionDesignManager.all_change_listener);
    131132
    132133    // Layout
  • trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java

    r10011 r10237  
    582582        Dictionary.registerText(instructions, "CDM.ClassifierManager.Instructions");
    583583
    584         ClassifierComboboxListener ccl = new ClassifierComboboxListener();
     584        ClassifierComboboxListener ccl = new ClassifierComboboxListener();
    585585        classifier = new GComboBox(getAvailable());
    586586        classifier.setBackgroundNonSelectionColor(Configuration.getColor("coloring.editable_background", false));
     
    630630        // Listeners
    631631        add.addActionListener(new AddListener());
    632         classifier.addItemListener(ccl);
     632        add.addActionListener(CollectionDesignManager.buildcol_change_listener);
     633        classifier.addItemListener(ccl);
    633634        configure.addActionListener(new ConfigureListener());
     635        configure.addActionListener(CollectionDesignManager.buildcol_change_listener);
    634636        remove.addActionListener(new RemoveListener());
     637        remove.addActionListener(CollectionDesignManager.buildcol_change_listener);
    635638        classifier_list.addMouseListener(new ClickListener());
    636639        classifier_list.addListSelectionListener(new ListListener());
    637         ccl = null;
     640        ccl = null;
    638641
    639642        MoveListener ml = new MoveListener();
    640643        //move_bottom_button.addActionListener(ml);
    641644        move_down_button.addActionListener(ml);
     645        move_down_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    642646        //move_top_button.addActionListener(ml);
    643647        move_up_button.addActionListener(ml);
     648        move_up_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    644649
    645650        // Layout
  • trunk/gli/src/org/greenstone/gatherer/cdm/CollectionDesignManager.java

    r9640 r10237  
    5050    /** This listener listens for any event on any of the components in any of the sub-views, and marks the collection as needing saving if any change occurs. */
    5151    static public CDMChangeListener change_listener;
     52    /** These listeners listen to changes in the Design mode so as to allow incremental building */
     53    static public DesignChangeListener all_change_listener;
     54    static public DesignChangeListener buildcol_change_listener;
     55    static public DesignChangeListener collect_cfg_change_listener;
    5256    /** A list of classifiers to use at build time. */
    5357    static public ClassifierManager classifier_manager;
     
    7882    /** The text translation manager. */
    7983    static public TranslationView translation_view;
     84    /** These mark what needs to happen when building a collection where ONLY design options have been changed.
     85        The build requirements of the higher numbers must include doing everything from the lower numbers. */
     86    static final public int ALL = 3;
     87    static final public int BUILDCOL = 2;
     88    static final public int UPDATE_COLLECT_CFG = 1;
     89    static final public int NOTHING = 0;
     90    static private int rebuildTypeRequired = NOTHING; //Rebuild type required if only design options have changed
     91    static protected boolean update_collect_cfg_required = false;
     92
    8093    /** Constructor. Loads a certain collection configuration file, which is parsed into a DOM. This model is then registered with the command information managers, each of whom knows how to, and provides controls to, alter certain commands.
    8194     * @param collect_config_file the File representing a collection configuration file either in its text (G2) or xml (G3) form
     
    8497    DebugStream.println("Initializaing CollectionDesignModule.");
    8598    change_listener = new CDMChangeListener();
     99    all_change_listener = new DesignChangeListener(ALL);
     100    buildcol_change_listener = new DesignChangeListener(BUILDCOL);
     101    collect_cfg_change_listener = new DesignChangeListener(UPDATE_COLLECT_CFG);
    86102    // Parse the collection configuration
    87103    collect_config = new CollectionConfiguration(collect_config_file);
     
    199215     */
    200216    public void save() {
     217    System.err.println("Config file saved. The level of processing needed is: " + CollectionDesignManager.getRebuildTypeRequired()); //debug
    201218    // Release collection as necessary
    202219    String collection_name = Gatherer.c_man.getCollection().getName();
    203220    boolean collection_released = false;
    204     boolean formats_changed = format_manager.formatsChanged();
    205 
    206     if (formats_changed && Gatherer.c_man.built() && LocalLibraryServer.isRunning() == true) {
     221
     222    if (update_collect_cfg_required && Gatherer.c_man.built() && LocalLibraryServer.isRunning() == true) {
    207223        // Release the collection
    208224        LocalLibraryServer.releaseCollection(collection_name);
     
    213229    collect_config.save();
    214230
    215     if (Gatherer.isGsdlRemote) {
    216         if (formats_changed && Gatherer.c_man.built()) {
    217         // upload etc/collect.cfg to server to reflect changes
    218         Utility.zipup(Gatherer.getCollectDirectoryPath(), collection_name, Utility.CONFIG_FILE, null, "", "");
    219         GathererApplet.upload_url_zip(collection_name, "etc", "", null);
    220         }
    221     }
    222 
    223     // Readd collection
     231    if (update_collect_cfg_required && Gatherer.c_man.built() && Gatherer.isGsdlRemote) {
     232        //If the GLI is running as an applet, and Format Features or Cross-Collection Searching have changed,
     233        //upload etc/collect.cfg to the server to immediately reflect these changes.
     234        Utility.zipup(Gatherer.getCollectDirectoryPath(), collection_name, Utility.CONFIG_FILE, null, "", "");
     235        GathererApplet.upload_url_zip(collection_name, "etc", "", null);
     236    }
     237   
     238    // Read collection
    224239    if (collection_released) {
    225240        // Now re-add collection to server to force format commands to be processed
     
    227242    }
    228243
    229     if (formats_changed) {
     244    if (update_collect_cfg_required) {
    230245        // Unset formats changed
    231         format_manager.setFormatsChanged(false);
     246        update_collect_cfg_required = false;
    232247    }
    233248    }
     
    263278    }
    264279
    265 
     280    public static int getRebuildTypeRequired() {
     281    return rebuildTypeRequired;
     282    }
     283    public static void resetRebuildTypeRequired() {
     284    setRebuildTypeRequired(NOTHING);
     285    }
     286    public static void setRebuildTypeRequired(int number) {
     287    rebuildTypeRequired = number;
     288    }
     289
     290    /**
     291     * What exactly does this do?
     292     */
    266293    private class CDMChangeListener
    267294    implements ActionListener, DocumentListener {
    268295
     296    /** Gives notification that an event has happened */
    269297    public void actionPerformed(ActionEvent event) {
    270298        Gatherer.c_man.getCollection().setSaved(false);
  • trunk/gli/src/org/greenstone/gatherer/cdm/FormatManager.java

    r9440 r10237  
    6464    static final private String INVISIBLE_DEFAULT_FORMAT = "";
    6565
    66     /** This flag is set if some change has occured to the format commands. When a collection has been built for previewing, and the greenstone local library server is used, then we have to send commands to remove then add the new collection. */
    67     private boolean formats_changed = false;
    6866    /** The controls used to edit the format commands. */
    6967    private Control controls = null;
     
    106104        add(root, format, target_node);
    107105        Gatherer.c_man.configurationChanged();
    108         formats_changed = true;
    109106    }
    110107    }
     
    115112        controls = null;
    116113    }
    117     }
    118 
    119     /** Have the formats changed since the last save. */
    120     public boolean formatsChanged() {
    121     return formats_changed;
    122114    }
    123115
     
    160152    remove(format);
    161153    Gatherer.c_man.configurationChanged();
    162     formats_changed = true;
    163     }
    164 
    165     /** Set the state of the formats changed flag.
    166      * @param state the new state as a boolean
    167      */
    168     public void setFormatsChanged(boolean state) {
    169     formats_changed = state;
    170154    }
    171155
     
    344328        // Connect
    345329        add_button.addActionListener(new AddListener());
     330        add_button.addActionListener(CollectionDesignManager.collect_cfg_change_listener);
    346331        insert_button.addActionListener(new InsertListener());
     332        insert_button.addActionListener(CollectionDesignManager.collect_cfg_change_listener);
    347333        remove_button.addActionListener(new RemoveListener());
     334        remove_button.addActionListener(CollectionDesignManager.collect_cfg_change_listener);
    348335        replace_button.addActionListener(new ReplaceListener());
     336        replace_button.addActionListener(CollectionDesignManager.collect_cfg_change_listener);
    349337        enabled_checkbox.addActionListener(new EnabledListener());
     338        enabled_checkbox.addActionListener(CollectionDesignManager.collect_cfg_change_listener);
    350339        feature_combobox.addActionListener(new FeatureListener());
    351340        part_combobox.addActionListener(new PartListener());
     
    425414        // This is only necessary if the components have been realized
    426415        if(ready) {
    427         formats_changed = false;
    428416        model.refresh();
    429417        feature_model = buildFeatureModel();
  • trunk/gli/src/org/greenstone/gatherer/cdm/GeneralManager.java

    r9864 r10237  
    266266        browse_listener = null;
    267267        public_checkbox.addActionListener(CollectionDesignManager.change_listener);
     268        public_checkbox.addActionListener(CollectionDesignManager.buildcol_change_listener);
    268269        creator_emailfield.getDocument().addDocumentListener(CollectionDesignManager.change_listener);
     270        creator_emailfield.getDocument().addDocumentListener(CollectionDesignManager.buildcol_change_listener);
    269271        description_textarea.getDocument().addDocumentListener(CollectionDesignManager.change_listener);
     272        description_textarea.getDocument().addDocumentListener(CollectionDesignManager.buildcol_change_listener);
    270273        icon_textfield.getDocument().addDocumentListener(CollectionDesignManager.change_listener);
     274        icon_textfield.getDocument().addDocumentListener(CollectionDesignManager.buildcol_change_listener);
    271275        maintainer_emailfield.getDocument().addDocumentListener(CollectionDesignManager.change_listener);
     276        maintainer_emailfield.getDocument().addDocumentListener(CollectionDesignManager.buildcol_change_listener);
    272277        name_textfield.getDocument().addDocumentListener(CollectionDesignManager.change_listener);
    273278        name_textfield.getDocument().addDocumentListener(new CollectionTitleUpdater());
     279        name_textfield.getDocument().addDocumentListener(CollectionDesignManager.buildcol_change_listener);
    274280        small_icon_textfield.getDocument().addDocumentListener(CollectionDesignManager.change_listener);
     281        small_icon_textfield.getDocument().addDocumentListener(CollectionDesignManager.buildcol_change_listener);
     282        //Note: unfortunately just loading the General Design panel fires the buildcol_change_listener (even if nothing is changed).
    275283
    276284        // Layout
  • trunk/gli/src/org/greenstone/gatherer/cdm/IndexManager.java

    r10011 r10237  
    626626        // Listeners
    627627        add_button.addActionListener(new AddListener());
     628        add_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    628629        move_down_button.addActionListener(new MoveListener(false));
     630        move_down_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    629631        move_up_button.addActionListener(new MoveListener(true));
     632        move_up_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    630633        remove_button.addActionListener(new RemoveListener());
     634        remove_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    631635        replace_button.addActionListener(new ReplaceListener());
     636        replace_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    632637        set_default_button.addActionListener(new SetDefaultListener());
     638        set_default_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    633639        name_textfield.getDocument().addDocumentListener(new NameListener());
    634640        level_combobox.addItemListener(new LevelListener());
  • trunk/gli/src/org/greenstone/gatherer/cdm/LanguageManager.java

    r10011 r10237  
    351351        // Set up and connect listeners.
    352352        add_button.addActionListener(new AddListener());
     353        add_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    353354        move_down_button.addActionListener(new MoveListener(false));
     355        move_down_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    354356        move_up_button.addActionListener(new MoveListener(true));
     357        move_up_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    355358        remove_button.addActionListener(new RemoveListener());
     359        remove_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    356360        language_combobox.addActionListener(new SelectorListener());
    357361        set_default_button.addActionListener(new SetDefaultListener());
     362        set_default_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    358363        selected_languages_list.addListSelectionListener(new ListListener());
    359364
  • trunk/gli/src/org/greenstone/gatherer/cdm/PluginManager.java

    r10079 r10237  
    794794
    795795        // Listeners
    796         add.addActionListener(new AddListener());
     796        add.addActionListener(new AddListener()); //all_change_listener is listening to the ArgumentConfiguration
    797797        configure.addActionListener(new ConfigureListener());
    798798        MoveListener ml = new MoveListener();
    799799        //move_bottom_button.addActionListener(ml);
    800800        move_down_button.addActionListener(ml);
     801        move_down_button.addActionListener(CollectionDesignManager.all_change_listener);
    801802        //move_top_button.addActionListener(ml);
    802803        move_up_button.addActionListener(ml);
     804        move_up_button.addActionListener(CollectionDesignManager.all_change_listener);
    803805        plugin.addItemListener(picl);
    804806        remove.addActionListener(new RemoveListener());
     807        remove.addActionListener(CollectionDesignManager.all_change_listener);
    805808        plugin_list.addMouseListener(new ClickListener());
    806809        plugin_list.addListSelectionListener(new ListListener());
  • trunk/gli/src/org/greenstone/gatherer/cdm/SearchTypeManager.java

    r10011 r10237  
    268268        // Connection
    269269        add_button.addActionListener(new AddActionListener());
     270        add_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    270271        build_type_combobox.addActionListener(new BuildTypeActionListener());
     272        build_type_combobox.addActionListener(CollectionDesignManager.buildcol_change_listener);
    271273        current_search_types_list.addListSelectionListener(new CurrentSearchTypesListSelectionListener());
    272274        enable_advanced_searches_checkbox.addActionListener(new EnableAdvancedSearchesActionListener());
     275        enable_advanced_searches_checkbox.addActionListener(CollectionDesignManager.buildcol_change_listener);
    273276        move_up_button.addActionListener(new MoveListener(true));
     277        move_up_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    274278        move_down_button.addActionListener(new MoveListener(false));
     279        move_down_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    275280        remove_button.addActionListener(new RemoveActionListener());
     281        remove_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    276282        SearchTypesActionDocumentListener stadl = new SearchTypesActionDocumentListener();
    277283        search_type_combobox.addActionListener(stadl);
     284        search_type_combobox.addActionListener(CollectionDesignManager.buildcol_change_listener);
    278285        ((JTextField)search_type_combobox.getEditor().getEditorComponent()).getDocument().addDocumentListener(stadl);
    279286
  • trunk/gli/src/org/greenstone/gatherer/cdm/SubcollectionIndexManager.java

    r10011 r10237  
    314314        // Listeners
    315315        add_button.addActionListener(new AddListener());
     316        add_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    316317        move_down_button.addActionListener(new MoveListener(false));
     318        move_down_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    317319        move_up_button.addActionListener(new MoveListener(true));
     320        move_up_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    318321        remove_button.addActionListener(new RemoveListener());
     322        remove_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    319323        replace_button.addActionListener(new ReplaceListener());
     324        replace_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    320325        set_default_button.addActionListener(new SetDefaultListener());
     326        set_default_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    321327        subcollection_index_name_textfield.getDocument().addDocumentListener(new NameListener());
    322328        subcollection_index_list.addListSelectionListener(new SubcollectionIndexListListener());
  • trunk/gli/src/org/greenstone/gatherer/cdm/SubcollectionManager.java

    r9161 r10237  
    277277        SubCollectionChangeListener cl = new SubCollectionChangeListener();
    278278        add_button.addActionListener(new AddSubCollectionListener());
     279        add_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    279280        remove_button.addActionListener(new RemoveSubCollectionListener());
     281        remove_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    280282        update_button.addActionListener(new UpdateSubCollectionListener());
     283        update_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    281284        exclude_button.addActionListener(cl);
    282285        include_button.addActionListener(cl);
  • trunk/gli/src/org/greenstone/gatherer/cdm/SuperCollectionManager.java

    r9045 r10237  
    5353    private DOMProxyListModel model = null;
    5454    private String current_coll_name = null;
    55 
     55    private boolean superCollectionChanged = false;
    5656
    5757    public SuperCollectionManager(Element supercollections_element) {
     
    157157
    158158    public void loseFocus() {
     159        CollectionDesignManager.collect_cfg_change_listener.maybeSetRebuildRequired(); // !! TO DO: This is crap
    159160        int super_collections_count = 0;
    160161        // Retrieve the current supercollections
  • trunk/gli/src/org/greenstone/gatherer/cdm/TranslationView.java

    r8243 r10237  
    270270        // Connection
    271271        add_button.addActionListener(new AddListener());
     272        add_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    272273        remove_button.addActionListener(new RemoveListener());
     274        remove_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    273275        replace_button.addActionListener(new ReplaceListener());
     276        replace_button.addActionListener(CollectionDesignManager.buildcol_change_listener);
    274277        language_combobox.addActionListener(new LanguageActionListener());
    275278        translation_area.getDocument().addDocumentListener(new TranslationDocumentListener());
Note: See TracChangeset for help on using the changeset viewer.