/**
* provider progress listener
*/
- private SegmentStoreProviderProgressListener fListener;
+ private final @Nullable SegmentStoreProviderProgressListener fListener;
/**
* Flag to create columns once
* Table viewer of the view
*/
public AbstractSegmentStoreTableViewer(TableViewer tableViewer) {
+ this(tableViewer, true);
+ }
+
+ /**
+ * Constructor
+ *
+ * @param tableViewer
+ * Table viewer of the view
+ * @param withListener
+ * Whether to add a listener to this table viewer. For instance,
+ * for table viewers who are part of another view who update the
+ * table's data, this value can be <code>false</code> so only the
+ * other listeners will update the data
+ * @since 1.4
+ */
+ public AbstractSegmentStoreTableViewer(TableViewer tableViewer, boolean withListener) {
super(tableViewer);
// Sort order of the content provider is by start time by default
getTableViewer().setContentProvider(new SegmentStoreContentProvider());
createColumns();
getTableViewer().getTable().addSelectionListener(new TableSelectionListener());
addPackListener();
- fListener = new SegmentStoreProviderProgressListener();
+ fListener = withListener ? new SegmentStoreProviderProgressListener() : null;
}
// ------------------------------------------------------------------------
createProviderColumns();
getTableViewer().getTable().addSelectionListener(new TableSelectionListener());
addPackListener();
- fListener = new SegmentStoreProviderProgressListener();
table.setRedraw(true);
}
// If results are null, then add completion listener and if the provider
// is an analysis, run the analysis
updateModel(null);
- provider.addListener(fListener);
+ SegmentStoreProviderProgressListener listener = fListener;
+ if (listener != null) {
+ provider.addListener(listener);
+ }
if (provider instanceof IAnalysisModule) {
((IAnalysisModule) provider).schedule();
}
ISegmentStoreProvider provider = getSegmentProvider();
if ((provider != null)) {
- provider.removeListener(fListener);
+ SegmentStoreProviderProgressListener listener = fListener;
+ if (listener != null) {
+ provider.removeListener(listener);
+ }
}
}
}
* The ID of the analysis this viewer is for
*/
public SegmentStoreTableViewer(TableViewer tableViewer, String analysisId) {
- super(tableViewer);
+ super(tableViewer, true);
+ fAnalysisId = analysisId;
+ }
+
+ /**
+ * Constructor
+ *
+ * @param tableViewer
+ * Table viewer of the view
+ * @param analysisId
+ * The ID of the analysis this viewer is for
+ * @param withListener
+ * Whether to add a listener to this table viewer. For instance,
+ * for table viewers who are part of another view who update the
+ * table's data, this value can be <code>false</code> so only the
+ * other listeners will update the data
+ * @since 1.4
+ */
+ public SegmentStoreTableViewer(TableViewer tableViewer, String analysisId, boolean withListener) {
+ super(tableViewer, withListener);
fAnalysisId = analysisId;
}