/** @param editparts */ private List flitterEditpart(List editparts) { List copy = new ArrayList(editparts); int size = editparts.size(); for (int i = 0; i < size; i++) { EditPart part = (EditPart) editparts.get(i); if (part.getAdapter(ISelectionFilter.class) != null) { copy = ((ISelectionFilter) part.getAdapter(ISelectionFilter.class)).filterEditpart(copy); } } editparts = copy; return editparts; }
boolean navigateNextAnchor(int direction) { EditPart focus = getCurrentViewer().getFocusEditPart(); AccessibleAnchorProvider provider; provider = (AccessibleAnchorProvider) focus.getAdapter(AccessibleAnchorProvider.class); if (provider == null) return false; List list; if (isInState(STATE_ACCESSIBLE_DRAG_IN_PROGRESS)) list = provider.getTargetAnchorLocations(); else list = provider.getSourceAnchorLocations(); Point start = getLocation(); int distance = Integer.MAX_VALUE; Point next = null; for (int i = 0; i < list.size(); i++) { Point p = (Point) list.get(i); if (p.equals(start) || (direction != 0 && (start.getPosition(p) != direction))) continue; int d = p.getDistanceOrthogonal(start); if (d < distance) { distance = d; next = p; } } if (next != null) { ourPlaceMouseInViewer(next); return true; } return false; }
/* * (non-Javadoc) * * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled() */ @Override protected boolean calculateEnabled() { node = null; List<?> selectedObjects = getSelectedObjects(); if (selectedObjects.size() != 1) { return false; } Object selectedObject = selectedObjects.get(0); if ((selectedObject instanceof EditPart)) { EditPart editpart = (EditPart) selectedObject; Object selectedModel = editpart.getModel(); if ((selectedModel instanceof Unit && !(selectedModel instanceof ConditionalUnitPart))) { transUnit = (Unit) editpart.getModel(); return true; } if (selectedModel instanceof EContainerDescriptor && editpart.getAdapter(Parameter.class) != null) { transUnit = (Unit) ((EContainerDescriptor) selectedModel).getContainer(); return true; } if (editpart.getModel() instanceof Node && ((editpart.getParent() instanceof LhsRhsTreeEditPart) || (editpart instanceof RuleNodeEditPart && (editpart.getParent() instanceof LhsRhsEditPart)))) { node = (Node) editpart.getModel(); transUnit = (Unit) node.getGraph().eContainer(); return ParameterUtil.getParameter(node) == null; } } return false; }