package org.projectusus.ui.internal.proportions.cockpit;
import static org.projectusus.ui.internal.AnalysisDisplayModel.displayModel;
import org.eclipse.swt.widgets.Display;
import org.projectusus.ui.internal.Snapshot;
public class SnapshotInfoUpdater implements Runnable {
private final SnapshotInfoBuilder builder = new SnapshotInfoBuilder();
private final ISnapshotView view;
private boolean running = true;
public SnapshotInfoUpdater( ISnapshotView view ) {
this.view = view;
}
public synchronized void stop() {
running = false;
}
public synchronized void run() {
if( running ) {
update();
schedule();
}
}
public void start() {
schedule();
}
private synchronized void schedule() {
if( running ) {
Display.getDefault().timerExec( 10000, this );
}
}
private void update() {
update( displayModel().getSnapshot() );
}
public void update( Snapshot snapshot ) {
view.updateSnapshotInfo( builder.buildInfo( snapshot ) );
}
}