- Timestamp:
- 2004-01-16T15:52:11+13:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/shell/GBuildProgressMonitor.java
r6388 r6533 121 121 /** The progress bar this monitor updates. */ 122 122 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; 123 125 124 126 /** Construct a new GBuildProgressMonitor. */ 125 public GBuildProgressMonitor() { 127 public GBuildProgressMonitor(JProgressBar shared_progress_bar) { 128 this.shared_progress_bar = shared_progress_bar; 126 129 progress_bar = new JProgressBar(); 127 130 progress_bar.setMaximum(MAX); 128 131 progress_bar.setMinimum(MIN); 129 progress_bar.setValue(MIN); 132 progress_bar.setString(null); 133 progress_bar.setStringPainted(true); 134 setValue(MIN); 130 135 } 131 136 … … 137 142 progress_bar.setMaximum(MAX); 138 143 progress_bar.setMinimum(MIN); 139 progress_bar.setValue(MIN); 144 progress_bar.setStringPainted(false); 145 progress_bar.setString(null); 146 setValue(MIN); 140 147 } 141 148 … … 155 162 return progress_bar; 156 163 } 164 165 public JProgressBar getSharedProgress() { 166 return shared_progress_bar; 167 } 168 157 169 /** Method to determine the state of the stop flag, which may be set by the visual component that created this monitor. 158 170 * @return A <strong>boolean</strong> indicating if the process has been asked to stop. 159 171 */ 160 public boolean hasSignalledStop() {172 public synchronized boolean hasSignalledStop() { 161 173 return stop; 162 174 } … … 193 205 state = BUILD; 194 206 // Produce a lower detail message if required 195 if(Gatherer.config.getMode() <= threshold ) {207 if(Gatherer.config.getMode() <= threshold && !stop) { 196 208 queue.add(new GShellEvent(event.getSource(), 0, event.getType(), Dictionary.get("GShell.Build.BuildBegun1"), event.getStatus())); 197 209 } … … 254 266 else if(name.equals(BUILD_ELEMENT) && element.isClosed()) { 255 267 progress_bar.setIndeterminate(false); 256 progress_bar.setValue(MAX);268 setValue(MAX); 257 269 state = BASE; 258 270 if(Gatherer.config.getMode() <= threshold) { … … 279 291 // One third complete 280 292 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); 282 294 } 283 295 else if(value.equals(COMPRESSINGTEXT_VALUE)) { 284 296 // Two thirds complete 285 297 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); 287 299 } 288 300 else { … … 302 314 current_stages++; 303 315 progress_bar.setIndeterminate(false); 304 progress_bar.setValue((current_stages * MAX) / expected_stages);316 setValue((current_stages * MAX) / expected_stages); 305 317 state = BUILD; 306 318 } … … 323 335 // One fifth complete 324 336 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); 326 338 } 327 339 else if(value.equals(CREATETHEWEIGHTS_VALUE)) { 328 340 // Two fifths complete 329 341 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); 331 343 } 332 344 else if(value.equals(CREATESTEMMEDDIC_VALUE)) { 333 345 // Three fifths complete 334 346 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); 336 348 } 337 349 else if(value.equals(CREATINGSTEMINDX_VALUE)) { 338 350 // Four fifths complete 339 351 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); 341 353 } 342 354 else { … … 359 371 current_stages++; 360 372 progress_bar.setIndeterminate(false); 361 progress_bar.setValue((current_stages * MAX) / expected_stages);373 setValue((current_stages * MAX) / expected_stages); 362 374 state = BUILD; 363 375 } … … 379 391 // One sixth complete 380 392 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); 382 394 } 383 395 else if(value.equals(SORTANDRENUMBER_VALUE)) { 384 396 // Two sixths complete 385 397 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); 387 399 } 388 400 else if(value.equals(PHRASEDATABASES_VALUE)) { 389 401 // Three sixths complete 390 402 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); 392 404 } 393 405 else if(value.equals(WORDLEVELINDEXES_VALUE)) { 394 406 // Four sixths complete 395 407 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); 397 409 } 398 410 else if(value.equals(DOCINFODATABASES_VALUE)) { 399 411 // Five sixths complete 400 412 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); 402 414 } 403 415 else { … … 412 424 current_stages++; 413 425 progress_bar.setIndeterminate(false); 414 progress_bar.setValue((current_stages * MAX) / expected_stages);426 setValue((current_stages * MAX) / expected_stages); 415 427 state = BUILD; 416 428 } … … 429 441 current_stages++; 430 442 progress_bar.setIndeterminate(false); 431 progress_bar.setValue((current_stages * MAX) / expected_stages);443 setValue((current_stages * MAX) / expected_stages); 432 444 state = BUILD; 433 445 } … … 455 467 expected_stages = 0; 456 468 progress_bar.setIndeterminate(false); 457 progress_bar.setString( StaticStrings.SPACE_CHARACTER);458 progress_bar.setValue(MIN);469 progress_bar.setString(null); 470 setValue(MIN); 459 471 state = BASE; 460 stop = false;461 472 progress_bar.updateUI(); 462 473 } 463 474 464 475 public void saving() { 476 } 477 478 public void setSharedProgressBar(JProgressBar shared_progress_bar) { 479 this.shared_progress_bar = shared_progress_bar; 465 480 } 466 481 … … 468 483 * @param state The desired state of the stop flag as a <strong>boolean</strong>. 469 484 */ 470 public void setStop(boolean state) {471 stop = state;485 public synchronized void setStop(boolean state) { 486 this.stop = state; 472 487 progress_bar.setIndeterminate(false); 473 488 } … … 476 491 */ 477 492 public void start() { 478 progress_bar.setValue(MIN); 493 stop = false; 494 setValue(MIN); 479 495 expected_stages = 3; // Always compress text, create info database and auxiliary creation 480 496 // Retrieve cdm. … … 507 523 public void stop() { 508 524 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 } 510 534 } 511 535 }
Note:
See TracChangeset
for help on using the changeset viewer.