Example usage for org.eclipse.jface.viewers IContentProvider inputChanged

List of usage examples for org.eclipse.jface.viewers IContentProvider inputChanged

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers IContentProvider inputChanged.

Prototype

default public void inputChanged(Viewer viewer, Object oldInput, Object newInput) 

Source Link

Document

Notifies this content provider that the given viewer's input has been switched to a different element.

Usage

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);
}