Révision 2559

tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java (revision 2559)
400 400
			// @Override
401 401
			// public void run() {
402 402
			// // TODO Auto-generated method stub
403
			// TXMEditor.this.getResult().getParent().compute(true);
403
			// TXMEditor.this.getResult().getParent().compute(false);
404 404
			// }
405 405
			// };
406 406
			//
......
414 414
						@Override
415 415
						public void run(IProgressMonitor monitor) {
416 416
							// TODO Auto-generated method stub
417
							TXMEditor.this.getResult().getParent().compute(monitor);
417
							TXMEditor.this.getResult().getParent().compute(monitor, false);
418 418
						}
419 419
					};
420 420
					
......
457 457
					dialog.run(true, true, job2);
458 458
				}
459 459
			}
460
			// Canceling
460 461
			catch (ThreadDeath e) {
461
				// TODO Auto-generated catch block
462
				// e.printStackTrace();
462
				
463
				// set parent as canceled
464
				this.getResult().getParent().cancel();
465
				
463 466
				CorporaView.refresh();
464 467
				
465
				// TODO: SJ: may need to clean some things here
466
				
467 468
				this.close();
468 469
				return;
469 470
				
tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java (revision 2559)
2316 2316
	 * @param deepComputing
2317 2317
	 * @return
2318 2318
	 */
2319
	protected boolean compute(IProgressMonitor monitor, boolean deepComputing) {
2319
	public boolean compute(IProgressMonitor monitor, boolean deepComputing) {
2320 2320
		
2321 2321
		// skip the process if the result is already in computing stage
2322 2322
		if (this.computing) {
......
2352 2352
				
2353 2353
				Log.finest("TXMResult.compute(): " + this.getClass().getSimpleName() + ": starting parent (" + this.parent.getClass().getSimpleName() + ") computing process...");
2354 2354
				
2355
				if (!this.parent.compute(monitor, true)) {
2355
				if (!this.parent.compute(monitor, deepComputing)) {
2356 2356
					Log.finest("TXMResult.compute(): " + this.getClass().getSimpleName() + ": failed to compute parent result.");
2357 2357
					this.computing = false;
2358 2358
					return false;
......
2475 2475
				}
2476 2476
				
2477 2477
				// Children cascade computing (if parent == null then it is the Workspace (Tree root))
2478
				if (deepComputing && this.parent != null) {
2478
				if (this.parent != null) {
2479 2479
					
2480 2480
					Log.finest("TXMResult.compute(): " + this.getClass().getSimpleName() + ": cascade computing of " + this.children.size() + " child(ren).");
2481 2481
					
......
2485 2485
						// lazy loading test
2486 2486
						// only compute the child it has already been computed one time ("loaded" one time)
2487 2487
						// or if this result always needs its children synchronized/computed to be consistent (eg. Partition and children parts)
2488
						if (child.mustBeSynchronizedWithParent() || child.hasBeenComputedOnce()) {
2488
						if ((deepComputing && child.hasBeenComputedOnce()) || child.mustBeSynchronizedWithParent()) {
2489 2489
							child.compute(monitor, deepComputing);
2490 2490
						}
2491 2491
						
......
2525 2525
		return true;
2526 2526
	}
2527 2527
	
2528
	
2528 2529
	/**
2530
	 * Sets the result and all its children as canceled (set them as dirty and set computing state as false).
2531
	 * Dedicated to be called when computing has been killed.
2532
	 * 
2533
	 */
2534
	public void cancel() {
2535
		if (this.computing) {
2536
			
2537
			// set back to dirty
2538
			this.dirty = true;
2539
			this.computing = false;
2540
			
2541
			// deep canceling
2542
			for (int i = 0; i < this.children.size(); i++) {
2543
				this.children.get(i).cancel();
2544
			}
2545
			
2546
		}
2547
	}
2548
	
2549
	
2550
	/**
2529 2551
	 * This method is dedicated to be implemented by the inherited result classes to define the computing steps.
2530 2552
	 * 
2531 2553
	 * @return true if the result was computed

Formats disponibles : Unified diff