Skip to content

Commit 957cef8

Browse files
committed
[GEF] Fully migrate to the GEF TreeViewer
This removes our copy of the `TreeViewerEditPart` and `TreeViewer` in favor of the upstream classes. In order to use the GEF viewer directly, a virtual `DesignComponent` edit part needs to be used as contents, holding the `Tree` widget. Otherwise the edit part of the first model is not shown.
1 parent 56b01bd commit 957cef8

File tree

31 files changed

+157
-1077
lines changed

31 files changed

+157
-1077
lines changed

org.eclipse.wb.core.databinding/src/org/eclipse/wb/internal/core/databinding/ui/BindingElementsComposite.java

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,16 @@
1919
import org.eclipse.wb.internal.core.databinding.Messages;
2020
import org.eclipse.wb.internal.core.databinding.model.IBindingInfo;
2121
import org.eclipse.wb.internal.core.databinding.model.IDatabindingsProvider;
22+
import org.eclipse.wb.internal.core.editor.TreeTransfer;
2223
import org.eclipse.wb.internal.core.utils.execution.ExecutionUtils;
2324
import org.eclipse.wb.internal.core.utils.ui.GridDataFactory;
2425
import org.eclipse.wb.internal.core.utils.ui.GridLayoutFactory;
2526
import org.eclipse.wb.internal.core.utils.ui.TableFactory;
26-
import org.eclipse.wb.internal.gef.tree.dnd.TreeTransfer;
2727

