diff --git a/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransfer.java b/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransfer.java index 4ff0a96ba..9f4b3aa86 100644 --- a/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransfer.java +++ b/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransfer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2024 IBM Corporation 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 @@ -60,6 +60,7 @@ protected String[] getTypeNames() { * * @return The viewer where the drag started */ + @SuppressWarnings("static-method") public EditPartViewer getViewer() { return viewer; } @@ -69,6 +70,7 @@ public EditPartViewer getViewer() { * * @param epv The viewer */ + @SuppressWarnings("static-method") public void setViewer(EditPartViewer epv) { viewer = epv; } diff --git a/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransferDragListener.java b/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransferDragListener.java index 62916a9b0..e26be1873 100644 --- a/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransferDragListener.java +++ b/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransferDragListener.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2024 IBM Corporation 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 @@ -12,7 +12,6 @@ *******************************************************************************/ package org.eclipse.gef.ui.parts; -import java.util.ArrayList; import java.util.List; import org.eclipse.swt.dnd.DragSourceEvent; @@ -26,7 +25,7 @@ class TreeViewerTransferDragListener extends AbstractTransferDragSourceListener { - private List modelSelection; + private List modelSelection; public TreeViewerTransferDragListener(EditPartViewer viewer) { super(viewer, TreeViewerTransfer.getInstance()); @@ -48,7 +47,7 @@ public void dragSetData(DragSourceEvent event) { @Override public void dragStart(DragSourceEvent event) { TreeViewerTransfer.getInstance().setViewer(getViewer()); - List selection = getViewer().getSelectedEditParts(); + List selection = getViewer().getSelectedEditParts(); TreeViewerTransfer.getInstance().setObject(selection); saveModelSelection(selection); } @@ -65,24 +64,13 @@ public void dragFinished(DragSourceEvent event) { } protected void revertModelSelection() { - List list = new ArrayList(); - Object editpart; - for (int i = 0; i < modelSelection.size(); i++) { - editpart = getViewer().getEditPartForModel(modelSelection.get(i)); - if (editpart != null) { - list.add(editpart); - } - } + List list = modelSelection.stream().map(m -> getViewer().getEditPartForModel(m)).toList(); getViewer().setSelection(new StructuredSelection(list)); modelSelection = null; } - protected void saveModelSelection(List editPartSelection) { - modelSelection = new ArrayList(); - for (int i = 0; i < editPartSelection.size(); i++) { - EditPart editpart = (EditPart) editPartSelection.get(i); - modelSelection.add(editpart.getModel()); - } + protected void saveModelSelection(List editPartSelection) { + modelSelection = editPartSelection.stream().map(EditPart::getModel).toList(); } } diff --git a/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransferDropListener.java b/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransferDropListener.java index 4976fc75e..c35c297c3 100644 --- a/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransferDropListener.java +++ b/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewerTransferDropListener.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2023 IBM Corporation and others. + * Copyright (c) 2000, 2024 IBM Corporation 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 @@ -14,7 +14,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Iterator; import java.util.List; import org.eclipse.swt.dnd.DND; @@ -40,23 +39,17 @@ public TreeViewerTransferDropListener(EditPartViewer viewer) { @Override protected Request createTargetRequest() { ChangeBoundsRequest request = new ChangeBoundsRequest(RequestConstants.REQ_MOVE); - request.setEditParts((List) TreeViewerTransfer.getInstance().getObject()); + request.setEditParts(getTransferedEditParts()); return request; } @Override protected Command getCommand() { - CompoundCommand command = new CompoundCommand(); - - Iterator iter = ((List) TreeViewerTransfer.getInstance().getObject()).iterator(); - - Request request = getTargetRequest(); + final CompoundCommand command = new CompoundCommand(); + final Request request = getTargetRequest(); request.setType(isMove() ? RequestConstants.REQ_MOVE : RequestConstants.REQ_ORPHAN); - while (iter.hasNext()) { - EditPart editPart = (EditPart) iter.next(); - command.add(editPart.getCommand(request)); - } + getTransferedEditParts().stream().forEach(ep -> command.add(ep.getCommand(request))); // If reparenting, add all editparts to target editpart. if (!isMove()) { @@ -85,6 +78,12 @@ protected Collection getExclusionSet() { return exclude; } + @SuppressWarnings("unchecked") // we are putting a List into the object of the transfer so + // casting is save + private static List getTransferedEditParts() { + return (List) TreeViewerTransfer.getInstance().getObject(); + } + @Override protected void handleDragOver() { if (TreeViewerTransfer.getInstance().getViewer() != getViewer()) { @@ -95,18 +94,19 @@ protected void handleDragOver() { super.handleDragOver(); } + @SuppressWarnings("static-method") protected EditPart getSourceEditPart() { - List selection = (List) TreeViewerTransfer.getInstance().getObject(); - if (selection == null || selection.isEmpty() || !(selection.get(0) instanceof EditPart)) { + List selection = getTransferedEditParts(); + if (selection == null || selection.isEmpty()) { return null; } - return (EditPart) selection.get(0); + return selection.get(0); } - protected List includeChildren(List list) { + protected List includeChildren(List list) { List result = new ArrayList<>(); - for (Object element : list) { - List children = ((EditPart) element).getChildren(); + for (EditPart element : list) { + List children = element.getChildren(); result.addAll(children); result.addAll(includeChildren(children)); } @@ -123,9 +123,7 @@ public boolean isEnabled(DropTargetEvent event) { protected boolean isMove() { EditPart source = getSourceEditPart(); - List selection = (List) TreeViewerTransfer.getInstance().getObject(); - for (Object element : selection) { - EditPart ep = (EditPart) element; + for (EditPart ep : getTransferedEditParts()) { if (ep.getParent() != source.getParent()) { return false; }