diff --git a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/tree/DesignTreeEditPart.java b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/tree/DesignTreeEditPart.java
index 0259615d5..d8281cfda 100644
--- a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/tree/DesignTreeEditPart.java
+++ b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/tree/DesignTreeEditPart.java
@@ -14,11 +14,14 @@
import org.eclipse.wb.gef.core.RequestProcessor;
import org.eclipse.wb.gef.core.policies.IRequestEditPolicy;
+import org.eclipse.wb.internal.gef.tree.tools.DoubleClickEditPartTracker;
+import org.eclipse.gef.DragTracker;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.Request;
import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editparts.AbstractTreeEditPart;
import java.util.ArrayList;
import java.util.List;
@@ -28,8 +31,7 @@
*
* @see {@link RequestProcessor}
*/
-@SuppressWarnings("removal")
-public abstract class DesignTreeEditPart extends TreeEditPart {
+public abstract class DesignTreeEditPart extends AbstractTreeEditPart {
////////////////////////////////////////////////////////////////////////////
//
@@ -125,4 +127,15 @@ public void showTargetFeedback(Request request) {
public void eraseTargetFeedback(Request request) {
super.eraseTargetFeedback(processRequestProcessors(request));
}
+
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // DragTracking
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ @Override
+ public DragTracker getDragTracker(Request request) {
+ return new DoubleClickEditPartTracker(this);
+ }
+
}
\ No newline at end of file
diff --git a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/tree/TreeEditPart.java b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/tree/TreeEditPart.java
deleted file mode 100644
index 5210882d9..000000000
--- a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/tree/TreeEditPart.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2026 Google, Inc. and others.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * https://www.eclipse.org/legal/epl-2.0.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Google, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wb.gef.tree;
-
-import org.eclipse.wb.gef.core.tools.Tool;
-import org.eclipse.wb.internal.gef.tree.tools.DoubleClickEditPartTracker;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-import java.util.List;
-
-/**
- * @author lobas_av
- * @coverage gef.tree
- * @deprecated Cast to {@link org.eclipse.gef.TreeEditPart TreeEditPart}
- * directly or extend {@link AbstractTreeEditPart}.
- */
-@SuppressWarnings("removal")
-@Deprecated(forRemoval = true, since = "2026-06")
-public abstract class TreeEditPart extends org.eclipse.wb.gef.core.EditPart implements org.eclipse.gef.TreeEditPart {
- private TreeItem m_widget;
- private boolean m_expandedShouldRestore;
- private boolean m_expanded;
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Widget
- //
- ////////////////////////////////////////////////////////////////////////////
- @Override
- public TreeItem getWidget() {
- return m_widget;
- }
-
- @Override
- public void setWidget(Widget widget) {
- m_widget = (TreeItem) widget;
- //
- List extends EditPart> children = getChildren();
- if (m_widget == null) {
- for (EditPart editPart : children) {
- TreeEditPart treePart = (TreeEditPart) editPart;
- treePart.setWidget(null);
- }
- } else {
- m_widget.setData(this);
- m_widget.addDisposeListener(new DisposeListener() {
- @Override
- public void widgetDisposed(DisposeEvent e) {
- m_expandedShouldRestore = true;
- m_expanded = m_widget.getExpanded();
- }
- });
- }
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // EditPart
- //
- ////////////////////////////////////////////////////////////////////////////
- @Override
- protected void addChildVisual(EditPart childPart, int index) {
- TreeEditPart treePart = (TreeEditPart) childPart;
- treePart.setWidget(new TreeItem(getWidget(), SWT.NONE, index));
- }
-
- @Override
- protected void removeChildVisual(EditPart childPart) {
- TreeEditPart treePart = (TreeEditPart) childPart;
- if (treePart.getWidget() != null) {
- treePart.getWidget().dispose();
- treePart.setWidget(null);
- }
- }
-
- @Override
- protected void updateChildVisual(org.eclipse.wb.gef.core.EditPart childPart, int index) {
- TreeEditPart treePart = (TreeEditPart) childPart;
- if (treePart.getWidget() == null) {
- treePart.setWidget(new TreeItem(getWidget(), SWT.NONE, index));
- }
- }
-
- @Override
- public void refresh() {
- super.refresh();
- if (m_expandedShouldRestore) {
- m_expandedShouldRestore = false;
- TreeItem widget = getWidget();
- if (widget != null && !widget.isDisposed()) {
- widget.setExpanded(m_expanded);
- }
- }
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Policy
- //
- ////////////////////////////////////////////////////////////////////////////
- @Override
- protected void createEditPolicies() {
- //installEditPolicy("TreeToolAdapterEditPolicy", new TreeToolAdapterEditPolicy());
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // DragTracking
- //
- ////////////////////////////////////////////////////////////////////////////
- @Override
- public Tool getDragTracker(Request request) {
- return new DoubleClickEditPartTracker(this);
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.wb.core/src-gef/org/eclipse/wb/internal/gef/tree/RootEditPart.java b/org.eclipse.wb.core/src-gef/org/eclipse/wb/internal/gef/tree/RootEditPart.java
index c2cc6ec9d..2e7f2e176 100644
--- a/org.eclipse.wb.core/src-gef/org/eclipse/wb/internal/gef/tree/RootEditPart.java
+++ b/org.eclipse.wb.core/src-gef/org/eclipse/wb/internal/gef/tree/RootEditPart.java
@@ -12,12 +12,8 @@
*******************************************************************************/
package org.eclipse.wb.internal.gef.tree;
-import org.eclipse.wb.gef.core.IEditPartViewer;
-import org.eclipse.wb.gef.tree.DesignTreeEditPart;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
import org.eclipse.gef.TreeEditPart;
+import org.eclipse.gef.editparts.RootTreeEditPart;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
@@ -27,66 +23,18 @@
* @author lobas_av
* @coverage gef.tree
*/
-public class RootEditPart extends DesignTreeEditPart implements org.eclipse.gef.RootEditPart {
- private IEditPartViewer m_viewer;
- private TreeEditPart m_contentEditPart;
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // EditPart
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Returns the root's {@link EditPartViewer}.
- */
- @Override
- public IEditPartViewer getViewer() {
- return m_viewer;
- }
-
- @Override
- public void setViewer(EditPartViewer viewer) {
- m_viewer = (IEditPartViewer) viewer;
- }
-
+public class RootEditPart extends RootTreeEditPart {
@Override
protected void addChildVisual(org.eclipse.gef.EditPart childPart, int index) {
- m_contentEditPart.setWidget(new TreeItem(getTreeControl(), SWT.NONE));
- }
-
- private Tree getTreeControl() {
- return (Tree) m_viewer.getControl();
+ getContents().setWidget(new TreeItem(getWidget(), SWT.NONE));
}
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // IRootEditPart
- //
- ////////////////////////////////////////////////////////////////////////////
-
- /**
- * Returns the content {@link EditPart}.
- */
@Override
- public EditPart getContents() {
- return m_contentEditPart;
+ public Tree getWidget() {
+ return (Tree) getViewer().getControl();
}
- /**
- * Sets the content {@link EditPart}. A IRootEditPart only has a single child, called its
- * contents.
- */
@Override
- public void setContents(org.eclipse.gef.EditPart contentEditPart) {
- if (m_contentEditPart != null) {
- // remove content
- removeChild(m_contentEditPart);
- }
- //
- m_contentEditPart = (TreeEditPart) contentEditPart;
- //
- if (m_contentEditPart != null) {
- addChild(m_contentEditPart, -1);
- }
+ public TreeEditPart getContents() {
+ return (TreeEditPart) super.getContents();
}
}
\ No newline at end of file
diff --git a/org.eclipse.wb.core/src/org/eclipse/wb/core/gefTree/part/ObjectEditPart.java b/org.eclipse.wb.core/src/org/eclipse/wb/core/gefTree/part/ObjectEditPart.java
index 2d0ca8d91..25345177a 100644
--- a/org.eclipse.wb.core/src/org/eclipse/wb/core/gefTree/part/ObjectEditPart.java
+++ b/org.eclipse.wb.core/src/org/eclipse/wb/core/gefTree/part/ObjectEditPart.java
@@ -33,6 +33,7 @@
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
import java.util.ArrayList;
import java.util.Collections;
@@ -92,7 +93,7 @@ public void refreshed() throws Exception {
// do in setRedraw(false) to avoid flashing after component moving
tree.setRedraw(false);
try {
- refresh();
+ refresh(ObjectEditPart.this);
{
setSelectionIfAllEditParts(m_delayedSelectionObjects);
m_delayedSelectionObjects = null;
@@ -103,6 +104,13 @@ public void refreshed() throws Exception {
}
}
+ private void refresh(EditPart editPart) {
+ editPart.refresh();
+ for (EditPart child : editPart.getChildren()) {
+ refresh(child);
+ }
+ }
+
@Override
public void select(List extends ObjectInfo> objects) throws Exception {
m_delayedSelectionObjects = null;
@@ -173,26 +181,27 @@ private void update() {
}
private void update0() {
+ if (getWidget() instanceof Tree) {
+ return;
+ }
+ TreeItem treeItem = (TreeItem) getWidget();
+
ImageDescriptor imageDescriptor = ObjectInfo.getImageDescriptor(m_object);
String text = ObjectInfo.getText(m_object);
if (imageDescriptor != null) {
Image image = imageDescriptor.createImage();
- getWidget().addDisposeListener(event -> image.dispose());
- getWidget().setImage(image);
+ treeItem.addDisposeListener(event -> image.dispose());
+ treeItem.setImage(image);
}
//Obtain the preference specifying the root object name. If no name is specified then the default is used
String rootObjectName =
InstanceScope.INSTANCE.getNode(IEditorPreferenceConstants.WB_BASIC_UI_PREFERENCE_NODE).get(
IEditorPreferenceConstants.WB_ROOT_OBJ_NAME,
null);
- if (getWidget().getParentItem() == null) {
- if (rootObjectName == null) {
- getWidget().setText(text);
- } else {
- getWidget().setText(rootObjectName);
- }
+ if (treeItem.getParentItem() == null && rootObjectName != null) {
+ treeItem.setText(rootObjectName);
} else {
- getWidget().setText(text);
+ treeItem.setText(text);
}
}
diff --git a/org.eclipse.wb.tests/src/org/eclipse/wb/tests/gef/TreeRobot.java b/org.eclipse.wb.tests/src/org/eclipse/wb/tests/gef/TreeRobot.java
index e232717c3..9dc3babf1 100644
--- a/org.eclipse.wb.tests/src/org/eclipse/wb/tests/gef/TreeRobot.java
+++ b/org.eclipse.wb.tests/src/org/eclipse/wb/tests/gef/TreeRobot.java
@@ -307,8 +307,7 @@ public TreeEditPart[] getEditParts(Object[] models) {
*/
public void setExpanded(TreeEditPart editPart, boolean expanded) {
TreeEditPart parentEditPart = (TreeEditPart) editPart.getParent();
- if (parentEditPart != null) {
- TreeItem widget = (TreeItem) parentEditPart.getWidget();
+ if (parentEditPart != null && parentEditPart.getWidget() instanceof TreeItem widget) {
if (expanded) {
setExpanded(parentEditPart, expanded);
if (widget != null) {
diff --git a/org.eclipse.wb.tests/src/org/eclipse/wb/tests/gef/TreeToolTest.java b/org.eclipse.wb.tests/src/org/eclipse/wb/tests/gef/TreeToolTest.java
index 8ba3fe3e6..5717175a7 100644
--- a/org.eclipse.wb.tests/src/org/eclipse/wb/tests/gef/TreeToolTest.java
+++ b/org.eclipse.wb.tests/src/org/eclipse/wb/tests/gef/TreeToolTest.java
@@ -255,7 +255,7 @@ public void performRequest(Request request) {
@Override
protected void refreshVisuals() {
- getWidget().setText(m_name);
+ ((TreeItem) getWidget()).setText(m_name);
}
@Override