Ignore:
Timestamp:
2004-01-16T15:52:11+13:00 (20 years ago)
Author:
jmt12
Message:

Finished the design of a new 'simple' creating/progress pane, including merging the two progress bars into one

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/src/org/greenstone/gatherer/shell/GBuildProgressMonitor.java

    r6388 r6533  
    121121    /** The progress bar this monitor updates. */
    122122    private JProgressBar progress_bar;
     123    /** A progress bar that is shared between this this listener and the Import monitor. */
     124    private JProgressBar shared_progress_bar;
    123125
    124126    /** Construct a new GBuildProgressMonitor. */
    125     public GBuildProgressMonitor() {
     127    public GBuildProgressMonitor(JProgressBar shared_progress_bar) {
     128    this.shared_progress_bar = shared_progress_bar;
    126129    progress_bar = new JProgressBar();
    127130    progress_bar.setMaximum(MAX);
    128131    progress_bar.setMinimum(MIN);
    129     progress_bar.setValue(MIN);
     132    progress_bar.setString(null);
     133    progress_bar.setStringPainted(true);
     134    setValue(MIN);
    130135    }
    131136
     
    137142    progress_bar.setMaximum(MAX);
    138143    progress_bar.setMinimum(MIN);
    139     progress_bar.setValue(MIN);
     144    progress_bar.setStringPainted(false);
     145    progress_bar.setString(null);
     146    setValue(MIN);
    140147    }
    141148
     
    155162    return progress_bar;
    156163    }
     164
     165    public JProgressBar getSharedProgress() {
     166    return shared_progress_bar;
     167    }
     168
    157169    /** Method to determine the state of the stop flag, which may be set by the visual component that created this monitor.
    158170     * @return A <strong>boolean</strong> indicating if the process has been asked to stop.
    159171     */
    160     public boolean hasSignalledStop() {
     172    public synchronized boolean hasSignalledStop() {
    161173    return stop;
    162174    }
     
    193205            state = BUILD;
    194206            // Produce a lower detail message if required
    195             if(Gatherer.config.getMode() <= threshold) {
     207            if(Gatherer.config.getMode() <= threshold && !stop) {
    196208            queue.add(new GShellEvent(event.getSource(), 0, event.getType(), Dictionary.get("GShell.Build.BuildBegun1"), event.getStatus()));
    197209            }
     
    254266        else if(name.equals(BUILD_ELEMENT) && element.isClosed()) {
    255267            progress_bar.setIndeterminate(false);
    256             progress_bar.setValue(MAX);
     268            setValue(MAX);
    257269            state = BASE;
    258270            if(Gatherer.config.getMode() <= threshold) {
     
    279291            // One third complete
    280292            progress_bar.setIndeterminate(false);
    281             progress_bar.setValue((int)(((double)current_stages + 0.3d) * MAX) / expected_stages);
     293            setValue((int)(((double)current_stages + 0.3d) * MAX) / expected_stages);
    282294            }
    283295            else if(value.equals(COMPRESSINGTEXT_VALUE)) {
    284296            // Two thirds complete
    285297            progress_bar.setIndeterminate(false);
    286             progress_bar.setValue((int)(((double)current_stages + 0.6d) * MAX) / expected_stages);
     298                setValue((int)(((double)current_stages + 0.6d) * MAX) / expected_stages);
    287299            }
    288300            else {
     
    302314            current_stages++;
    303315            progress_bar.setIndeterminate(false);
    304             progress_bar.setValue((current_stages * MAX) / expected_stages);
     316            setValue((current_stages * MAX) / expected_stages);
    305317            state = BUILD;
    306318        }
     
    323335            // One fifth complete
    324336            progress_bar.setIndeterminate(false);
    325             progress_bar.setValue((int)(((double)current_stages + 0.2d) * MAX) / expected_stages);
     337            setValue((int)(((double)current_stages + 0.2d) * MAX) / expected_stages);
    326338            }
    327339            else if(value.equals(CREATETHEWEIGHTS_VALUE)) {
    328340            // Two fifths complete
    329341            progress_bar.setIndeterminate(false);
    330             progress_bar.setValue((int)(((double)current_stages + 0.4d) * MAX) / expected_stages);
     342            setValue((int)(((double)current_stages + 0.4d) * MAX) / expected_stages);
    331343            }
    332344            else if(value.equals(CREATESTEMMEDDIC_VALUE)) {
    333345            // Three fifths complete
    334346            progress_bar.setIndeterminate(false);
    335             progress_bar.setValue((int)(((double)current_stages + 0.6d) * MAX) / expected_stages);
     347            setValue((int)(((double)current_stages + 0.6d) * MAX) / expected_stages);
    336348            }
    337349            else if(value.equals(CREATINGSTEMINDX_VALUE)) {
    338350            // Four fifths complete
    339351            progress_bar.setIndeterminate(false);
    340             progress_bar.setValue((int)(((double)current_stages + 0.8d) * MAX) / expected_stages);
     352            setValue((int)(((double)current_stages + 0.8d) * MAX) / expected_stages);
    341353            }
    342354            else {
     
    359371            current_stages++;
    360372            progress_bar.setIndeterminate(false);
    361             progress_bar.setValue((current_stages * MAX) / expected_stages);
     373            setValue((current_stages * MAX) / expected_stages);
    362374            state = BUILD;
    363375        }
     
    379391            // One sixth complete
    380392            progress_bar.setIndeterminate(false);
    381             progress_bar.setValue((int)(((double)current_stages + 0.16d) * MAX) / expected_stages);
     393            setValue((int)(((double)current_stages + 0.16d) * MAX) / expected_stages);
    382394            }
    383395            else if(value.equals(SORTANDRENUMBER_VALUE)) {
    384396            // Two sixths complete
    385397            progress_bar.setIndeterminate(false);
    386             progress_bar.setValue((int)(((double)current_stages + 0.33d) * MAX) / expected_stages);
     398                setValue((int)(((double)current_stages + 0.33d) * MAX) / expected_stages);
    387399            }
    388400            else if(value.equals(PHRASEDATABASES_VALUE)) {
    389401            // Three sixths complete
    390402            progress_bar.setIndeterminate(false);
    391             progress_bar.setValue((int)(((double)current_stages + 0.5d) * MAX) / expected_stages);
     403                setValue((int)(((double)current_stages + 0.5d) * MAX) / expected_stages);
    392404            }
    393405            else if(value.equals(WORDLEVELINDEXES_VALUE)) {
    394406            // Four sixths complete
    395407            progress_bar.setIndeterminate(false);
    396             progress_bar.setValue((int)(((double)current_stages + 0.66d) * MAX) / expected_stages);
     408            setValue((int)(((double)current_stages + 0.66d) * MAX) / expected_stages);
    397409            }
    398410            else if(value.equals(DOCINFODATABASES_VALUE)) {
    399411            // Five sixths complete
    400412            progress_bar.setIndeterminate(false);
    401             progress_bar.setValue((int)(((double)current_stages + 0.83d) * MAX) / expected_stages);
     413            setValue((int)(((double)current_stages + 0.83d) * MAX) / expected_stages);
    402414            }
    403415            else {
     
    412424            current_stages++;
    413425            progress_bar.setIndeterminate(false);
    414             progress_bar.setValue((current_stages * MAX) / expected_stages);
     426            setValue((current_stages * MAX) / expected_stages);
    415427            state = BUILD;
    416428        }
     
    429441            current_stages++;
    430442            progress_bar.setIndeterminate(false);
    431             progress_bar.setValue((current_stages * MAX) / expected_stages);
     443            setValue((current_stages * MAX) / expected_stages);
    432444            state = BUILD;
    433445        }
     
    455467    expected_stages = 0;
    456468    progress_bar.setIndeterminate(false);
    457     progress_bar.setString(StaticStrings.SPACE_CHARACTER);
    458     progress_bar.setValue(MIN);
     469    progress_bar.setString(null);
     470    setValue(MIN);
    459471    state = BASE;
    460     stop = false;
    461472    progress_bar.updateUI();
    462473    }
    463474
    464475    public void saving() {
     476    }
     477
     478    public void setSharedProgressBar(JProgressBar shared_progress_bar) {
     479    this.shared_progress_bar = shared_progress_bar;
    465480    }
    466481
     
    468483     * @param state The desired state of the stop flag as a <strong>boolean</strong>.
    469484     */
    470     public void setStop(boolean state) {
    471     stop = state;
     485    public synchronized void setStop(boolean state) {
     486    this.stop = state;
    472487    progress_bar.setIndeterminate(false);
    473488    }
     
    476491     */
    477492    public void start() {
    478     progress_bar.setValue(MIN);
     493    stop = false;
     494    setValue(MIN);
    479495    expected_stages = 3; // Always compress text, create info database and auxiliary creation
    480496    // Retrieve cdm.
     
    507523    public void stop() {
    508524    progress_bar.setIndeterminate(false);
    509     progress_bar.setValue(MAX);
     525    setValue(MAX);
     526    }
     527
     528    private void setValue(int value) {
     529    progress_bar.setValue(value);
     530    // Incrementing the shared progress bar is a little more problematic as we may very well be trying to set it to MIN but instead set it to halfway if we're not careful.
     531    if(value > MIN) {
     532        shared_progress_bar.setValue(MAX + value);
     533    }
    510534    }
    511535}
Note: See TracChangeset for help on using the changeset viewer.