package org.eclipse.gmf.examples.eclipsecon.diagram.edit.policies; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Collection; import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalConnectionEditPolicy; import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.gmf.runtime.notation.Edge; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.emf.ecore.EObject; import org.eclipse.gmf.examples.eclipsecon.Conference; import org.eclipse.gmf.examples.eclipsecon.Handout; import org.eclipse.gmf.examples.eclipsecon.diagram.part.EclipseconVisualIDRegistry; /** * @generated */ public class ConferenceCanonicalEditPolicy extends CanonicalConnectionEditPolicy { /** * @generated */ protected List getSemanticChildrenList() { List result = new LinkedList(); Conference modelElement = (Conference) ((View) getHost().getModel()) .getElement(); EObject nextValue; int nodeVID; for (Iterator it = modelElement.getAttendees().iterator(); it.hasNext();) { nextValue = (EObject) it.next(); nodeVID = EclipseconVisualIDRegistry.INSTANCE.getNodeVisualID( (View) getHost().getModel(), nextValue, ""); if (1001 == nodeVID) { result.add(nextValue); } } for (Iterator it = modelElement.getTutorials().iterator(); it.hasNext();) { nextValue = (EObject) it.next(); nodeVID = EclipseconVisualIDRegistry.INSTANCE.getNodeVisualID( (View) getHost().getModel(), nextValue, ""); if (1002 == nodeVID) { result.add(nextValue); } } for (Iterator it = modelElement.getDays().iterator(); it.hasNext();) { nextValue = (EObject) it.next(); nodeVID = EclipseconVisualIDRegistry.INSTANCE.getNodeVisualID( (View) getHost().getModel(), nextValue, ""); if (1003 == nodeVID) { result.add(nextValue); } } for (Iterator it = modelElement.getEclipsezilla().iterator(); it .hasNext();) { nextValue = (EObject) it.next(); nodeVID = EclipseconVisualIDRegistry.INSTANCE.getNodeVisualID( (View) getHost().getModel(), nextValue, ""); if (1004 == nodeVID) { result.add(nextValue); } } return result; } /** * @generated */ protected boolean shouldDeleteView(View view) { EObject domainModelElement = view.getElement(); return domainModelElement != null && domainModelElement != ((View) getHost().getModel()) .getElement() && super.shouldDeleteView(view); } /** * @generated */ protected List getSemanticConnectionsList() { List result = new LinkedList(); Diagram diagram = (Diagram) getHost().getModel(); Conference modelElement = (Conference) diagram.getElement(); for (Iterator diagramElements = modelElement.eContents().iterator(); diagramElements .hasNext();) { EObject nextDiagramElement = (EObject) diagramElements.next(); for (Iterator childElements = nextDiagramElement.eContents() .iterator(); childElements.hasNext();) { EObject nextChild = (EObject) childElements.next(); if (EclipseconVisualIDRegistry.INSTANCE .getLinkWithClassVisualID(nextChild) != -1) { result.add(nextChild); } } } return result; } /** * @generated */ protected EObject getSourceElement(EObject relationship) { return relationship.eContainer(); } /** * @generated */ protected EObject getTargetElement(EObject relationship) { int vID = EclipseconVisualIDRegistry.INSTANCE .getLinkWithClassVisualID(relationship); switch (vID) { case 3001: return ((Handout) relationship).getEclipsezilla(); } return null; } /** * For now we are skipping links which was generated based on "GenLinkReferenceOnly" classes * since they do not handle any domain model objects inside, so we can not process them using * CanonicalConnectionEditPolicy class * * @generated */ protected boolean shouldIncludeConnection(Edge connector, Collection children) { return super.shouldIncludeConnection(connector, children) && connector.getElement() != null; } /** * @generated */ protected void refreshSemantic() { super.refreshSemantic(); refreshReferenceOnlyConnections(); } /** * @generated */ private void refreshReferenceOnlyConnections() { // TODO: implement this method } }