Procházet zdrojové kódy

Adds double click drag tracker to notes

resolves #1392
Andreas Muelder před 8 roky
rodič
revize
50a84ac564

+ 43 - 0
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/StatechartDescriptionCompartmentEditPart.java

@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) 2017 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.ui.editor.editparts;
+
+import org.eclipse.gef.DragTracker;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.SelectionRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.DescriptionCompartmentEditPart;
+import org.eclipse.gmf.runtime.notation.View;
+import org.yakindu.base.xtext.utils.gmf.directedit.DoubleClickDirectEditDragTracker;
+import org.yakindu.base.xtext.utils.gmf.directedit.DoubleClickDirectEditDragTracker.IDoubleClickCallback;
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class StatechartDescriptionCompartmentEditPart extends DescriptionCompartmentEditPart {
+
+	public StatechartDescriptionCompartmentEditPart(View view) {
+		super(view);
+	}
+
+	@Override
+	public DragTracker getDragTracker(final Request request) {
+		if (request instanceof SelectionRequest && ((SelectionRequest) request).getLastButtonPressed() == 3)
+			return null;
+		IDoubleClickCallback callback = new IDoubleClickCallback() {
+			public void handleDoubleClick(int btn) {
+				performDirectEditRequest(request);
+			}
+		};
+		return new DoubleClickDirectEditDragTracker(this, getTopGraphicEditPart(), callback);
+	}
+}

+ 4 - 0
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/providers/StatechartDiagramEditPartProvider.java

@@ -15,6 +15,7 @@ import java.util.Map;
 
 import org.eclipse.gef.RootEditPart;
 import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.common.ui.services.parser.CommonParserHint;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
 import org.eclipse.gmf.runtime.diagram.ui.services.editpart.AbstractEditPartProvider;
 import org.eclipse.gmf.runtime.diagram.ui.services.editpart.CreateRootEditPartOperation;
@@ -36,6 +37,7 @@ import org.yakindu.sct.ui.editor.editparts.StateFigureCompartmentEditPart;
 import org.yakindu.sct.ui.editor.editparts.StateNameEditPart;
 import org.yakindu.sct.ui.editor.editparts.StateTextCompartmentEditPart;
 import org.yakindu.sct.ui.editor.editparts.StateTextCompartmentExpressionEditPart;
+import org.yakindu.sct.ui.editor.editparts.StatechartDescriptionCompartmentEditPart;
 import org.yakindu.sct.ui.editor.editparts.StatechartDiagramEditPart;
 import org.yakindu.sct.ui.editor.editparts.StatechartNameEditPart;
 import org.yakindu.sct.ui.editor.editparts.StatechartTextEditPart;
@@ -85,6 +87,8 @@ public class StatechartDiagramEditPartProvider extends AbstractEditPartProvider
 		editParts.put(TRANSITION_EXPRESSION, TransitionExpressionEditPart.class);
 		editParts.put(EXIT, ExitEditPart.class);
 		editParts.put(SYNCHRONIZATION, SynchronizationEditPart.class);
+		
+		editParts.put(CommonParserHint.DESCRIPTION, StatechartDescriptionCompartmentEditPart.class);
 
 	}