aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/EclipseBasedProgressMonitor.xtend
blob: be35b64aaa523cfdd1b5e386d959029b0c75b35b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package hu.bme.mit.inf.dslreasoner.application.execution

import hu.bme.mit.inf.dslreasoner.logic.model.builder.SolverProgressMonitor
import org.eclipse.core.runtime.IProgressMonitor

class EclipseBasedProgressMonitor extends SolverProgressMonitor{
	val IProgressMonitor internalMonitor
	
	public new(IProgressMonitor internalMonitor) {
		this.internalMonitor = internalMonitor
	}
	var double currentDouble = 0.0
	var int currentInt = 0
	
	override protected processWorked(double amount) {
		val newDouble = currentDouble+amount
		val newInt = (newDouble*1000).intValue
		internalMonitor.worked(newInt-currentInt)
		currentDouble = newDouble
		currentInt = newInt
	}
	
	override isCancelled() {
		super.isCancelled() || internalMonitor.isCanceled
	}
	
}