|
@@ -16,6 +16,7 @@ import static org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants.REQ_D
|
|
|
import org.eclipse.draw2d.IFigure;
|
|
import org.eclipse.draw2d.IFigure;
|
|
|
import org.eclipse.draw2d.PositionConstants;
|
|
import org.eclipse.draw2d.PositionConstants;
|
|
|
import org.eclipse.emf.common.notify.Notification;
|
|
import org.eclipse.emf.common.notify.Notification;
|
|
|
|
|
+import org.eclipse.emf.ecore.resource.Resource;
|
|
|
import org.eclipse.gef.DragTracker;
|
|
import org.eclipse.gef.DragTracker;
|
|
|
import org.eclipse.gef.Request;
|
|
import org.eclipse.gef.Request;
|
|
|
import org.eclipse.gef.tools.DirectEditManager;
|
|
import org.eclipse.gef.tools.DirectEditManager;
|
|
@@ -28,6 +29,7 @@ import org.eclipse.gmf.runtime.notation.ShapeStyle;
|
|
|
import org.eclipse.gmf.runtime.notation.View;
|
|
import org.eclipse.gmf.runtime.notation.View;
|
|
|
import org.eclipse.swt.graphics.Color;
|
|
import org.eclipse.swt.graphics.Color;
|
|
|
import org.yakindu.base.xtext.utils.gmf.figures.HighlightingWrappingLabel;
|
|
import org.yakindu.base.xtext.utils.gmf.figures.HighlightingWrappingLabel;
|
|
|
|
|
+import org.yakindu.base.xtext.utils.jface.viewers.XtextStyledTextCellEditor;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* Abstract base implementation for all external {@link LabelEditPart} that use
|
|
* Abstract base implementation for all external {@link LabelEditPart} that use
|
|
@@ -40,6 +42,7 @@ import org.yakindu.base.xtext.utils.gmf.figures.HighlightingWrappingLabel;
|
|
|
public abstract class ExternalXtextLabelEditPart extends LabelEditPart implements IXtextAwareEditPart {
|
|
public abstract class ExternalXtextLabelEditPart extends LabelEditPart implements IXtextAwareEditPart {
|
|
|
|
|
|
|
|
protected abstract DirectEditManager createDirectEditManager();
|
|
protected abstract DirectEditManager createDirectEditManager();
|
|
|
|
|
+ protected abstract void setContext(Resource resource);
|
|
|
|
|
|
|
|
public ExternalXtextLabelEditPart(final View view) {
|
|
public ExternalXtextLabelEditPart(final View view) {
|
|
|
super(view);
|
|
super(view);
|
|
@@ -116,17 +119,25 @@ public abstract class ExternalXtextLabelEditPart extends LabelEditPart implement
|
|
|
|
|
|
|
|
public void run() {
|
|
public void run() {
|
|
|
if (isActive()) {
|
|
if (isActive()) {
|
|
|
|
|
+
|
|
|
if (theRequest.getExtendedData().get(REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
|
|
if (theRequest.getExtendedData().get(REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
|
|
|
final Character initialChar = (Character) theRequest.getExtendedData().get(
|
|
final Character initialChar = (Character) theRequest.getExtendedData().get(
|
|
|
REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
|
|
REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
|
|
|
if (manager instanceof XtextDirectEditManager) {
|
|
if (manager instanceof XtextDirectEditManager) {
|
|
|
- ((XtextDirectEditManager) manager).show(initialChar);
|
|
|
|
|
|
|
+ XtextDirectEditManager xtextDirectEditManager = (XtextDirectEditManager) manager;
|
|
|
|
|
+ xtextDirectEditManager.show(initialChar);
|
|
|
} else if (manager instanceof TextDirectEditManager) {
|
|
} else if (manager instanceof TextDirectEditManager) {
|
|
|
((TextDirectEditManager) manager).show(initialChar);
|
|
((TextDirectEditManager) manager).show(initialChar);
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
manager.show();
|
|
manager.show();
|
|
|
}
|
|
}
|
|
|
|
|
+ if (manager instanceof XtextDirectEditManager) {
|
|
|
|
|
+ XtextDirectEditManager xtextDirectEditManager = (XtextDirectEditManager) manager;
|
|
|
|
|
+ XtextStyledTextCellEditor cellEditor = (XtextStyledTextCellEditor) xtextDirectEditManager
|
|
|
|
|
+ .getCellEditor();
|
|
|
|
|
+ setContext(cellEditor.getXtextAdapter().getFakeResourceContext().getFakeResource());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|