Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.gef.EditDomain;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.RootEditPart;
import org.eclipse.gef.TreeEditPart;
import org.eclipse.gef.editparts.RootTreeEditPart;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
Expand All @@ -39,7 +41,7 @@
*/
public class TreeViewer extends AbstractEditPartViewer {
private Tree m_tree;
private RootEditPart m_rootEditPart;
private RootTreeEditPart m_rootEditPart;
private TreeEventManager m_eventManager;

@Override
Expand All @@ -48,7 +50,8 @@ public Control createControl(Composite parent) {
// handle SWT events
m_eventManager = new TreeEventManager(m_tree, this);
// create root EditPart
m_rootEditPart = new RootEditPart();
m_rootEditPart = new RootTreeEditPart();
m_rootEditPart.setWidget(m_tree);
m_rootEditPart.setViewer(this);
m_rootEditPart.activate();
setRootEditPart(m_rootEditPart);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.eclipse.wb.internal.core.editor.Messages;
import org.eclipse.wb.internal.core.editor.structure.IPage;
import org.eclipse.wb.internal.core.gefTree.EditPartFactory;
import org.eclipse.wb.internal.core.model.ObjectInfoContainer;
import org.eclipse.wb.internal.core.model.ObjectReferenceInfo;
import org.eclipse.wb.internal.core.preferences.IPreferenceConstants;
import org.eclipse.wb.internal.core.utils.execution.ExecutionUtils;
Expand Down Expand Up @@ -265,7 +266,7 @@ public void setInput(EditPartViewer editPartViewer, ObjectInfo rootObject) {
// refresh objects viewer
m_viewer.removeSelectionChangedListener(m_selectionListener_Tree);
try {
m_viewer.setInput(m_rootObject);
m_viewer.setInput(m_rootObject == null ? null : new ObjectInfoContainer(m_rootObject));
} finally {
m_viewer.addSelectionChangedListener(m_selectionListener_Tree);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@
import org.eclipse.wb.core.gefTree.part.ObjectEditPart;
import org.eclipse.wb.core.model.ObjectInfo;
import org.eclipse.wb.gef.core.IEditPartFactory;
import org.eclipse.wb.internal.core.gefTree.part.ObjectContainerEditPart;
import org.eclipse.wb.internal.core.gefTree.part.menu.MenuEditPart;
import org.eclipse.wb.internal.core.gefTree.part.menu.MenuItemEditPart;
import org.eclipse.wb.internal.core.model.ObjectInfoContainer;
import org.eclipse.wb.internal.core.model.menu.IMenuInfo;
import org.eclipse.wb.internal.core.model.menu.IMenuItemInfo;
import org.eclipse.wb.internal.core.model.menu.MenuObjectInfoUtils;
Expand Down Expand Up @@ -104,6 +106,9 @@ private EditPart createEditPartPure(EditPart context, Object model) {
if (model instanceof ObjectInfo) {
return new ObjectEditPart((ObjectInfo) model);
}
if (model instanceof ObjectInfoContainer) {
return new ObjectContainerEditPart((ObjectInfoContainer) model);
}
// no EditPart found
return null;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*******************************************************************************
* Copyright (c) 2026 Patrick Ziegler 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:
* Patrick Ziegler - initial API and implementation
*******************************************************************************/
package org.eclipse.wb.internal.core.gefTree.part;

import org.eclipse.wb.internal.core.model.ObjectInfoContainer;
import org.eclipse.wb.internal.gef.tree.TreeViewer;

import org.eclipse.gef.editparts.AbstractTreeEditPart;

import java.util.Collections;
import java.util.List;

/**
* Edit part for the {@link ObjectInfoContainer} which is used as input for the
* {@link TreeViewer}. This edit part is not shown.
*/
public class ObjectContainerEditPart extends AbstractTreeEditPart {
public ObjectContainerEditPart(ObjectInfoContainer model) {
setModel(model);
}

@Override
protected List<?> getModelChildren() {
return Collections.singletonList(getModel().objectInfo());
}

@Override
public ObjectInfoContainer getModel() {
return (ObjectInfoContainer) super.getModel();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/*******************************************************************************
* Copyright (c) 2026 Patrick Ziegler 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:
* Patrick Ziegler - initial API and implementation
*******************************************************************************/
package org.eclipse.wb.internal.core.model;

import org.eclipse.wb.core.model.ObjectInfo;
import org.eclipse.wb.internal.gef.tree.TreeViewer;

/**
* Container for an {@link ObjectInfo} to be used as input for the
* {@link TreeViewer}. This container is not shown.
*/
public record ObjectInfoContainer(ObjectInfo objectInfo) {
// Accessors created automatically by Java
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public void test_Move_1() throws Exception {
//
ILayoutEditPolicy ipolicy = (request, editPart) -> true;
//
TreeEditPart parent = addEditPart(m_viewer.getRootEditPart(), "parent", actualLogger, ipolicy);
TreeEditPart parent = addEditPart(m_contents, "parent", actualLogger, ipolicy);
TreeEditPart child1 = addEditPart(parent, "child1", actualLogger, ipolicy);
TreeEditPart parent1 = addEditPart(parent, "parent1", actualLogger, ipolicy);
TreeEditPart parent2 = addEditPart(parent, "parent2", actualLogger, ipolicy);
Expand Down Expand Up @@ -157,7 +157,7 @@ public void test_Move_2() throws Exception {
//
ILayoutEditPolicy ipolicy = (request, editPart) -> true;
//
TreeEditPart parent = addEditPart(m_viewer.getRootEditPart(), "parent", actualLogger, ipolicy);
TreeEditPart parent = addEditPart(m_contents, "parent", actualLogger, ipolicy);
TreeEditPart child1 = addEditPart(parent, "child1", actualLogger, null);
addEditPart(parent, "parent1", actualLogger, ipolicy);
//
Expand Down Expand Up @@ -200,7 +200,7 @@ public void test_Move_3() throws Exception {
//
ILayoutEditPolicy ipolicy = (request, editPart) -> true;
//
TreeEditPart parent = addEditPart(m_viewer.getRootEditPart(), "parent", actualLogger, (request, editPart) -> !"child1".equals(editPart.getModel()));
TreeEditPart parent = addEditPart(m_contents, "parent", actualLogger, (request, editPart) -> !"child1".equals(editPart.getModel()));
TreeEditPart child1 = addEditPart(parent, "child1", actualLogger, ipolicy);
addEditPart(parent, "parent1", actualLogger, ipolicy);
//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public void test_DoubleClick() throws Exception {
RequestsLogger actualLogger = new RequestsLogger();
//
ILayoutEditPolicy ipolicy = (request, editPart) -> true;
TreeEditPart parent = addEditPart(m_viewer.getRootEditPart(), "parent", actualLogger, ipolicy);
TreeEditPart parent = addEditPart(m_contents, "parent", actualLogger, ipolicy);
TreeEditPart child1 = addEditPart(parent, "child1", actualLogger, ipolicy);
//
refreshTreeParst(parent);
Expand Down Expand Up @@ -94,7 +94,7 @@ public void test_Drag_1() throws Exception {
//
ILayoutEditPolicy ipolicy = (request, editPart) -> true;
//
TreeEditPart parent = addEditPart(m_viewer.getRootEditPart(), "parent", actualLogger, ipolicy);
TreeEditPart parent = addEditPart(m_contents, "parent", actualLogger, ipolicy);
TreeEditPart child1 = addEditPart(parent, "child1", actualLogger, ipolicy);
TreeEditPart child2 = addEditPart(parent, "child2", actualLogger, ipolicy);
TreeEditPart child3 = addEditPart(parent, "child3", actualLogger, ipolicy);
Expand Down Expand Up @@ -196,7 +196,7 @@ public void test_Drag_2() throws Exception {
//
ILayoutEditPolicy ipolicy = (request, editPart) -> true;
//
TreeEditPart parent = addEditPart(m_viewer.getRootEditPart(), "parent", actualLogger, ipolicy);
TreeEditPart parent = addEditPart(m_contents, "parent", actualLogger, ipolicy);
TreeEditPart child1 = addEditPart(parent, "child1", actualLogger, null);
addEditPart(parent, "child2", actualLogger, ipolicy);
TreeEditPart child3 = addEditPart(parent, "child3", actualLogger, ipolicy);
Expand Down Expand Up @@ -244,7 +244,7 @@ public void test_Drag_3() throws Exception {
//
ILayoutEditPolicy ipolicy = (request, editPart) -> true;
//
TreeEditPart parent = addEditPart(m_viewer.getRootEditPart(), "parent", actualLogger, (request, editPart) -> !"child1".equals(editPart.getModel()));
TreeEditPart parent = addEditPart(m_contents, "parent", actualLogger, (request, editPart) -> !"child1".equals(editPart.getModel()));
TreeEditPart child1 = addEditPart(parent, "child1", actualLogger, ipolicy);
addEditPart(parent, "child2", actualLogger, ipolicy);
TreeEditPart child3 = addEditPart(parent, "child3", actualLogger, ipolicy);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.eclipse.gef.Tool;
import org.eclipse.gef.TreeEditPart;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editparts.AbstractTreeEditPart;
import org.eclipse.gef.requests.SelectionRequest;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
Expand All @@ -47,6 +48,7 @@ public abstract class TreeToolTest extends GefTestCase {
protected EditDomain m_domain;
protected TreeViewer m_viewer;
protected EventSender m_sender;
protected TreeEditPart m_contents;

////////////////////////////////////////////////////////////////////////////
//
Expand All @@ -66,11 +68,14 @@ public Tool getDefaultTool() {
return null;
}
};
// create contents
m_contents = new RequestContentsTreeEditPart();
// create viewer
m_viewer = new TreeViewer();
m_viewer.createControl(m_shell);
m_viewer.getControl().setSize(500, 400);
m_viewer.setEditDomain(m_domain);
m_viewer.setContents(m_contents);
// create sender
m_sender = new EventSender(m_viewer.getControl());
}
Expand Down Expand Up @@ -144,11 +149,7 @@ protected final TreeEditPart addEditPart(EditPart parentEditPart,
RequestsLogger actualLogger,
ILayoutEditPolicy ipolicy) throws Exception {
RequestTreeEditPart editPart = new RequestTreeEditPart(name, actualLogger, ipolicy);
if (m_viewer.getRootEditPart() == parentEditPart) {
m_viewer.getRootEditPart().setContents(editPart);
} else {
addChildEditPart(parentEditPart, editPart);
}
addChildEditPart(parentEditPart, editPart);
return editPart;
}

Expand All @@ -168,6 +169,10 @@ protected static final void expandAll(TreeViewer viewer) {
// EditPart implementation
//
////////////////////////////////////////////////////////////////////////////
private static final class RequestContentsTreeEditPart extends AbstractTreeEditPart {
// Stub
}

private static final class RequestTreeEditPart extends DesignTreeEditPart {
private final String m_name;
private final RequestsLogger m_logger;
Expand Down
Loading