/***************************************************************************** * Copyright (c) 2011 CEA LIST. * * 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: * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation *****************************************************************************/ package org.eclipse.papyrus.uml.properties.widgets; import java.util.Collections; import org.eclipse.gef.EditPart; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.papyrus.infra.widgets.editors.AbstractEditor; import org.eclipse.papyrus.uml.profile.tree.objects.StereotypedElementTreeObject; import org.eclipse.papyrus.uml.properties.modelelement.UMLNotationModelElement; import org.eclipse.papyrus.uml.properties.profile.ui.compositeforview.AppearanceForAppliedStereotypeComposite; import org.eclipse.papyrus.views.properties.modelelement.ModelElement; import org.eclipse.papyrus.views.properties.widgets.AbstractPropertyEditor; import org.eclipse.swt.widgets.Composite; import org.eclipse.uml2.uml.Element; public class StereotypeDisplay extends AbstractPropertyEditor { private AppearanceForAppliedStereotypeComposite composite; public StereotypeDisplay(Composite parent, int style) { composite = new AppearanceForAppliedStereotypeComposite(parent); composite.createContent(parent, AbstractEditor.factory); } @Override protected void doBinding() { // No Databinding here ; the AppearanceForAppliedStereotypeComposite is responsible // for editing the data ModelElement element = input.getModelElement(propertyPath); if(element instanceof UMLNotationModelElement) { View diagramElement = (View)((UMLNotationModelElement)element).getEModelElement(); EditPart editPart = ((UMLNotationModelElement)element).getEditPart(); Element umlElement = (Element)diagramElement.getElement(); composite.setSelection(new StructuredSelection(Collections.singletonList(editPart))); composite.setElement(umlElement); composite.setInput(new StereotypedElementTreeObject(umlElement)); composite.setDiagramElement(diagramElement); composite.refresh(); } } }