2828
import org.eclipse.jface.dialogs.IDialogSettings;
2929
import org.eclipse.jface.dialogs.MessageDialog;
3030
import org.eclipse.jface.viewers.ArrayContentProvider;
31-
import org.eclipse.jface.viewers.DoubleClickEvent;
32-
import org.eclipse.jface.viewers.IDoubleClickListener;
33-
import org.eclipse.jface.viewers.ISelectionChangedListener;
3431
import org.eclipse.jface.viewers.IStructuredSelection;
35-
import org.eclipse.jface.viewers.SelectionChangedEvent;
3632
import org.eclipse.jface.viewers.StructuredSelection;
3733
import org.eclipse.jface.viewers.TableViewer;
3834
import org.eclipse.jface.viewers.ViewerDropAdapter;
@@ -47,9 +43,7 @@
4743
import org.eclipse.swt.events.SelectionEvent;
4844
import org.eclipse.swt.events.SelectionListener;
4945
import org.eclipse.swt.widgets.Composite;
50-
import org.eclipse.swt.widgets.Event;
5146
import org.eclipse.swt.widgets.Label;
52-
import org.eclipse.swt.widgets.Listener;
5347
import org.eclipse.swt.widgets.Menu;
5448
import org.eclipse.swt.widgets.MenuItem;
5549
import org.eclipse.swt.widgets.Shell;
@@ -144,27 +138,18 @@ public BindingElementsComposite(Composite parent,
144138
m_bindingViewer.setContentProvider(new ArrayContentProvider());
145139
m_databindingsProvider.configureBindingViewer(settings, m_bindingViewer);
146140
// viewer events
147-
m_bindingViewer.addPostSelectionChangedListener(new ISelectionChangedListener() {
148-
@Override
149-
public void selectionChanged(SelectionChangedEvent event) {
150-
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
151-
handleBindingSelection(selection);
152-
}
141+
m_bindingViewer.addPostSelectionChangedListener(event -> {
142+
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
143+
handleBindingSelection(selection);
153144
});
154-
m_bindingViewer.addDoubleClickListener(new IDoubleClickListener() {
155-
@Override
156-
public void doubleClick(DoubleClickEvent event) {
157-
if (m_editBindingListener != null && !UiUtils.isEmpty(m_bindingViewer.getSelection())) {
158-
m_editBindingListener.widgetSelected(null);
159-
}
145+
m_bindingViewer.addDoubleClickListener(event -> {
146+
if (m_editBindingListener != null && !UiUtils.isEmpty(m_bindingViewer.getSelection())) {
147+
m_editBindingListener.widgetSelected(null);
160148
}
161149
});
162-
m_bindingViewer.getControl().addListener(SWT.KeyDown, new Listener() {
163-
@Override
164-
public void handleEvent(Event event) {
165-
if (event.character == SWT.DEL && !UiUtils.isEmpty(m_bindingViewer.getSelection())) {
166-
deleteBindind();
167-
}
150+
m_bindingViewer.getControl().addListener(SWT.KeyDown, event -> {
151+
if (event.character == SWT.DEL && !UiUtils.isEmpty(m_bindingViewer.getSelection())) {
152+
deleteBindind();
168153
}
169154
});
170155
setupDragAndDrop();

org.eclipse.wb.core.databinding/src/org/eclipse/wb/internal/core/databinding/ui/editor/contentproviders/ChooseClassAndPropertiesUiContentProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2011, 2024 Google, Inc.
2+
* Copyright (c) 2011, 2026 Google, Inc. and others.
33
*
44
* This program and the accompanying materials are made available under the
55
* terms of the Eclipse Public License 2.0 which is available at
@@ -14,6 +14,7 @@
1414

1515
import org.eclipse.wb.internal.core.databinding.Messages;
1616
import org.eclipse.wb.internal.core.databinding.ui.UiUtils;
17+
import org.eclipse.wb.internal.core.editor.TreeTransfer;
1718
import org.eclipse.wb.internal.core.utils.ui.GridDataFactory;
1819
import org.eclipse.wb.internal.core.utils.ui.GridLayoutFactory;
1920

org.eclipse.wb.core.databinding/src/org/eclipse/wb/internal/core/databinding/ui/editor/contentproviders/TreeTransfer.java renamed to org.eclipse.wb.core.java/src/org/eclipse/wb/internal/core/editor/TreeTransfer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2011 Google, Inc.
2+
* Copyright (c) 2011, 2026 Google, Inc. and others.
33
*
44
* This program and the accompanying materials are made available under the
55
* terms of the Eclipse Public License 2.0 which is available at
@@ -10,7 +10,7 @@
1010
* Contributors:
1111
* Google, Inc. - initial API and implementation
1212
*******************************************************************************/
13-
package org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders;
13+
package org.eclipse.wb.internal.core.editor;
1414

1515
import org.eclipse.swt.dnd.ByteArrayTransfer;
1616
import org.eclipse.swt.dnd.TransferData;
@@ -23,7 +23,7 @@
2323
* @author lobas_av
2424
* @coverage bindings.ui
2525
*/
26-
final class TreeTransfer extends ByteArrayTransfer {
26+
public final class TreeTransfer extends ByteArrayTransfer {
2727
public static final TreeTransfer INSTANCE = new TreeTransfer();
2828
private static final String TYPE_NAME = "Tree content provider bindings tranfser";
2929
private static final int TYPE_ID = registerType(TYPE_NAME);

org.eclipse.wb.core.java/src/org/eclipse/wb/internal/core/gef/tools/TabOrderTool.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2011, 2025 Google, Inc. and others.
2+
* Copyright (c) 2011, 2026 Google, Inc. and others.
33
*
44
* This program and the accompanying materials are made available under the
55
* terms of the Eclipse Public License 2.0 which is available at
@@ -195,8 +195,7 @@ protected boolean handleButtonDown(int button) {
195195
@Override
196196
protected void updateTargetUnderMouse() {
197197
// find on clickable layer
198-
EditPart editPart =
199-
getCurrentViewer().findObjectAtExcluding(
198+
EditPart editPart = ((IEditPartViewer) getCurrentViewer()).findObjectAtExcluding(
200199
getLocation(),
201200
getExclusionSet(),
202201
getTargetingConditional(),

org.eclipse.wb.core.java/src/org/eclipse/wb/internal/core/gefTree/EditPartFactory2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
import org.eclipse.wb.internal.core.gefTree.part.FlowContainerGroupEditPart;
2020
import org.eclipse.wb.internal.core.model.nonvisual.AbstractArrayObjectInfo;
2121
import org.eclipse.wb.internal.core.model.nonvisual.FlowContainerGroupInfo;
22-
import org.eclipse.wb.internal.gef.tree.TreeViewer;
2322

2423
import org.eclipse.gef.EditPart;
24+
import org.eclipse.gef.ui.parts.TreeViewer;
2525

2626
/**
2727
* Generic implementation of {@link IEditPartFactory} for {@link TreeViewer} that redirects

org.eclipse.wb.core.java/src/org/eclipse/wb/internal/core/model/property/order/ReorderDialog.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2011, 2023 Google, Inc.
2+
* Copyright (c) 2011, 2026 Google, Inc. and others.
33
*
44
* This program and the accompanying materials are made available under the
55
* terms of the Eclipse Public License 2.0 which is available at
@@ -15,13 +15,13 @@
1515
import org.eclipse.wb.core.model.AbstractComponentInfo;
1616
import org.eclipse.wb.core.model.JavaInfo;
1717
import org.eclipse.wb.internal.core.DesignerPlugin;
18+
import org.eclipse.wb.internal.core.editor.TreeTransfer;
1819
import org.eclipse.wb.internal.core.model.ModelMessages;
1920
import org.eclipse.wb.internal.core.model.util.ObjectsLabelProvider;
2021
import org.eclipse.wb.internal.core.utils.ui.GridDataFactory;
2122
import org.eclipse.wb.internal.core.utils.ui.GridLayoutFactory;
2223
import org.eclipse.wb.internal.core.utils.ui.TableFactory;
2324
import org.eclipse.wb.internal.core.utils.ui.dialogs.ResizableDialog;
24-
import org.eclipse.wb.internal.gef.tree.dnd.TreeTransfer;
2525

2626
import org.eclipse.jface.viewers.ArrayContentProvider;
2727
import org.eclipse.jface.viewers.CheckboxTableViewer;

org.eclipse.wb.core/META-INF/MANIFEST.MF

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -495,8 +495,6 @@ Export-Package: org.eclipse.wb.core.branding,
495495
org.eclipse.wb.swing,
496496
org.eclipse.wb.swt",
497497
org.eclipse.wb.internal.gef.graphical;x-friends:="org.eclipse.wb.tests,org.eclipse.wb.core.java",
498-
org.eclipse.wb.internal.gef.tree;x-friends:="org.eclipse.wb.tests,org.eclipse.wb.core.java",
499-
org.eclipse.wb.internal.gef.tree.dnd;x-friends:="org.eclipse.wb.core.databinding,org.eclipse.wb.core.java,org.eclipse.wb.tests",
500498
org.eclipse.wb.internal.gef.tree.policies;x-internal:=true,
501499
org.eclipse.wb.internal.gef.tree.tools;x-internal:=true
502500
Import-Package: org.apache.commons.collections4;version="[4.4.0,5.0.0)",

org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/tools/Tool.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2011, 2025 Google, Inc. and others.
2+
* Copyright (c) 2011, 2026 Google, Inc. and others.
33
*
44
* This program and the accompanying materials are made available under the
55
* terms of the Eclipse Public License 2.0 which is available at
@@ -69,13 +69,6 @@ public final boolean isActive() {
6969
return getFlag(FLAG_ACTIVE);
7070
}
7171

72-
/**
73-
* Get {@link IEditPartViewer}.
74-
*/
75-
public final IEditPartViewer getCurrentViewer() {
76-
return (IEditPartViewer) super.getCurrentViewer();
77-
}
78-
7972
/**
8073
* Returns the {@link EditDomain}.
8174
*/

org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/tree/DesignTreeEditPart.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import org.eclipse.gef.EditPolicy;
2020
import org.eclipse.gef.Request;
2121
import org.eclipse.gef.commands.Command;
22+
import org.eclipse.gef.editparts.AbstractTreeEditPart;
23+
import org.eclipse.swt.widgets.TreeItem;
2224

2325
import java.util.ArrayList;
2426
import java.util.List;
@@ -28,8 +30,12 @@
2830
*
2931
* @see {@link RequestProcessor}
3032
*/
31-
@SuppressWarnings("removal")
32-
public abstract class DesignTreeEditPart extends TreeEditPart {
33+
public abstract class DesignTreeEditPart extends AbstractTreeEditPart {
34+
35+
@Override
36+
public TreeItem getWidget() {
37+
return (TreeItem) super.getWidget();
38+
}
3339

3440
////////////////////////////////////////////////////////////////////////////
3541
//

org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/tree/TreeEditPart.java

Lines changed: 0 additions & 132 deletions
This file was deleted.

0 commit comments

Comments
 (0)