浏览代码

Moved DirectEditLabelEditPart to commons

Andreas Mülder 14 年之前
父节点
当前提交
00d9249bf7

+ 9 - 7
plugins/org.yakindu.sct.statechart.diagram/src/org/yakindu/sct/statechart/diagram/editparts/RegionNameEditPart.java

@@ -3,28 +3,30 @@ package org.yakindu.sct.statechart.diagram.editparts;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.gmf.runtime.notation.View;
 import org.yakindu.model.sct.statechart.StatechartPackage;
+import org.yakindu.sct.statechart.diagram.DiagramActivator;
+
+import de.itemis.gmf.runtime.commons.editparts.TextAwareLabelEditPart;
+
 /**
  * 
- * @author Andreas Muelder <a
- *         href="mailto:andreas.muelder@itemis.de">andreas.muelder@itemis.de</a>
- *
+ * @author andreas muelder
+ * 
  */
 public class RegionNameEditPart extends TextAwareLabelEditPart {
 
 	public RegionNameEditPart(View view) {
-		super(view, StatechartPackage.Literals.NAMED_ELEMENT__NAME);
+		super(view, StatechartPackage.Literals.NAMED_ELEMENT__NAME,
+				DiagramActivator.PLUGIN_ID);
 	}
 
-
 	public void setLabel(IFigure label) {
 		setFigure(label);
 	}
 
 	@Override
 	protected IFigure createFigure() {
-		//Figure is set from parent addChild
+		// Figure is set from parent addChild
 		return null;
 	}
 
-
 }

+ 10 - 6
plugins/org.yakindu.sct.statechart.diagram/src/org/yakindu/sct/statechart/diagram/editparts/StateNameEditPart.java

@@ -3,25 +3,29 @@ package org.yakindu.sct.statechart.diagram.editparts;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.gmf.runtime.notation.View;
 import org.yakindu.model.sct.statechart.StatechartPackage;
