Skip to content

Commit 399f24e

Browse files
committed
Fix 'diffLabel' IllegalArgumentException in add starters wizard
1 parent 1abd3e6 commit 399f24e

File tree

1 file changed

+48
-1
lines changed
  • eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/src/org/springframework/ide/eclipse/boot/wizard/starters/eclipse

1 file changed

+48
-1
lines changed

eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/src/org/springframework/ide/eclipse/boot/wizard/starters/eclipse/ResourceCompareInput.java

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,16 @@
4242
import org.eclipse.compare.CompareConfiguration;
4343
import org.eclipse.compare.CompareEditorInput;
4444
import org.eclipse.compare.CompareUI;
45+
import org.eclipse.compare.CompareViewerPane;
4546
import org.eclipse.compare.CompareViewerSwitchingPane;
4647
import org.eclipse.compare.IStreamContentAccessor;
4748
import org.eclipse.compare.ITypedElement;
49+
import org.eclipse.compare.Splitter;
4850
import org.eclipse.compare.contentmergeviewer.ContentMergeViewer;
4951
import org.eclipse.compare.contentmergeviewer.TextMergeViewer;
52+
import org.eclipse.compare.internal.AbstractViewer;
5053
import org.eclipse.compare.internal.BufferedResourceNode;
54+
import org.eclipse.compare.internal.CompareContentViewerSwitchingPane;
5155
import org.eclipse.compare.internal.CompareMessages;
5256
import org.eclipse.compare.internal.CompareUIPlugin;
5357
import org.eclipse.compare.internal.IMergeViewerTestAdapter;
@@ -76,6 +80,7 @@
7680
import org.eclipse.jface.viewers.ICheckStateProvider;
7781
import org.eclipse.jface.viewers.ISelection;
7882
import org.eclipse.jface.viewers.IStructuredSelection;
83+
import org.eclipse.jface.viewers.OpenEvent;
7984
import org.eclipse.jface.viewers.StructuredSelection;
8085
import org.eclipse.jface.viewers.Viewer;
8186
import org.eclipse.osgi.util.NLS;
@@ -665,7 +670,7 @@ public void acceptAllChanges() {
665670
Set<Object> visited = new HashSet<>();
666671
Queue<Object> toVisit = new LinkedList<>(getStructuredSelection().toList());
667672
// To avoid problems with currently opened TextMergeViewer close whatever was opened
668-
// fireOpen(new OpenEvent(this, StructuredSelection.EMPTY));
673+
fireOpen(new OpenEvent(this, StructuredSelection.EMPTY));
669674
while (!toVisit.isEmpty()) {
670675
Object o = toVisit.poll();
671676
if (!visited.contains(o)) {
@@ -736,6 +741,48 @@ public Viewer getMergeContentViewer() {
736741
}
737742
}
738743

744+
class CustomNullViewer extends AbstractViewer {
745+
746+
private final Control fDummy;
747+
private final Composite parent;
748+
private boolean firstSetInput = true;
749+
750+
public CustomNullViewer(Composite parent) {
751+
this.parent = parent;
752+
fDummy= new Tree(parent, SWT.NULL);
753+
754+
}
755+
756+
@Override
757+
public void setInput(Object input) {
758+
if (!parent.isDisposed() && firstSetInput) {
759+
CompareViewerPane.clearToolBar(parent);
760+
}
761+
super.setInput(input);
762+
firstSetInput = false;
763+
}
764+
765+
@Override
766+
public Control getControl() {
767+
return fDummy;
768+
}
769+
}
770+
771+
@Override
772+
protected CompareViewerSwitchingPane createContentViewerSwitchingPane(Splitter parent, int style, CompareEditorInput cei) {
773+
return new CompareContentViewerSwitchingPane(parent, style, cei) {
774+
@Override
775+
protected Viewer getViewer(Viewer oldViewer, Object input) {
776+
if (input instanceof MyDiffNode n) {
777+
if (ITypedElement.FOLDER_TYPE.equals(n.getId().getType())) {
778+
return new CustomNullViewer(this);
779+
}
780+
}
781+
return super.getViewer(oldViewer, input);
782+
}
783+
};
784+
}
785+
739786
@Override
740787
public Viewer createDiffViewer(Composite parent) {
741788
fDiffViewer= new CustomDiffTreeViewer(parent, getCompareConfiguration());

0 commit comments

Comments
 (0)