/*
* Copyright (c) 2012-2016 Marsha Chechik, Alessio Di Sandro, Michalis Famelis,
* Rick Salay.
* 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:
* Alessio Di Sandro - Implementation.
*/
package edu.toronto.cs.se.mmint.mid.relationship.diagram.sheet;
import org.eclipse.draw2d.IFigure;
import org.eclipse.gef.EditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.gmf.tooling.runtime.sheet.DefaultPropertySection;
import org.eclipse.ui.views.properties.IPropertySourceProvider;
import edu.toronto.cs.se.mmint.mid.relationship.BinaryMappingReference;
import edu.toronto.cs.se.mmint.mid.relationship.ExtendibleElementReference;
import edu.toronto.cs.se.mmint.mid.relationship.diagram.edit.parts.BinaryMappingReferenceEditPart.BinaryMappingReferenceFigure;
/**
* @generated
*/
public class MIDPropertySection extends DefaultPropertySection implements IPropertySourceProvider {
/**
* Modify/unwrap selection.
* @generated
*/
protected Object transformSelectionGen(Object selected) {
selected = /*super.*/transformSelectionToDomain(selected);
return selected;
}
/**
* @generated NOT
*/
@Override
protected Object transformSelection(Object selected) {
if (selected instanceof EditPart) {
Object model = ((EditPart) selected).getModel();
if (model instanceof View) {
Object element = ((View) model).getElement();
if (element instanceof BinaryMappingReference
&& selected instanceof GraphicalEditPart) {
IFigure figure = ((GraphicalEditPart) selected).getFigure();
if (figure == ((BinaryMappingReferenceFigure) figure
.getParent())
.getFigureBinaryMappingReferenceSourceModelElementEndpointReferenceLabelFigure()) {
element = ((BinaryMappingReference) element)
.getModelElemEndpointRefs().get(0);
} else if (figure == ((BinaryMappingReferenceFigure) figure
.getParent())
.getFigureBinaryMappingReferenceTargetModelElementEndpointReferenceLabelFigure()) {
element = ((BinaryMappingReference) element)
.getModelElemEndpointRefs().get(1);
}
}
return element instanceof ExtendibleElementReference ? ((ExtendibleElementReference) element)
.getReferencedObject() : element;
}
return null;
}
return transformSelectionGen(selected);
}
}