protected Viewer getViewer(Viewer oldViewer, Object input) { if (input instanceof ICompareInput) return findContentViewer(oldViewer, (ICompareInput)input, this); return null; } };
@Override protected Viewer getViewer(Viewer oldViewer, Object input) { if (fSelectedViewerDescriptor != null) { ViewerDescriptor[] array = CompareUIPlugin.getDefault().findContentViewerDescriptor( oldViewer, input, getCompareConfiguration()); List<ViewerDescriptor> list = array != null ? Arrays.asList(array) : Collections.emptyList(); if (list.contains(fSelectedViewerDescriptor)) { // use selected viewer only when appropriate for the new input fCompareEditorInput .setContentViewerDescriptor(fSelectedViewerDescriptor); Viewer viewer = fCompareEditorInput.findContentViewer( oldViewer, (ICompareInput) input, this); return viewer; } // Fallback to default otherwise fSelectedViewerDescriptor = null; } if (input instanceof ICompareInput) { fCompareEditorInput.setContentViewerDescriptor(null); Viewer viewer = fCompareEditorInput.findContentViewer(oldViewer, (ICompareInput) input, this); fCompareEditorInput.setContentViewerDescriptor(fSelectedViewerDescriptor); return viewer; } return null; }
public Viewer findContentViewer(Viewer oldViewer, ICompareInput input, Composite parent) { Viewer newViewer = super.findContentViewer(oldViewer, input, parent); boolean isNewViewer= newViewer != oldViewer; if (isNewViewer && newViewer instanceof IPropertyChangeNotifier && saveable instanceof IPropertyChangeListener) { // Register the model for change events if appropriate final IPropertyChangeNotifier dsp= (IPropertyChangeNotifier) newViewer; final IPropertyChangeListener pcl = (IPropertyChangeListener) saveable; dsp.addPropertyChangeListener(pcl); Control c= newViewer.getControl(); c.addDisposeListener( new DisposeListener() { public void widgetDisposed(DisposeEvent e) { dsp.removePropertyChangeListener(pcl); } } ); } return newViewer; }
@Override public Viewer findContentViewer(Viewer oldViewer, ICompareInput input, Composite parent) { Viewer newViewer = super.findContentViewer(oldViewer, input, parent); boolean isNewViewer= newViewer != oldViewer; if (isNewViewer && newViewer instanceof IPropertyChangeNotifier && saveable instanceof IPropertyChangeListener) { // Register the model for change events if appropriate. final IPropertyChangeNotifier dsp= (IPropertyChangeNotifier) newViewer; final IPropertyChangeListener pcl = (IPropertyChangeListener) saveable; dsp.addPropertyChangeListener(pcl); Control c= newViewer.getControl(); c.addDisposeListener( e -> dsp.removePropertyChangeListener(pcl) ); } return newViewer; }
@Override public Viewer findContentViewer(Viewer pOldViewer, ICompareInput pInput, Composite pParent) { Viewer newViewer = super.findContentViewer(pOldViewer, pInput, pParent); boolean isNewViewer = newViewer != pOldViewer; if (isNewViewer && newViewer instanceof IPropertyChangeNotifier && fLeftSaveable instanceof IPropertyChangeListener && fRightSaveable instanceof IPropertyChangeListener) { // Register the model for change events if appropriate final IPropertyChangeNotifier dsp = (IPropertyChangeNotifier) newViewer; final IPropertyChangeListener lpcl = (IPropertyChangeListener) fLeftSaveable; final IPropertyChangeListener rpcl = (IPropertyChangeListener) fRightSaveable; dsp.addPropertyChangeListener(lpcl); dsp.addPropertyChangeListener(rpcl); Control c = newViewer.getControl(); c.addDisposeListener(e -> { dsp.removePropertyChangeListener(lpcl); dsp.removePropertyChangeListener(rpcl); }); } return newViewer; }