X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.structural.synchronization.client%2Fsrc%2Forg%2Fsimantics%2Fstructural%2Fsynchronization%2FContinuousSynchronizationJob.java;h=4b4edd7c46dbedf90d12d8c9adbfc3c4af17bb89;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=38b8ce67f7839261eac755ef597eea14c5784395;hpb=24e2b34260f219f0d1644ca7a138894980e25b14;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.structural.synchronization.client/src/org/simantics/structural/synchronization/ContinuousSynchronizationJob.java b/bundles/org.simantics.structural.synchronization.client/src/org/simantics/structural/synchronization/ContinuousSynchronizationJob.java index 38b8ce67f..4b4edd7c4 100644 --- a/bundles/org.simantics.structural.synchronization.client/src/org/simantics/structural/synchronization/ContinuousSynchronizationJob.java +++ b/bundles/org.simantics.structural.synchronization.client/src/org/simantics/structural/synchronization/ContinuousSynchronizationJob.java @@ -1,57 +1,57 @@ -package org.simantics.structural.synchronization; - -import java.util.concurrent.ConcurrentMap; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; -import org.simantics.DatabaseJob; -import org.simantics.Simantics; -import org.simantics.simulation.experiment.ExperimentState; -import org.simantics.simulation.experiment.IExperiment; - -public class ContinuousSynchronizationJob extends DatabaseJob { - - public static final String FAMILY = "ContinuousSynchronizationJob"; - - final private ConcurrentMap currentSyncJobs; - - IExperiment experiment; - - public ContinuousSynchronizationJob(IExperiment experiment, ConcurrentMap currentSyncJobs) { - super("Synchronization"); - this.experiment = experiment; - this.currentSyncJobs = currentSyncJobs; - setPriority(SHORT); - setSystem(false); - } - - @Override - public boolean belongsTo(Object family) { - if (FAMILY == family) return true; - return super.belongsTo(family); - } - - @Override - public boolean shouldRun() { - return currentSyncJobs.remove(experiment, this); - } - - @Override - protected IStatus run(IProgressMonitor monitor) { - try { - //System.out.println("SYNC #" + (++syncCounter)); - monitor.beginTask("", IProgressMonitor.UNKNOWN); - if (experiment.getState() != ExperimentState.DISPOSED) - experiment.refresh(Simantics.getSession()); - return Status.OK_STATUS; - } catch (Throwable t) { - return new Status(IStatus.ERROR, "org.simantics.structural.synchronization.client", "Failed to refresh experiment " - + experiment + " with ID " + experiment.getIdentifier(), t); - } finally { - monitor.done(); - } - } - +package org.simantics.structural.synchronization; + +import java.util.concurrent.ConcurrentMap; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.simantics.DatabaseJob; +import org.simantics.Simantics; +import org.simantics.simulation.experiment.ExperimentState; +import org.simantics.simulation.experiment.IExperiment; + +public class ContinuousSynchronizationJob extends DatabaseJob { + + public static final String FAMILY = "ContinuousSynchronizationJob"; + + final private ConcurrentMap currentSyncJobs; + + IExperiment experiment; + + public ContinuousSynchronizationJob(IExperiment experiment, ConcurrentMap currentSyncJobs) { + super("Synchronization"); + this.experiment = experiment; + this.currentSyncJobs = currentSyncJobs; + setPriority(SHORT); + setSystem(false); + } + + @Override + public boolean belongsTo(Object family) { + if (FAMILY == family) return true; + return super.belongsTo(family); + } + + @Override + public boolean shouldRun() { + return currentSyncJobs.remove(experiment, this); + } + + @Override + protected IStatus run(IProgressMonitor monitor) { + try { + //System.out.println("SYNC #" + (++syncCounter)); + monitor.beginTask("", IProgressMonitor.UNKNOWN); + if (experiment.getState() != ExperimentState.DISPOSED) + experiment.refresh(Simantics.getSession()); + return Status.OK_STATUS; + } catch (Throwable t) { + return new Status(IStatus.ERROR, "org.simantics.structural.synchronization.client", "Failed to refresh experiment " + + experiment + " with ID " + experiment.getIdentifier(), t); + } finally { + monitor.done(); + } + } + } \ No newline at end of file