blob: 9ba8dcce36bea24c7e63ee18b365a2652dbc1fc2 [file] [log] [blame]
/**
* 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.setting;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.util.BasicSettingDelegate.Stateless;
import org.eclipse.gmf.gmfgraph.Compartment;
import org.eclipse.gmf.gmfgraph.Connection;
import org.eclipse.gmf.gmfgraph.DiagramLabel;
import org.eclipse.gmf.gmfgraph.Figure;
import org.eclipse.gmf.gmfgraph.Node;
import org.eclipse.gmf.tooling.simplemap.simplemappings.SimpleCompartment;
import org.eclipse.gmf.tooling.simplemap.simplemappings.SimpleLabelNode;
import org.eclipse.gmf.tooling.simplemap.simplemappings.SimpleLinkMapping;
import org.eclipse.gmf.tooling.simplemap.simplemappings.SimpleMappingElementWithFigure;
import org.eclipse.gmf.tooling.simplemap.simplemappings.SimpleNode;
import org.eclipse.gmf.tooling.simplemap.simplemappings.SimplemappingsPackage;
public class SimpleMappingElementWithFigureSettingDelegate extends Stateless {
public SimpleMappingElementWithFigureSettingDelegate(EStructuralFeature arg0) {
super(arg0);
}
@Override
protected Object get(InternalEObject owner, boolean resolve, boolean coreType) {
if (eStructuralFeature.getEContainingClass() == SimplemappingsPackage.Literals.SIMPLE_MAPPING_ELEMENT_WITH_FIGURE) {
switch (eStructuralFeature.getEContainingClass().getEAllStructuralFeatures().indexOf(eStructuralFeature)) {
case SimplemappingsPackage.SIMPLE_MAPPING_ELEMENT_WITH_FIGURE__NODE_FIGURE:
return getNodeFigure((SimpleMappingElementWithFigure) owner);
case SimplemappingsPackage.SIMPLE_MAPPING_ELEMENT_WITH_FIGURE__LABEL_FIGURE:
return getLabelFigure((SimpleMappingElementWithFigure) owner);
}
}
return null;
}
@Override
protected boolean isSet(InternalEObject owner) {
return false;
}
private Figure getLabelFigure(SimpleMappingElementWithFigure target) {
Figure figure = null;
if (target instanceof SimpleNode) {
DiagramLabel diagramLabel = ((SimpleNode) target).getDiagramLabel();
if (diagramLabel != null && diagramLabel.getAccessor() != null)
figure = diagramLabel.getAccessor().getFigure();
}
if (target instanceof SimpleLabelNode) {
figure = ((SimpleNode) target).getDiagramLabel().getFigure().getActualFigure();
}
if (target instanceof SimpleCompartment) {
figure = ((SimpleCompartment) target).getCompartment().getFigure().getActualFigure();
}
if (target instanceof SimpleLinkMapping) {
figure = ((SimpleLinkMapping) target).getDiagramLabel().getFigure().getActualFigure();
}
return figure;
}
private Figure getNodeFigure(SimpleMappingElementWithFigure target) {
Figure figure = null;
if (target instanceof SimpleNode) {
Node node = ((SimpleNode) target).getDiagramNode();
if (node != null && node.getFigure() != null)
figure = node.getFigure().getActualFigure();
}
if (target instanceof SimpleCompartment) {
Compartment compartment = ((SimpleCompartment) target).getCompartment();
if (compartment != null && compartment.getAccessor() != null)
figure = compartment.getAccessor().getFigure();
}
if (target instanceof SimpleLinkMapping) {
Connection connection = ((SimpleLinkMapping) target).getDiagramLink();
if (connection != null && connection.getFigure() != null)
figure = connection.getFigure().getActualFigure();
}
return figure;
}
}