beginWork(monitor, 150); IStructureComparator ancestorComparator = fAncestorStructure.getStructureComparator(); IStructureComparator leftComparator = fLeftStructure.getStructureComparator(); IStructureComparator rightComparator = fRightStructure.getStructureComparator();
diff(); } else if (key.equals("ANCESTOR_STRUCTURE_REFRESH")) { //$NON-NLS-1$ fAncestorStructure.refresh(new NullProgressMonitor()); diff(); } else if (key.equals("LEFT_STRUCTURE_REFRESH")) { //$NON-NLS-1$ fLeftStructure.refresh(new NullProgressMonitor()); diff(); } else if (key.equals("RIGHT_STRUCTURE_REFRESH")) { //$NON-NLS-1$ fRightStructure.refresh(new NullProgressMonitor()); diff(); } else if (key.equals("ALL_STRUCTURE_REFRESH")) { //$NON-NLS-1$ fAncestorStructure.refresh(new NullProgressMonitor()); fLeftStructure.refresh(new NullProgressMonitor()); fRightStructure.refresh(new NullProgressMonitor()); diff(); } else {
beginWork(monitor, 150); IStructureComparator ancestorComparator = fAncestorStructure.getStructureComparator(); IStructureComparator leftComparator = fLeftStructure.getStructureComparator(); IStructureComparator rightComparator = fRightStructure.getStructureComparator();
/* package */ void compareInputChanged(ICompareInput input, boolean force, IProgressMonitor monitor) { ITypedElement t= null; boolean changed= false; if (input != null) t= input.getAncestor(); fThreeWay= (t != null); beginWork(monitor, 400); try { if (fAncestorStructure.setInput(t, force, subMonitor(monitor, 100))) changed = true; if (input != null) t= input.getLeft(); if (fLeftStructure.setInput(t, force, subMonitor(monitor, 100))) changed = true; if (input != null) t= input.getRight(); if (fRightStructure.setInput(t, force, subMonitor(monitor, 100))) changed = true; // The compare configuration is nulled when the viewer is disposed CompareConfiguration cc = getCompareConfiguration(); if (changed && cc != null) cc.getContainer().runAsynchronously(diffTask); } finally { endWork(monitor); } }
/** * Calls <code>diff</code> whenever the byte contents changes. * @param changed the object that sent out the notification */ protected void contentChanged(final IContentChangeNotifier changed) { if (fStructureCreator == null) return; if (changed == null) { getCompareConfiguration().getContainer().runAsynchronously(fAncestorStructure.getRefreshTask()); getCompareConfiguration().getContainer().runAsynchronously(fLeftStructure.getRefreshTask()); getCompareConfiguration().getContainer().runAsynchronously(fRightStructure.getRefreshTask()); } else if (changed == fAncestorStructure.getInput()) { getCompareConfiguration().getContainer().runAsynchronously(fAncestorStructure.getRefreshTask()); } else if (changed == fLeftStructure.getInput()) { getCompareConfiguration().getContainer().runAsynchronously(fLeftStructure.getRefreshTask()); } else if (changed == fRightStructure.getInput()) { getCompareConfiguration().getContainer().runAsynchronously(fRightStructure.getRefreshTask()); } else { return; } getCompareConfiguration().getContainer().runAsynchronously(diffTask); }
public boolean setInput(ITypedElement newInput, boolean force, IProgressMonitor monitor) { boolean changed = false; if (force || newInput != fInput) { removeDocumentRangeUpdaters(); if (fInput instanceof IContentChangeNotifier && fContentChangedListener != null) ((IContentChangeNotifier)fInput).removeContentChangeListener(fContentChangedListener); fInput= newInput; if (fInput == null) { if (fStructureComparator instanceof IDisposable) { IDisposable disposable = (IDisposable) fStructureComparator; disposable.dispose(); } fStructureComparator= null; } else { refresh(monitor); changed= true; } if (fInput instanceof IContentChangeNotifier && fContentChangedListener != null) ((IContentChangeNotifier)fInput).addContentChangeListener(fContentChangedListener); } return changed; }
public boolean setInput(ITypedElement newInput, boolean force, IProgressMonitor monitor) { boolean changed = false; if (force || newInput != fInput) { removeDocumentRangeUpdaters(); if (fInput instanceof IContentChangeNotifier && fContentChangedListener != null) ((IContentChangeNotifier)fInput).removeContentChangeListener(fContentChangedListener); fInput= newInput; if (fInput == null) { dispose(); // destroy fStructureComparator fStructureComparator= null; } else { refresh(monitor); changed= true; } if (fInput instanceof IContentChangeNotifier && fContentChangedListener != null) ((IContentChangeNotifier)fInput).addContentChangeListener(fContentChangedListener); } return changed; }
/** * Calls <code>diff</code> whenever the byte contents changes. * @param changed the object that sent out the notification */ protected void contentChanged(final IContentChangeNotifier changed) { if (fStructureCreator == null) return; if (changed == null) { getCompareConfiguration().getContainer().runAsynchronously(fAncestorStructure.getRefreshTask()); getCompareConfiguration().getContainer().runAsynchronously(fLeftStructure.getRefreshTask()); getCompareConfiguration().getContainer().runAsynchronously(fRightStructure.getRefreshTask()); } else if (changed == fAncestorStructure.getInput()) { getCompareConfiguration().getContainer().runAsynchronously(fAncestorStructure.getRefreshTask()); } else if (changed == fLeftStructure.getInput()) { getCompareConfiguration().getContainer().runAsynchronously(fLeftStructure.getRefreshTask()); } else if (changed == fRightStructure.getInput()) { getCompareConfiguration().getContainer().runAsynchronously(fRightStructure.getRefreshTask()); } else { return; } getCompareConfiguration().getContainer().runAsynchronously(diffTask); }
/** * Overridden to call the <code>save</code> method on the structure creator after * nodes have been copied from one side to the other side of an input object. * * @param leftToRight if <code>true</code> the left side is copied to the right side. * If <code>false</code> the right side is copied to the left side */ @Override protected void copySelected(boolean leftToRight) { super.copySelected(leftToRight); if (fStructureCreator != null) { fStructureCreator.save( leftToRight ? fRightStructure.getStructureComparator() : fLeftStructure.getStructureComparator(), leftToRight ? fRightStructure.getInput() : fLeftStructure.getInput()); } }
/** * Overridden to call the <code>save</code> method on the structure creator after * nodes have been copied from one side to the other side of an input object. * * @param leftToRight if <code>true</code> the left side is copied to the right side. * If <code>false</code> the right side is copied to the left side */ protected void copySelected(boolean leftToRight) { super.copySelected(leftToRight); if (fStructureCreator != null) fStructureCreator.save( leftToRight ? fRightStructure.getStructureComparator() : fLeftStructure.getStructureComparator(), leftToRight ? fRightStructure.getInput() : fLeftStructure.getInput()); }
public void refresh(IProgressMonitor monitor) { IStructureComparator oldComparator = fStructureComparator; fStructureComparator= createStructure(monitor); // Dispose of the old one after in case they are using a shared document // (i.e. disposing it after will hold on to a reference to the document // so it doesn't get freed and reloaded) if (oldComparator instanceof IDisposable) { IDisposable disposable = (IDisposable) oldComparator; disposable.dispose(); } }
public void refresh(IProgressMonitor monitor) { IStructureComparator oldComparator = fStructureComparator; fStructureComparator= createStructure(monitor); // Dispose of the old one after in case they are using a shared document // (i.e. disposing it after will hold on to a reference to the document // so it doesn't get freed and reloaded) if (oldComparator instanceof IDisposable) { IDisposable disposable = (IDisposable) oldComparator; disposable.dispose(); } }