@Override public void setKeepPreviewEdits(boolean keep) { super.setKeepPreviewEdits(keep); if (!keep) fCopier= null; } }
private TextEditBasedChangeGroup[] getSortedChangeGroups(TextEditBasedChange change) { TextEditBasedChangeGroup[] edits= change.getChangeGroups(); List<TextEditBasedChangeGroup> result= new ArrayList<>(edits.length); for (int i= 0; i < edits.length; i++) { if (!edits[i].getTextEditGroup().isEmpty()) result.add(edits[i]); } Comparator<TextEditBasedChangeGroup> comparator= new OffsetComparator(); Collections.sort(result, comparator); return result.toArray(new TextEditBasedChangeGroup[result.size()]); }
/** * Adds a {@link TextEditGroup text edit group}. This method is a convenience * method for calling <code>change.addChangeGroup(new * TextEditBasedChangeGroup(change, group));</code>. * * @param group the text edit group to add */ public void addTextEditGroup(TextEditGroup group) { addChangeGroup(new TextEditBasedChangeGroup(this, group)); }
TextEditBasedChangeGroup group= extended.group; TextEditBasedChange editChange= group.getTextEditChange(); setInput(editChange, editChange.getCurrentContent(group.getRegion(), true, 2, new NullProgressMonitor()), editChange.getPreviewContent(new TextEditBasedChangeGroup[] { group }, group.getRegion(), true, 2, new NullProgressMonitor()), editChange.getTextType()); return; } else if (extended.groups != null && extended.groups.length > 0 && extended.range != null) { setInput(editChange, editChange.getCurrentContent(extended.range, true, 0, new NullProgressMonitor()), editChange.getPreviewContent(groups, extended.range, true, 0, new NullProgressMonitor()), editChange.getTextType()); return; setInput(editChange, editChange.getCurrentContent(new NullProgressMonitor()), editChange.getPreviewContent(new NullProgressMonitor()), editChange.getTextType()); return; } else {
protected ChildNode[] createChildNodes() { final TextEditBasedChange change= getTextEditBasedChange(); ICompilationUnit cunit= (ICompilationUnit) change.getAdapter(ICompilationUnit.class); if (cunit != null) { List children= new ArrayList(5); Map map= new HashMap(20); TextEditBasedChangeGroup[] changes= getSortedChangeGroups(change); for (int i= 0; i < changes.length; i++) { TextEditBasedChangeGroup tec= changes[i]; try { IJavaElement element= getModifiedJavaElement(tec, cunit); if (element.equals(cunit)) { children.add(createTextEditGroupNode(this, tec)); } else { JavaLanguageNode pjce= getChangeElement(map, element, children, this); pjce.addChild(createTextEditGroupNode(pjce, tec)); } } catch (JavaModelException e) { children.add(createTextEditGroupNode(this, tec)); } } return (ChildNode[]) children.toArray(new ChildNode[children.size()]); } else { return EMPTY_CHILDREN; } }
@SuppressWarnings("rawtypes") @Override public boolean hasOneGroupCategory(List groupCategories) { return getTextEditBasedChangeDelegate().hasOneGroupCategory(groupCategories); }
@Override public String getCurrentContent(IRegion region, boolean expandRegionToFullLine, int surroundingLines, IProgressMonitor pm) throws CoreException { return getTextEditBasedChangeDelegate().getCurrentContent(region, expandRegionToFullLine, surroundingLines, pm); }
@Override public String getPreviewContent(TextEditBasedChangeGroup[] changeGroups, IRegion region, boolean expandRegionToFullLine, int surroundingLines, IProgressMonitor pm) throws CoreException { return getTextEditBasedChangeDelegate().getPreviewContent(changeGroups, region, expandRegionToFullLine, surroundingLines, pm); }
@Override public String getTextType() { return getTextEditBasedChangeDelegate().getTextType(); }
private TextEditBasedChangeGroup[] getSortedChangeGroups(TextEditBasedChange change) { TextEditBasedChangeGroup[] groups= change.getChangeGroups(); List result= new ArrayList(groups.length); for (int i= 0; i < groups.length; i++) { if (!groups[i].getTextEditGroup().isEmpty()) result.add(groups[i]); } Comparator comparator= new OffsetComparator(); Collections.sort(result, comparator); return (TextEditBasedChangeGroup[])result.toArray(new TextEditBasedChangeGroup[result.size()]); }
@Override public void addChangeGroup(TextEditBasedChangeGroup group) { getTextEditBasedChangeDelegate().addChangeGroup(group); }
@Override protected ChildNode[] createChildNodes() { TextEditBasedChange change= getTextEditBasedChange(); if (change instanceof MultiStateTextFileChange) { return new ChildNode[0]; // no edit preview & edit disabling possible in the MultiStateTextFileChange (edits must be applied in sequence) } ICompilationUnit cunit= change.getAdapter(ICompilationUnit.class); if (cunit != null) { List<ChildNode> children= new ArrayList<>(5); Map<IJavaElement, JavaLanguageNode> map= new HashMap<>(20); TextEditBasedChangeGroup[] changes= getSortedChangeGroups(change); for (int i= 0; i < changes.length; i++) { TextEditBasedChangeGroup tec= changes[i]; try { IJavaElement element= getModifiedJavaElement(tec, cunit); if (element.equals(cunit)) { children.add(createTextEditGroupNode(this, tec)); } else { JavaLanguageNode pjce= getChangeElement(map, element, children, this); pjce.addChild(createTextEditGroupNode(pjce, tec)); } } catch (JavaModelException e) { children.add(createTextEditGroupNode(this, tec)); } } return children.toArray(new ChildNode[children.size()]); } else { return EMPTY_CHILDREN; } }
boolean hasOneGroupCategory(List categories) { return ((TextEditBasedChange)getChange()).hasOneGroupCategory(categories); }
@Override public String getCurrentContent(IProgressMonitor pm) throws CoreException { return getTextEditBasedChangeDelegate().getCurrentContent(pm); }
@Override public String getPreviewContent(IProgressMonitor pm) throws CoreException { return getTextEditBasedChangeDelegate().getPreviewContent(pm); }
/** * {@inheritDoc} */ public void setKeepPreviewEdits(boolean keep) { super.setKeepPreviewEdits(keep); if (!keep) fCopier= null; } }
private TextEditBasedChangeGroup[] getSortedChangeGroups(TextEditBasedChange change) { TextEditBasedChangeGroup[] edits= change.getChangeGroups(); List<TextEditBasedChangeGroup> result= new ArrayList<>(edits.length); for (int i= 0; i < edits.length; i++) { if (!edits[i].getTextEditGroup().isEmpty()) result.add(edits[i]); } Comparator<TextEditBasedChangeGroup> comparator= new OffsetComparator(); Collections.sort(result, comparator); return result.toArray(new TextEditBasedChangeGroup[result.size()]); }
/** * Adds a {@link TextEditGroup text edit group}. This method is a convenience * method for calling <code>change.addChangeGroup(new * TextEditBasedChangeGroup(change, group));</code>. * * @param group the text edit group to add */ public void addTextEditGroup(TextEditGroup group) { addChangeGroup(new TextEditBasedChangeGroup(this, group)); }
@Override protected ChildNode[] createChildNodes() { TextEditBasedChange change= getTextEditBasedChange(); if (change instanceof MultiStateTextFileChange) { return new ChildNode[0]; // no edit preview & edit disabling possible in the MultiStateTextFileChange (edits must be applied in sequence) } ICompilationUnit cunit= change.getAdapter(ICompilationUnit.class); if (cunit != null) { List<ChildNode> children= new ArrayList<>(5); Map<IJavaElement, JavaLanguageNode> map= new HashMap<>(20); TextEditBasedChangeGroup[] changes= getSortedChangeGroups(change); for (int i= 0; i < changes.length; i++) { TextEditBasedChangeGroup tec= changes[i]; try { IJavaElement element= getModifiedJavaElement(tec, cunit); if (element.equals(cunit)) { children.add(createTextEditGroupNode(this, tec)); } else { JavaLanguageNode pjce= getChangeElement(map, element, children, this); pjce.addChild(createTextEditGroupNode(pjce, tec)); } } catch (JavaModelException e) { children.add(createTextEditGroupNode(this, tec)); } } return children.toArray(new ChildNode[children.size()]); } else { return EMPTY_CHILDREN; } }
@Override public void setKeepPreviewEdits(boolean keep) { super.setKeepPreviewEdits(keep); if (!keep) fCopier= null; } }