Skip to content

Commit

Permalink
[Modernize Code] Typefy getSourceConnections and getTargetConnections of
Browse files Browse the repository at this point in the history
GraphicalEditPart
  • Loading branch information
azoitl authored and ptziegler committed Mar 29, 2024
1 parent 9814bf8 commit 121f906
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 135 deletions.
6 changes: 3 additions & 3 deletions org.eclipse.gef/src/org/eclipse/gef/GraphicalEditPart.java
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -52,7 +52,7 @@ public interface GraphicalEditPart extends EditPart {
*
* @return the source connections
*/
List getSourceConnections();
List<? extends ConnectionEditPart> getSourceConnections();

/**
* Returns the <i>target</i> connections for this GraphicalEditPart. This method
Expand All @@ -61,7 +61,7 @@ public interface GraphicalEditPart extends EditPart {
*
* @return the target connections
*/
List getTargetConnections();
List<? extends ConnectionEditPart> getTargetConnections();

/**
* The children of GraphicalEditparts have to be GraphicalEditParts. Therefore
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import org.eclipse.swt.accessibility.ACC;
import org.eclipse.swt.accessibility.AccessibleControlEvent;
Expand Down Expand Up @@ -58,12 +58,12 @@ public abstract class AbstractGraphicalEditPart extends AbstractEditPart impleme
/**
* List of <i>source</i> ConnectionEditParts
*/
protected List sourceConnections;
protected List<ConnectionEditPart> sourceConnections;

/**
* List of <i>source</i> ConnectionEditParts
*/
protected List targetConnections;
protected List<ConnectionEditPart> targetConnections;

/**
* A default implementation of {@link AccessibleEditPart}. Subclasses can extend
Expand All @@ -88,8 +88,7 @@ public void getChildren(AccessibleControlEvent e) {
ArrayList<Integer> children = new ArrayList<>(AbstractGraphicalEditPart.this.getChildren().size());
for (EditPart part : AbstractGraphicalEditPart.this.getChildren()) {
AccessibleEditPart access = part.getAdapter(AccessibleEditPart.class);
if (access == null)
{
if (access == null) {
return; // fail if any children aren't accessible.
}
children.add(Integer.valueOf(access.getAccessibleID()));
Expand Down Expand Up @@ -198,10 +197,7 @@ public List getAccessibleHandleLocations() {
@Override
public void activate() {
super.activate();
List l = getSourceConnections();
for (Object element : l) {
((EditPart) element).activate();
}
getSourceConnections().forEach(ConnectionEditPart::activate);
}

/**
Expand Down Expand Up @@ -229,15 +225,8 @@ public void addNodeListener(NodeListener listener) {
@Override
public void addNotify() {
super.addNotify();
List conns;
conns = getSourceConnections();
for (Object conn : conns) {
((ConnectionEditPart) conn).setSource(this);
}
conns = getTargetConnections();
for (Object conn : conns) {
((ConnectionEditPart) conn).setTarget(this);
}
getSourceConnections().forEach(conn -> conn.setSource(this));
getTargetConnections().forEach(conn -> conn.setTarget(this));
}

/**
Expand Down Expand Up @@ -353,11 +342,7 @@ protected ConnectionEditPart createOrFindConnection(Object model) {
*/
@Override
public void deactivate() {
List l = getSourceConnections();
for (Object element : l) {
((EditPart) element).deactivate();
}

getSourceConnections().forEach(ConnectionEditPart::deactivate);
super.deactivate();
}

Expand Down Expand Up @@ -537,9 +522,9 @@ protected List getModelTargetConnections() {
* @see org.eclipse.gef.GraphicalEditPart#getSourceConnections()
*/
@Override
public List getSourceConnections() {
public List<? extends ConnectionEditPart> getSourceConnections() {
if (sourceConnections == null) {
return Collections.EMPTY_LIST;
return Collections.emptyList();
}
return sourceConnections;
}
Expand All @@ -548,9 +533,9 @@ public List getSourceConnections() {
* @see org.eclipse.gef.GraphicalEditPart#getTargetConnections()
*/
@Override
public List getTargetConnections() {
public List<? extends ConnectionEditPart> getTargetConnections() {
if (targetConnections == null) {
return Collections.EMPTY_LIST;
return Collections.emptyList();
}
return targetConnections;
}
Expand All @@ -577,7 +562,7 @@ public boolean isSelectable() {
*/
protected void primAddSourceConnection(ConnectionEditPart connection, int index) {
if (sourceConnections == null) {
sourceConnections = new ArrayList();
sourceConnections = new ArrayList<>();
}
sourceConnections.add(index, connection);
}
Expand All @@ -593,7 +578,7 @@ protected void primAddSourceConnection(ConnectionEditPart connection, int index)
*/
protected void primAddTargetConnection(ConnectionEditPart connection, int index) {
if (targetConnections == null) {
targetConnections = new ArrayList();
targetConnections = new ArrayList<>();
}
targetConnections.add(index, connection);
}
Expand Down Expand Up @@ -654,50 +639,38 @@ public void refresh() {
*/
protected void refreshSourceConnections() {
int i;
ConnectionEditPart editPart;
Object model;

List sourceConnections = getSourceConnections();
int size = sourceConnections.size();
Map modelToEditPart = Collections.EMPTY_MAP;
if (size > 0) {
modelToEditPart = new HashMap(size);
for (i = 0; i < size; i++) {
editPart = (ConnectionEditPart) sourceConnections.get(i);
modelToEditPart.put(editPart.getModel(), editPart);
}
}

List modelObjects = getModelSourceConnections();
List<? extends ConnectionEditPart> sourceConns = getSourceConnections();
Map<Object, ConnectionEditPart> modelToEditPart = sourceConns.stream()
.collect(Collectors.toMap(ConnectionEditPart::getModel, cEP -> cEP));

List<? extends Object> modelObjects = getModelSourceConnections();
if (modelObjects == null) {
modelObjects = Collections.EMPTY_LIST;
modelObjects = Collections.emptyList();
}
for (i = 0; i < modelObjects.size(); i++) {
model = modelObjects.get(i);
Object model = modelObjects.get(i);

if (i < sourceConnections.size() && ((EditPart) sourceConnections.get(i)).getModel() == model) {
if (i < sourceConns.size() && sourceConns.get(i).getModel() == model) {
continue;
}

editPart = (ConnectionEditPart) modelToEditPart.get(model);
final ConnectionEditPart editPart = modelToEditPart.get(model);
if (editPart != null) {
reorderSourceConnection(editPart, i);
} else {
editPart = createOrFindConnection(model);
addSourceConnection(editPart, i);
addSourceConnection(createOrFindConnection(model), i);
}
}

// Remove the remaining EditParts
size = sourceConnections.size();
int size = sourceConns.size();
if (i < size) {
List trash = new ArrayList(size - i);
List<ConnectionEditPart> trash = new ArrayList<>(size - i);
for (; i < size; i++) {
trash.add(sourceConnections.get(i));
}
for (i = 0; i < trash.size(); i++) {
removeSourceConnection((ConnectionEditPart) trash.get(i));
trash.add(sourceConns.get(i));
}
trash.forEach(this::removeSourceConnection);
}
}

Expand All @@ -718,50 +691,38 @@ protected void refreshSourceConnections() {
*/
protected void refreshTargetConnections() {
int i;
ConnectionEditPart editPart;
Object model;

List targetConnections = getTargetConnections();
int size = targetConnections.size();
Map modelToEditPart = Collections.EMPTY_MAP;
if (size > 0) {
modelToEditPart = new HashMap(size);
for (i = 0; i < size; i++) {
editPart = (ConnectionEditPart) targetConnections.get(i);
modelToEditPart.put(editPart.getModel(), editPart);
}
}

List modelObjects = getModelTargetConnections();
List<? extends ConnectionEditPart> targetConns = getTargetConnections();
Map<Object, ConnectionEditPart> modelToEditPart = targetConns.stream()
.collect(Collectors.toMap(ConnectionEditPart::getModel, cEP -> cEP));

List<? extends Object> modelObjects = getModelTargetConnections();
if (modelObjects == null) {
modelObjects = Collections.EMPTY_LIST;
modelObjects = Collections.emptyList();
}
for (i = 0; i < modelObjects.size(); i++) {
model = modelObjects.get(i);
Object model = modelObjects.get(i);

if (i < targetConnections.size() && ((EditPart) targetConnections.get(i)).getModel() == model) {
if (i < targetConns.size() && ((EditPart) targetConns.get(i)).getModel() == model) {
continue;
}

editPart = (ConnectionEditPart) modelToEditPart.get(model);
final ConnectionEditPart editPart = modelToEditPart.get(model);
if (editPart != null) {
reorderTargetConnection(editPart, i);
} else {
editPart = createOrFindConnection(model);
addTargetConnection(editPart, i);
addTargetConnection(createOrFindConnection(model), i);
}
}

// Remove the remaining EditParts
size = targetConnections.size();
int size = targetConns.size();
if (i < size) {
List trash = new ArrayList(size - i);
List<ConnectionEditPart> trash = new ArrayList<>(size - i);
for (; i < size; i++) {
trash.add(targetConnections.get(i));
}
for (i = 0; i < trash.size(); i++) {
removeTargetConnection((ConnectionEditPart) trash.get(i));
trash.add(targetConns.get(i));
}
trash.forEach(this::removeTargetConnection);
}
}

Expand Down Expand Up @@ -803,22 +764,8 @@ public void removeNodeListener(NodeListener listener) {
*/
@Override
public void removeNotify() {
List conns;
ConnectionEditPart cep;
conns = getSourceConnections();
for (Object conn : conns) {
cep = (ConnectionEditPart) conn;
if (cep.getSource() == this) {
cep.setSource(null);
}
}
conns = getTargetConnections();
for (Object conn : conns) {
cep = (ConnectionEditPart) conn;
if (cep.getTarget() == this) {
cep.setTarget(null);
}
}
getSourceConnections().stream().filter(conn -> conn.getSource() == this).forEach(conn -> conn.setSource(null));
getTargetConnections().stream().filter(conn -> conn.getTarget() == this).forEach(conn -> conn.setTarget(null));
super.removeNotify();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,14 +139,9 @@ protected void createConnectionFeedbackFigure(ConnectionEditPart connectionEditP
* Creates the connection layer feedback figures.
*/
protected void createConnectionFeedbackFigures() {
HashSet transitiveNestedConnections = EditPartUtilities.getAllNestedConnectionEditParts(getHost());

for (Object connection : transitiveNestedConnections) {
if (connection instanceof ConnectionEditPart) {
createConnectionFeedbackFigure((ConnectionEditPart) connection);
}

}
HashSet<? extends ConnectionEditPart> transitiveNestedConnections = EditPartUtilities
.getAllNestedConnectionEditParts(getHost());
transitiveNestedConnections.forEach(this::createConnectionFeedbackFigure);
}

/**
Expand Down

0 comments on commit 121f906

Please sign in to comment.