package org.eclipse.papyrus.uml.diagram.sequence.apex.part; import java.util.HashMap; import java.util.Map; import org.eclipse.emf.ecore.EObject; import org.eclipse.gmf.runtime.notation.Bounds; import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.gmf.runtime.notation.LayoutConstraint; import org.eclipse.gmf.runtime.notation.Node; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.papyrus.uml.diagram.sequence.apex.part.tweaks.EditorTweak; import org.eclipse.papyrus.uml.diagram.sequence.apex.part.tweaks.TweakViewer; import org.eclipse.papyrus.uml.diagram.sequence.part.UMLDiagramEditor; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.uml2.uml.Lifeline; import org.eclipse.uml2.uml.NamedElement; @Deprecated public class SimpleEditorTweak extends EditorTweak { private UMLDiagramEditor editor; public SimpleEditorTweak(UMLDiagramEditor editorPart) { super(editorPart); this.editor = editorPart; } @Override public Control createContent(Composite parent) { Composite composite = (Composite)super.createContent(parent); Composite subComposite = new Composite(composite, SWT.NONE); subComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); subComposite.setLayout(new FormLayout()); for (Object item : getItems()) { if (item instanceof Node) { Rectangle r = null; LayoutConstraint constraint = ((Node) item).getLayoutConstraint(); if (constraint instanceof Bounds) { Bounds b = (Bounds)constraint; r = new Rectangle(b.getX(), b.getY(), b.getWidth(), b.getHeight()); } String name = ""; EObject element = ((Node) item).getElement(); if (element instanceof NamedElement) { name = ((NamedElement) element).getName(); } Label label = new Label(subComposite, SWT.NONE); label.setText(name); label.setBackground(new Color(null, 255, 255, 255)); FormData formData = new FormData(); formData.top = new FormAttachment(0, 3); formData.bottom = new FormAttachment(100, -3); formData.left = new FormAttachment(0, r.x); formData.right = new FormAttachment(0, r.x + r.width); label.setLayoutData(formData); } } return composite; } protected Object[] getItems() { if (editor != null) { Map<Lifeline, View> views = new HashMap<Lifeline, View>(); Diagram diagram = editor.getDiagram(); for (Object child : diagram.getChildren()) { if (child instanceof View) { findLifelineViews((View)child, views); } } return views.values().toArray(); } return new Object[0]; } void findLifelineViews(View view, Map<Lifeline, View> views) { if (view.getElement() instanceof Lifeline) { Lifeline lifeline = (Lifeline)view.getElement(); if (!views.containsKey(lifeline)) { views.put(lifeline, view); } } for (Object child : view.getChildren()) { if (child instanceof View) { findLifelineViews((View)child, views); } } } @Override protected TweakViewer createViewer(Composite parent) { return null; } @Override protected Object getCurrentInput() { // TODO Auto-generated method stub return null; } @Override protected boolean open(Object element) { // TODO Auto-generated method stub return false; } @Override protected boolean reveal(Object element) { // TODO Auto-generated method stub return false; } @Override protected void activateTweak() { // TODO Auto-generated method stub } @Override protected void deactivateTweak() { // TODO Auto-generated method stub } public void init() { // TODO Auto-generated method stub } }