import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.eclipse.core.runtime.IProgressMonitor;
private UpdateThread fUpdateThread;
+ private volatile AtomicInteger fDirty = new AtomicInteger();
+
/**
* Constructor
*
*/
protected void reinitialize() {
fSeriesValues.clear();
+ fDirty.incrementAndGet();
Thread thread = new Thread() {
// Don't use TmfUiRefreshHandler (bug 467751)
@Override
/* Delete the old series */
clearContent();
createSeries();
+ fDirty.decrementAndGet();
}
}
});
public void run() {
LOGGER.info(() -> getLogMessage("UpdateDataStart", "tid=" + getId())); //$NON-NLS-1$ //$NON-NLS-2$
updateData(getWindowStartTime(), getWindowEndTime(), fNumRequests, fMonitor);
+ fDirty.decrementAndGet();
LOGGER.info(() -> getLogMessage("UpdateDataEnd", "tid=" + getId())); //$NON-NLS-1$ //$NON-NLS-2$
}
});
@Override
protected void updateContent() {
+ fDirty.incrementAndGet();
getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
super.clearContent();
}
+ @Override
+ public boolean isDirty() {
+ boolean dirty = super.isDirty();
+
+ if (dirty) {
+ return dirty;
+ }
+
+ // Check the specific dirtiness of this view
+ return fDirty.get() != 0;
+ }
+
}