+import org.yakindu.sct.statechart.diagram.DiagramActivator;
+
+import de.itemis.gmf.runtime.commons.editparts.TextAwareLabelEditPart;
+
 /**
  * 
- * @author muelder
- *
+ * @author andreas muelder
+ * 
  */
 public class StateNameEditPart extends TextAwareLabelEditPart {
 
 	public StateNameEditPart(View view) {
-		super(view, StatechartPackage.Literals.NAMED_ELEMENT__NAME);
+		super(view, StatechartPackage.Literals.NAMED_ELEMENT__NAME,
+				DiagramActivator.PLUGIN_ID);
 	}
 
-
 	public void setLabel(IFigure label) {
 		setFigure(label);
 	}
-	
+
 	@Override
 	protected IFigure createFigure() {
-		//Figure is set from parent addChild
+		// Figure is set from parent addChild
 		return null;
 	}
 

+ 5 - 1
plugins/org.yakindu.sct.statechart.diagram/src/org/yakindu/sct/statechart/diagram/editparts/StatechartNameEditPart.java

@@ -3,6 +3,9 @@ package org.yakindu.sct.statechart.diagram.editparts;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.gmf.runtime.notation.View;
 import org.yakindu.model.sct.statechart.StatechartPackage;
+import org.yakindu.sct.statechart.diagram.DiagramActivator;
+
+import de.itemis.gmf.runtime.commons.editparts.TextAwareLabelEditPart;
 
 /**
  * 
@@ -12,7 +15,8 @@ import org.yakindu.model.sct.statechart.StatechartPackage;
 public class StatechartNameEditPart extends TextAwareLabelEditPart {
 
 	public StatechartNameEditPart(View view) {
-		super(view, StatechartPackage.Literals.NAMED_ELEMENT__NAME);
+		super(view, StatechartPackage.Literals.NAMED_ELEMENT__NAME,
+				DiagramActivator.PLUGIN_ID);
 	}
 
 	public void setLabel(IFigure label) {

+ 0 - 185
plugins/org.yakindu.sct.statechart.diagram/src/org/yakindu/sct/statechart/diagram/editparts/TextAwareLabelEditPart.java

@@ -1,185 +0,0 @@
-/**
- * Copyright (c) 2010 committers of YAKINDU and others.
- * 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:
- * 	committers of YAKINDU - initial API and implementation
- * 
- */
-package org.yakindu.sct.statechart.diagram.editparts;
-
-import static org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.label.ILabelDelegate;
-import org.eclipse.gmf.runtime.diagram.ui.label.WrappingLabelDelegate;
-import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.notation.ShapeStyle;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.swt.graphics.Color;
-import org.yakindu.sct.statechart.diagram.parser.AttributeParser;
-
-/**
- * This is a common abstract base class for all Label Edit Parts which are
- * {@link ITextAwareEditPart}.
- * 
- * 
- * @author muelder
- * 
- */
-public abstract class TextAwareLabelEditPart extends CompartmentEditPart
-		implements ITextAwareEditPart {
-
-	private final DirectEditManager manager;
-
-	private final EAttribute feature;
-
-	public TextAwareLabelEditPart(View view, EAttribute feature) {
-		super(view);
-		this.feature = feature;
-		manager = createDirectEditManager();
-	}
-
-	private void updateLabelText() {
-		getWrappingLabel().setText(getEditText());
-	}
-
-	@Override
-	public void activate() {
-		super.activate();
-		updateLabelText();
-	}
-
-	protected DirectEditManager createDirectEditManager() {
-		return new TextDirectEditManager(this);
-	}
-
-	@Override
-	public Object getAdapter(@SuppressWarnings("rawtypes") Class key) {
-		if (key.equals(ILabelDelegate.class)) {
-			WrappingLabel wrappingLabel = getWrappingLabel();
-			if (wrappingLabel == null)
-				return super.getAdapter(key);
-			return new WrappingLabelDelegate(wrappingLabel);
-		}
-		return super.getAdapter(key);
-	}
-
-	@Override
-	protected void createDefaultEditPolicies() {
-		super.createDefaultEditPolicies();
-		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
-				new LabelDirectEditPolicy());
-		// TODO: Add a Feedback role
-	}
-
-	@Override
-	protected void refreshVisuals() {
-		super.refreshVisuals();
-		refreshFont();
-		refreshFontColor();
-	}
-
-	@Override
-	protected void setFontColor(Color color) {
-		getWrappingLabel().setForegroundColor(color);
-	}
-
-	public String getEditText() {
-		return getParser().getEditString(
-				new EObjectAdapter(resolveSemanticElement()), -1);
-	}
-
-	public void setLabelText(String text) {
-		getWrappingLabel().setText(text);
-
-	}
-
-	private WrappingLabel getWrappingLabel() {
-		return (WrappingLabel) getFigure();
-	}
-
-	public ICellEditorValidator getEditTextValidator() {
-		return null;
-	}
-
-	public ParserOptions getParserOptions() {
-		return ParserOptions.NONE;
-	}
-
-	public IParser getParser() {
-		return new AttributeParser(feature);
-	}
-
-	public IContentAssistProcessor getCompletionProcessor() {
-		return null;
-	}
-
-	@Override
-	protected void performDirectEditRequest(Request request) {
-		final Request theRequest = request;
-		try {
-			getEditingDomain().runExclusive(new Runnable() {
-
-				public void run() {
-					if (isActive()) {
-						if (theRequest.getExtendedData().get(
-								REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character
-								&& manager instanceof TextDirectEditManager) {
-							Character initialChar = (Character) theRequest
-									.getExtendedData()
-									.get(REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
-
-							((TextDirectEditManager) manager).show(initialChar);
-
-						} else {
-							manager.show();
-						}
-					}
-				}
-			});
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-
-	// We want to get notified about changes to the primary view, the refresh
-	// the visuals when the parent Shape style changes.
-	@Override
-	protected void addNotationalListeners() {
-		super.addNotationalListeners();
-		addListenerFilter("parentview", this, getPrimaryView());
-	}
-
-	@Override
-	protected void removeNotationalListeners() {
-		super.removeNotationalListeners();
-		removeListenerFilter("parentview");
-	}
-
-	@Override
-	protected void handleNotificationEvent(Notification event) {
-		if (event.getFeature() == feature) {
-			updateLabelText();
-		}
-		if (event.getNotifier() instanceof ShapeStyle) {
-			refreshVisuals();
-		}
-		super.handleNotificationEvent(event);
-	}
-}

+ 0 - 82
plugins/org.yakindu.sct.statechart.diagram/src/org/yakindu/sct/statechart/diagram/parser/AttributeParser.java

@@ -1,82 +0,0 @@
-package org.yakindu.sct.statechart.diagram.parser;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.transaction.util.TransactionUtil;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
-import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.yakindu.sct.statechart.diagram.DiagramActivator;
-
-/**
- * Direct editing parser that allows editing of a Attributes.
- * 
- * @author Andreas Muelder <a
- *         href="mailto:andreas.muelder@itemis.de">andreas.muelder@itemis.de</a>
- * 
- */
-public class AttributeParser implements IParser {
-
-	private final EAttribute attribute;
-
-	public AttributeParser(EAttribute attribute) {
-		this.attribute = attribute;
-	}
-
-	
-	public String getEditString(IAdaptable adapter, int flags) {
-		EObject element = (EObject) adapter.getAdapter(EObject.class);
-		if (element.eGet(attribute) != null) {
-			return String.valueOf(element.eGet(attribute));
-		} else {
-			return "<"+attribute.getName()+">";
-		}
-	}
-
-	
-	public IParserEditStatus isValidEditString(IAdaptable element, String editString) {
-		return new ParserEditStatus(DiagramActivator.PLUGIN_ID, IParserEditStatus.OK, "");
-	}
-
-	
-	public ICommand getParseCommand(IAdaptable adapter, String newString, int flags) {
-		if (newString == null) {
-			return UnexecutableCommand.INSTANCE;
-		}
-		EObject element = (EObject) adapter.getAdapter(EObject.class);
-		TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(element);
-		if (editingDomain == null) {
-			return UnexecutableCommand.INSTANCE;
-		}
-		SetRequest request = new SetRequest(element, attribute, newString);
-		return new SetValueCommand(request);
-	}
-
-	
-	public String getPrintString(IAdaptable adapter, int flags) {
-		EObject element = (EObject) adapter.getAdapter(EObject.class);
-		return String.valueOf(element.eGet(attribute));
-	}
-
-	
-	public boolean isAffectingEvent(Object event, int flags) {
-		if (event instanceof Notification) {
-			return (((Notification) event).getFeature() == attribute);
-		}
-		return false;
-	}
-
-	
-	public IContentAssistProcessor getCompletionProcessor(IAdaptable element) {
-		return null;
-	}
-
-}