/** * 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.diagram.properties.figure; import org.eclipse.gmf.gmfgraph.DiagramLabel; import org.eclipse.gmf.gmfgraph.Figure; import org.eclipse.gmf.gmfgraph.FigureDescriptor; import org.eclipse.gmf.tooling.simplemap.diagram.properties.AbstractSimplemapPropertySection; 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.SimpleNode; public abstract class ElementWithFigurePropertySection extends AbstractSimplemapPropertySection { protected Figure getFigure(Object selected) { Object transformSelection = super.transformSelection(selected); Figure figure = null; if (transformSelection instanceof SimpleNode) { figure = ((SimpleNode) transformSelection).getDiagramNode().getFigure().getActualFigure(); } if (transformSelection instanceof SimpleCompartment) { figure = ((SimpleCompartment) transformSelection).getCompartment().getAccessor().getFigure(); } if (transformSelection instanceof SimpleLinkMapping) { FigureDescriptor figDesc = ((SimpleLinkMapping) transformSelection).getDiagramLink().getFigure(); figure = figDesc != null ? figDesc.getActualFigure() : null; } return figure; } protected Figure getLabelFigure(Object selected) { Object transformSelection = super.transformSelection(selected); Figure figure = null; if (transformSelection instanceof SimpleNode) { DiagramLabel diagramLabel = ((SimpleNode) transformSelection).getDiagramLabel(); if (diagramLabel != null && diagramLabel.getAccessor() != null) figure = diagramLabel.getAccessor().getFigure(); } if (transformSelection instanceof SimpleLabelNode) { figure = ((SimpleNode) transformSelection).getDiagramLabel().getFigure().getActualFigure(); } if (transformSelection instanceof SimpleCompartment) { figure = ((SimpleCompartment) transformSelection).getCompartment().getFigure().getActualFigure(); } if (transformSelection instanceof SimpleLinkMapping) { figure = ((SimpleLinkMapping) transformSelection).getDiagramLabel().getFigure().getActualFigure(); } return figure; } }