List of usage examples for org.eclipse.jface.viewers IContentProvider inputChanged
default public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
From source file:org.eclipse.ui.internal.views.markers.ExtendedMarkersView.java
License:Open Source License
/** * /*w w w. j a v a 2s . c o m*/ */ private void startView() { viewer.setInput(builder.getMarkers()); //always use a clone for Thread safety IContentProvider contentProvider = viewer.getContentProvider(); Markers clone = createViewerInputClone(); if (clone == null) { clone = builder.getMarkers().getClone(); } contentProvider.inputChanged(viewer, getViewerInput(), clone); builder.start(); }
From source file:org.eclipse.ui.internal.views.markers.UIUpdateJob.java
License:Open Source License
public IStatus runInUIThread(IProgressMonitor monitor) { if (monitor.isCanceled()) { return Status.CANCEL_STATUS; }//from ww w. j a v a2 s. c o m TreeViewer viewer = view.getViewer(); if (viewer.getControl().isDisposed()) { return Status.CANCEL_STATUS; } Markers clone = view.getActiveViewerInputClone(); try { updating = true; monitor.beginTask(MarkerMessages.MarkerView_19, IProgressMonitor.UNKNOWN); if (monitor.isCanceled()) { return Status.CANCEL_STATUS; } //view.indicateUpdating(MarkerMessages.MarkerView_19, // true); // If there is only one category and the user has no saved state // show it if (view.getBuilder().isShowingHierarchy() && view.getCategoriesToExpand().isEmpty()) { MarkerCategory[] categories = clone.getCategories(); if (categories != null && categories.length == 1) view.getCategoriesToExpand().add(categories[0].getDescription()); } if (monitor.isCanceled()) return Status.CANCEL_STATUS; /* * always use a clone for Thread safety. We avoid setting the clone * as new input as we would offset the benefits of optimization in * TreeViewer. */ clone = view.createViewerInputClone(); if (clone == null) { // do not update yet,we are changing return Status.CANCEL_STATUS; } /* * we prefer not to check for cancellation beyond this since we * have to show correct marker counts on UI, not an updating message. */ IContentProvider contentProvider = viewer.getContentProvider(); contentProvider.inputChanged(viewer, view.getViewerInput(), clone); viewer.getTree().setRedraw(false); viewer.refresh(true); if (!monitor.isCanceled()) { //do not expand if canceled view.reexpandCategories(); } if (view.getBuilder().readChangeFlags()[0]) { // indicate changes } //show new counts view.updateTitle(); lastUpdateTime = System.currentTimeMillis(); } finally { viewer.getTree().setRedraw(true); view.updateStatusLine((IStructuredSelection) viewer.getSelection()); //view.updateCategoryLabels(); updating = false; } monitor.done(); return Status.OK_STATUS; }
From source file:org.gemoc.execution.sequential.javaxdsml.presentation.GemocFormViewer.java
License:Open Source License
/** * Sets the content provider used by this viewer. * <p>/*from ww w . j av a 2s .c o m*/ * The <code>ContentViewer</code> implementation of this method records the * content provider in an internal state variable. Overriding this method is * generally not required; however, if overriding in a subclass, * <code>super.setContentProvider</code> must be invoked. * </p> * * @param contentProvider * the content provider * @see #getContentProvider */ public void setContentProvider(IContentProvider contentProvider) { Assert.isNotNull(contentProvider); IContentProvider oldContentProvider = this.contentProvider; this.contentProvider = contentProvider; if (oldContentProvider != null) { Object currentInput = getInput(); oldContentProvider.inputChanged(this, currentInput, null); oldContentProvider.dispose(); contentProvider.inputChanged(this, null, currentInput); refresh(); } viewControl.initControl(editingDomain); }