/** * Copyright (c) 2010-2012 ISBAN S.L * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Ruben De Dios (ISBAN S.L) * Andrez Alvarez Mattos (ISBAN S.L) */ package org.eclipse.gmf.tooling.simplemap.model.triggers.parent; import org.eclipse.emf.transaction.TransactionalEditingDomain; import org.eclipse.gmf.gmfgraph.Compartment; import org.eclipse.gmf.gmfgraph.FigureDescriptor; import org.eclipse.gmf.gmfgraph.GMFGraphFactory; import org.eclipse.gmf.mappings.CompartmentMapping; import org.eclipse.gmf.mappings.GMFMapFactory; import org.eclipse.gmf.tooling.simplemap.simplemappings.SimpleCompartment; import org.eclipse.gmf.tooling.simplemap.simplemappings.SimpleNode; class NewCompartmentTrigger extends NewElementTrigger { private SimpleCompartment newSimpleCompartment; private SimpleNode parent; public NewCompartmentTrigger(TransactionalEditingDomain domain, SimpleNode parent, SimpleCompartment newCompartment) { super(domain, newCompartment); this.newSimpleCompartment = newCompartment; this.parent = parent; } @Override public void executeTrigger() { Compartment newCompartment = GMFGraphFactory.eINSTANCE.createCompartment(); newCompartment.setNeedsTitle(newSimpleCompartment.isNeedsTitle()); updateCanvas(newCompartment); updateMapping(newCompartment); } private void updateCanvas(Compartment newCompartment) { //Obtenemos la figura del padre: FigureDescriptor parentFigureDesc = parent.getDiagramNode().getFigure(); //Creamos el compartment: canvasFactory.createDefaultCompartmentWithoutLabel(parentFigureDesc, newCompartment); //canvasFactory.createDefaultCompartmentWithLabel(parentFigureDesc, newCompartment); } private void updateMapping(Compartment newCompartment) { CompartmentMapping compartmentMapping = GMFMapFactory.eINSTANCE.createCompartmentMapping(); compartmentMapping.setCompartment(newCompartment); parent.getNodeReference().getChild().getCompartments().add(compartmentMapping); newSimpleCompartment.setCompartmentMapping(compartmentMapping); } }