Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 200058
Collapse All | Expand All

(-)src/org/eclipse/tptp/trace/ui/internal/launcher/core/DataCollectorTreeContentProvider.java (-40 / +48 lines)
Lines 158-203 Link Here
158
	{
158
	{
159
		this.input = newInput instanceof DataCollectorTreeInput ? (DataCollectorTreeInput)newInput : null;
159
		this.input = newInput instanceof DataCollectorTreeInput ? (DataCollectorTreeInput)newInput : null;
160
		if (deferredContentManager == null)
160
		if (deferredContentManager == null)
161
		{
161
		{			
162
			class ExtendedDeferredContentManager extends DeferredTreeContentManager
163
			{
164
				private AbstractTreeViewer viewer;
165
166
				public ExtendedDeferredContentManager(ITreeContentProvider provider, AbstractTreeViewer viewer)
167
				{
168
					super(provider, viewer);
169
					this.viewer = viewer;
170
				}
171
				
172
				protected void addChildren(final Object parent, final Object[] children, IProgressMonitor monitor)
173
				{
174
			        WorkbenchJob updateJob = new WorkbenchJob(TraceMessages.AttachAdding) 
175
			        {
176
			            /** 
177
			             * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
178
			             */
179
			            public IStatus runInUIThread(IProgressMonitor updateMonitor) {
180
			                //Cancel the job if the tree viewer got closed
181
			                if (viewer.getControl().isDisposed() || updateMonitor.isCanceled()) {
182
								return Status.CANCEL_STATUS;
183
							}
184
			                viewer.add(parent, children);
185
			                return Status.OK_STATUS;
186
			            }
187
			        };
188
			        
189
			        updateJob.setSystem(true);
190
			        updateJob.schedule();
191
			        updateJob.addJobChangeListener(new JobChangeAdapter()
192
			        {
193
						public void done(IJobChangeEvent event)
194
						{
195
							profileUI.initializeAfterFetch();
196
						}						
197
			        });
198
				}
199
			};
200
			
201
			deferredContentManager = new ExtendedDeferredContentManager(this, (AbstractTreeViewer)viewer);
162
			deferredContentManager = new ExtendedDeferredContentManager(this, (AbstractTreeViewer)viewer);
202
		}	
163
		}	
203
	}
164
	}
Lines 276-281 Link Here
276
		}
237
		}
277
	}
238
	}
278
	
239
	
240
	class ExtendedDeferredContentManager extends DeferredTreeContentManager
241
	{
242
		private AbstractTreeViewer viewer;
243
244
		public ExtendedDeferredContentManager(ITreeContentProvider provider, AbstractTreeViewer viewer)
245
		{
246
			super(provider, viewer);
247
			this.viewer = viewer;
248
		}
249
		
250
		protected void addChildren(final Object parent, final Object[] children, IProgressMonitor monitor)
251
		{
252
	        WorkbenchJob updateJob = new WorkbenchJob(TraceMessages.AttachAdding) 
253
	        {
254
	            /** 
255
	             * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
256
	             */
257
	            public IStatus runInUIThread(IProgressMonitor updateMonitor) {
258
	                //Cancel the job if the tree viewer got closed
259
	                if (viewer.getControl().isDisposed() || updateMonitor.isCanceled()) {
260
						return Status.CANCEL_STATUS;
261
					}
262
	                viewer.add(parent, children);
263
	                return Status.OK_STATUS;
264
	            }
265
	        };
266
	        
267
	        updateJob.setSystem(true);
268
        
269
	        // Add the job change listener, THEN schedule the job. 
270
	        
271
	        updateJob.addJobChangeListener(new JobChangeAdapter()
272
	        {
273
				public void done(IJobChangeEvent event)
274
				{
275
					profileUI.initializeAfterFetch();
276
				}						
277
	        });
278
279
	        updateJob.schedule();
280
281
282
		}
283
	};
284
285
	
286
	
279
	
287
	
280
	/**
288
	/**
281
	 * This deferred adapter is used to retrieve the data collectors
289
	 * This deferred adapter is used to retrieve the data collectors

Return to bug 200058