@Override protected void handleDispose(DisposeEvent event) { super.handleDispose(event); if (fColorManager != null) fColorManager.dispose(); }
private void configureSourceViewer(SourceViewer sourceViewer, boolean editable, ContributorInfo contributor) { setEditable(sourceViewer, editable); configureTextViewer(sourceViewer); if (editable && contributor != null) { IDocument document = sourceViewer.getDocument(); if (document != null) contributor.connectPositionUpdater(document); } if (!isCursorLinePainterInstalled(sourceViewer)) getSourceViewerDecorationSupport(sourceViewer).install(fPreferenceStore); }
@Override public Viewer createViewer(Composite parent, CompareConfiguration mp) { return new TextMergeViewer(parent, mp); } }
/* package */ void update(boolean includeControls) { if (getControl().isDisposed()) return; if (fHasErrors) { resetDiffs(); } else { doDiff(); } if (includeControls) updateControls(); updateVScrollBar(); updatePresentation(); }
@Override protected void handleCompareInputChange() { try { beginRefresh(); super.handleCompareInputChange(); } finally { endRefresh(); } }
private MergeSourceViewer createPart(Composite parent) { final MergeSourceViewer viewer = new MergeSourceViewer( createSourceViewer(parent, getDirection()), getResourceBundle(), getCompareConfiguration().getContainer()); final StyledText te= viewer.getSourceViewer().getTextWidget(); e -> paint(e, viewer) ); te.addKeyListener( verticalPosition -> syncViewport(viewer) ); te.setBackground(getColor(parent.getDisplay(), fBackground)); contributeFindAction(viewer); contributeGotoLineAction(viewer); contributeChangeEncodingAction(viewer); contributeDiffBackgroundListener(viewer);
private void updateControls() { if (getControl().isDisposed()) return; boolean rightToLeft= false; updateStatus(fCurrentDiff); updateResolveStatus(); IMergeViewerContentProvider cp= getMergeContentProvider(); if (cp != null) { if (!isPatchHunk()) { rightToLeft= cp.isLeftEditable(getInput()); leftToRight= cp.isRightEditable(getInput()); if (fHighlightRanges && fCurrentDiff != null && isThreeWay() && !isIgnoreAncestor()) { fDirectionLabel.setImage(fCurrentDiff.getImage()); } else { a.setEnabled(isNavigationButtonEnabled(true, false)); a.setEnabled(isNavigationButtonEnabled(false, false)); a.setEnabled(isNavigationButtonEnabled(true, true)); a.setEnabled(isNavigationButtonEnabled(false, true));
fCompareConfiguration.setRightEditable(false); fPreviewViewer= new TextMergeViewer(parent, SWT.BORDER, fCompareConfiguration); fPreviewViewer.setInput( new DiffNode(Differencer.CONFLICTING, new FakeInput("ComparePreferencePage.previewAncestor"), //$NON-NLS-1$ Control c= fPreviewViewer.getControl(); c.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) {
fAncestor= createPart(composite); setEditable(fAncestor.getSourceViewer(), false); fAncestor.getSourceViewer().getTextWidget().getAccessible().addAccessibleListener(new AccessibleAdapter() { @Override fHeaderPainter= new HeaderPainter(); fSummaryHeader.addPaintListener(fHeaderPainter); updateResolveStatus(); fLeft= createPart(composite); fLeft.getSourceViewer().getTextWidget().getVerticalBar().setVisible(!fSynchronizedScrolling); fLeft.getSourceViewer().getTextWidget().getAccessible().addAccessibleListener(new AccessibleAdapter() { fRight= createPart(composite); fRight.getSourceViewer().getTextWidget().getVerticalBar().setVisible(!fSynchronizedScrolling); fRight.getSourceViewer().getTextWidget().getAccessible().addAccessibleListener(new AccessibleAdapter() { IWorkbenchPart part = getCompareConfiguration().getContainer().getWorkbenchPart(); hsynchViewport(fAncestor.getSourceViewer(), fLeft.getSourceViewer(), fRight.getSourceViewer()); hsynchViewport(fLeft.getSourceViewer(), fAncestor.getSourceViewer(), fRight.getSourceViewer()); hsynchViewport(fRight.getSourceViewer(), fAncestor.getSourceViewer(), fLeft.getSourceViewer()); e -> { int vpos= ((ScrollBar) e.widget).getSelection(); synchronizedScrollVertical(vpos); IWorkbenchPart workbenchPart = getCompareConfiguration().getContainer().getWorkbenchPart(); if (workbenchPart != null) {
int scrollbarHeight= trim.height + trim.x; Composite composite= (Composite) getControl(); fCenter= createCenterControl(composite); fCenter.setBounds(x, y, centerWidth, height-scrollbarHeight); x+= centerWidth; updateVScrollBar(); refreshBirdsEyeView();
setupDocument(newDocument); newDocument = createDocument(); DocumentManager.put(fElement, newDocument); setupDocument(newDocument); } else if (fDocumentProvider == null) { newDocument= ((IDocumentRange) parent).getDocument(); newDocument.addPositionCategory(DIFF_RANGE_CATEGORY); Object input= this.fViewer.getInput(); range= this.fViewer.getNewRange(fLeg, input); if (range == null) { int pos= 0; if (input instanceof ICompareInput) pos= this.fViewer.findInsertionPosition(fLeg, (ICompareInput) input); range= new Position(pos, 0); try {
@Override public void setInput(Object input) { if (input instanceof ICompareInput) { IJavaProject project= getJavaProject((ICompareInput)input); if (project != null) { setPreferenceStore(createChainedPreferenceStore(project)); } } super.setInput(input); }
private Control createPreviewer(Composite parent) { final CompareConfiguration compareConfiguration = new CompareConfiguration(); compareConfiguration.setLeftLabel(ResourceUtil.getString("CompareResultDialog.expectedLabel")); //$NON-NLS-1$ compareConfiguration.setLeftEditable(false); compareConfiguration.setRightLabel(ResourceUtil.getString("CompareResultDialog.actualLabel")); //$NON-NLS-1$ compareConfiguration.setRightEditable(false); compareConfiguration.setProperty(CompareConfiguration.IGNORE_WHITESPACE, Boolean.FALSE); fViewer = new CompareResultMergeViewer(parent, SWT.NONE, compareConfiguration); fViewer.setInput(new DiffNode(new CompareElement(fExpected), new CompareElement(fActual))); Control control = fViewer.getControl(); control.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { if(compareConfiguration != null) { compareConfiguration.dispose(); } } }); return control; }
protected int findInsertionPosition(char type, ICompareInput input) { int pos= super.findInsertionPosition(type, input); if (pos != 0) return pos;
@Override protected void setEditable(ISourceViewer sourceViewer, boolean state) { super.setEditable(sourceViewer, state); if (fEditor != null) { Object editor= fEditor.get(sourceViewer); if (editor instanceof CompilationUnitEditorAdapter) ((CompilationUnitEditorAdapter)editor).setEditable(state); } }
private void endOfDocumentReached(boolean down) { Control c= getControl(); if (Utilities.okToUse(c)) { handleEndOfDocumentReached(c.getShell(), down); } }
private int getViewportHeight() { StyledText te= fLeft.getTextWidget(); int vh= te.getClientArea().height; if (vh == 0) { Rectangle trim= te.computeTrim(0, 0, 0, 0); int scrollbarHeight= trim.height; int headerHeight= getHeaderHeight(); Composite composite= (Composite) getControl(); Rectangle r= composite.getClientArea(); vh= r.height-headerHeight-scrollbarHeight; } return vh / te.getLineHeight(); }
@Override protected SourceViewer createSourceViewer(Composite parent, int textOrientation) { SourceViewer sourceViewer; if (getSite() != null) { CompilationUnitEditorAdapter editor= new CompilationUnitEditorAdapter(textOrientation); editor.createPartControl(parent); ISourceViewer iSourceViewer= editor.getViewer(); Assert.isTrue(iSourceViewer instanceof SourceViewer); sourceViewer= (SourceViewer)iSourceViewer; if (fEditor == null) fEditor= new HashMap<>(3); fEditor.put(sourceViewer, editor); } else sourceViewer= super.createSourceViewer(parent, textOrientation); if (fSourceViewer == null) fSourceViewer= new ArrayList<>(); fSourceViewer.add(sourceViewer); return sourceViewer; }
private boolean checkState() { if (fViewer == null) return false; Control control = fViewer.getControl(); if (control == null) return false; return !control.isDisposed(); }
@Override protected IEditorInput getEditorInput(ISourceViewer sourceViewer) { IEditorInput editorInput= super.getEditorInput(sourceViewer); if (editorInput == null) return null; if (getSite() == null) return null; if (!(editorInput instanceof IStorageEditorInput)) return null; return editorInput; }