Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2007, 2008 Anyware Technologies 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: Anyware Technologies - initial API and implementation $Id: EOperationEditPart.java,v 1.8 2009/03/25 11:22:17 jlescot Exp $ /
 
 
 package org.eclipse.emf.ecoretools.diagram.edit.parts;
 
 import java.util.List;
 
 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.common.ui.services.parser.ParserOptions;
 import  org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
 import  org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
 import  org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
 import  org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
 import  org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
 import  org.eclipse.gmf.runtime.diagram.ui.editpolicies.ListItemComponentEditPolicy;
 import  org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
 import  org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
 import  org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx;
 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.emf.ui.services.parser.ISemanticParser;
 import  org.eclipse.gmf.runtime.notation.FontStyle;
 import  org.eclipse.gmf.runtime.notation.NotationPackage;
 import  org.eclipse.gmf.runtime.notation.View;
 import  org.eclipse.swt.SWT;
 import  org.eclipse.swt.accessibility.AccessibleEvent;
 import  org.eclipse.swt.graphics.Color;
 import  org.eclipse.swt.graphics.FontData;
 import  org.eclipse.swt.graphics.Image;

Generated:
 
 public class EOperationEditPart extends CompartmentEditPart implements ITextAwareEditPart {

Generated:
 
 	public static final int VISUAL_ID = 2002;

Generated:
 

Generated:
 
 	private IParser parser;

Generated:
 
 	private List parserElements;

Generated:
 
	private String defaultText;

Generated:
	public EOperationEditPart(View view) {
		super(view);
	}

Generated:
	public DragTracker getDragTracker(Request request) {
		if (request instanceof SelectionRequest && ((SelectionRequestrequest).getLastButtonPressed() == 3) {
			return null;
		}
		return new DragEditPartsTrackerEx(this);
	}

Generated:
	protected void createDefaultEditPolicies() {
		super.createDefaultEditPolicies();
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLEnew EOperationItemSemanticEditPolicy());
		installEditPolicy(.new ListItemComponentEditPolicy());
		installEditPolicy(.new LabelDirectEditPolicy());
	}

Generated:
	protected String getLabelTextHelper(IFigure figure) {
		if (figure instanceof WrappingLabel) {
			return ((WrappingLabel) figure).getText();
else {
			return ((Labelfigure).getText();
		}
	}

Generated:
	protected void setLabelTextHelper(IFigure figureString text) {
		if (figure instanceof WrappingLabel) {
			((WrappingLabel) figure).setText(text);
else {
			((Labelfigure).setText(text);
		}
	}

Generated:
	protected Image getLabelIconHelper(IFigure figure) {
		if (figure instanceof WrappingLabel) {
			return ((WrappingLabel) figure).getIcon();
else {
			return ((Labelfigure).getIcon();
		}
	}

Generated:
	protected void setLabelIconHelper(IFigure figure, Image icon) {
		if (figure instanceof WrappingLabel) {
			((WrappingLabel) figure).setIcon(icon);
else {
			((Labelfigure).setIcon(icon);
		}
	}

Generated:
	public void setLabel(IFigure figure) {
		setFigure(figure);
	}

Generated:
	protected List getModelChildren() {
	}

Generated:
	public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
		return null;
	}

Generated:
	protected EObject getParserElement() {
		return resolveSemanticElement();
	}

Generated:
	protected Image getLabelIcon() {
		EObject parserElement = getParserElement();
		if (parserElement == null) {
			return null;
		}
		return EcoreElementTypes.getImage(parserElement.eClass());
	}

TODO see whether it is possible to directly use the Label of the EOperationItemProvider class

Generated:
NOT
	protected String getLabelText() {
		String text = null;
		EObject parserElement = getParserElement();
		if (parserElement != null && getParser() != null) {
			text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue()) + getSuffixText();
		}
		if (text == null || text.length() == 0) {
			text = ;
		}
		return text;
	}
	private String getSuffixText() {
		String text = ""//$NON-NLS-1$
		EObject semanticElement = resolveSemanticElement();
		if (semanticElement != null && semanticElement instanceof EOperation) {
			text += "("//$NON-NLS-1$
			text += getParametersText();
			text += ")"//$NON-NLS-1$
			if (((EOperationsemanticElement).getEType() != null) {
				text += " : " + ((EOperationsemanticElement).getEType().getName(); //$NON-NLS-1$
			}
			text += getExceptionsText();
		}
		return text;
	}
		StringBuffer text = new StringBuffer();
		boolean first = true;
		EObject semanticElement = resolveSemanticElement();
		if (semanticElement != null && semanticElement instanceof EOperation) {
			for (EParameter param : ((EOperationsemanticElement).getEParameters()) {
				if (first) {
					first = false;
else {
					text.append(","); //$NON-NLS-1$
				}
				EClassifier eType = param.getEType();
				if (eType == null) {
					text.append("null"); //$NON-NLS-1$
else {
					text.append(param.getEType().getName());
				}
			}
		}
		return text.toString();
	}
		StringBuffer text = new StringBuffer();
		boolean first = true;
		EObject model = resolveSemanticElement();
		if (model != null && model instanceof EOperation) {
			for (EClassifier ex : ((EOperationmodel).getEExceptions()) {
				if (first) {
					text.append(" throws "); //$NON-NLS-1$
					first = false;
else {
					text.append(", "); //$NON-NLS-1$
				}
				text.append(ex.getName());
			}
		}
		return text.toString();
	}

Generated:
	public void setLabelText(String text) {
		if (pdEditPolicy instanceof EcoreTextSelectionEditPolicy) {
		}
		if (sfEditPolicy instanceof EcoreTextSelectionEditPolicy) {
		}
	}

Generated:
	public String getEditText() {
		if (getParserElement() == null || getParser() == null) {
			return ""//$NON-NLS-1$
		}
		return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue());
	}

Generated:
	protected boolean isEditable() {
		return getParser() != null;
	}

Generated:
		return new ICellEditorValidator() {
			public String isValid(final Object value) {
				if (value instanceof String) {
					final EObject element = getParserElement();
					final IParser parser = getParser();
					try {
						IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() {
							public void run() {
								setResult(parser.isValidEditString(new EObjectAdapter(element), (Stringvalue));
							}
						});
						return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage();
catch (InterruptedException ie) {
					}
				}
				// shouldn't get here
				return null;
			}
		};
	}

Generated:
		if (getParserElement() == null || getParser() == null) {
			return null;
		}
		return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement()));
	}

Generated:
	public ParserOptions getParserOptions() {
		return ParserOptions.NONE;
	}

Generated:
	public IParser getParser() {
		if ( == null) {
			 = EcoreParserProvider.getParser(.getParserElement(), EcoreVisualIDRegistry
		}
		return ;
	}

Generated:
		if ( == null) {
			setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), EcoreEditPartFactory.getTextCellEditorLocator(this)));
		}
		return ;
	}

Generated:
	protected void setManager(DirectEditManager manager) {
		this. = manager;
	}

Generated:
	protected void performDirectEdit() {
	}

Generated:
	protected void performDirectEdit(Point eventLocation) {
		if (getManager().getClass() == TextDirectEditManager.class) {
			((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint());
		}
	}

Generated:
	private void performDirectEdit(char initialCharacter) {
		if (getManager() instanceof TextDirectEditManager) {
			((TextDirectEditManager) getManager()).show(initialCharacter);
else {
		}
	}

Generated:
	protected void performDirectEditRequest(Request request) {
		final Request theRequest = request;
		try {
			getEditingDomain().runExclusive(new Runnable() {
				public void run() {
					if (isActive() && isEditable()) {
						if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHARinstanceof Character) {
							Character initialChar = (CharactertheRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) {
							DirectEditRequest editRequest = (DirectEditRequesttheRequest;
else {
						}
					}
				}
			});
catch (InterruptedException e) {
		}
	}

Generated:
	protected void refreshVisuals() {
		super.refreshVisuals();
		refreshFontColor();
	}

Generated:
	protected void refreshLabel() {
		if (pdEditPolicy instanceof EcoreTextSelectionEditPolicy) {
		}
		if (sfEditPolicy instanceof EcoreTextSelectionEditPolicy) {
		}
	}

Generated:
	protected void refreshUnderline() {
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
		if (style != null && getFigure() instanceof WrappingLabel) {
			((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
		}
	}

Generated:
	protected void refreshStrikeThrough() {
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
		if (style != null && getFigure() instanceof WrappingLabel) {
			((WrappingLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough());
		}
	}

Generated:
	protected void refreshFont() {
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
		if (style != null) {
			FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
			setFont(fontData);
		}
	}

Generated:
	protected void setFontColor(Color color) {
	}

Generated:
	protected void addSemanticListeners() {
		if (getParser() instanceof ISemanticParser) {
			EObject element = resolveSemanticElement();
			 = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element);
			for (int i = 0; i < .size(); i++) {
				addListenerFilter("SemanticModel" + ithis, (EObject.get(i)); //$NON-NLS-1$
			}
else {
			super.addSemanticListeners();
		}
	}

Generated:
	protected void removeSemanticListeners() {
		if ( != null) {
			for (int i = 0; i < .size(); i++) {
				removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
			}
else {
			super.removeSemanticListeners();
		}
	}

Generated:
		if (accessibleEP == null) {
			accessibleEP = new AccessibleGraphicalEditPart() {
				public void getName(AccessibleEvent e) {
				}
			};
		}
		return accessibleEP;
	}

Generated:
	private View getFontStyleOwnerView() {
		return getPrimaryView();
	}

Generated:
	protected void addNotationalListeners() {
		super.addNotationalListeners();
		addListenerFilter("PrimaryView"this, getPrimaryView()); //$NON-NLS-1$
	}

Generated:
	protected void removeNotationalListeners() {
		super.removeNotationalListeners();
		removeListenerFilter("PrimaryView"); //$NON-NLS-1$
	}

Generated:
NOT
	protected void handleNotificationEvent(Notification event) {
		Object feature = event.getFeature();
		if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
			Integer c = (Integerevent.getNewValue();
			setFontColor(DiagramColorRegistry.getInstance().getColor(c));
else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) {
else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) {
else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature)
				|| NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) {
else {
			if (getParser() != null && getParser().isAffectingEvent(eventgetParserOptions().intValue())) {
			}
			if (getParser() instanceof ISemanticParser) {
				ISemanticParser modelParser = (ISemanticParser) getParser();
				if (modelParser.areSemanticElementsAffected(nullevent)) {
					if (resolveSemanticElement() != null) {
					}
				}
			}
		}
		// Listen to the EParameters and other model properties used to update
		// the operation text
		Object notifier = event.getNotifier();
		Object newObject = event.getNewValue();
		Object oldObject = event.getOldValue();
		if (notifier instanceof EOperation) {
			if (notifier == resolveSemanticElement()) {
				switch (event.getFeatureID(EOperation.class)) {
					updateModelListening(oldObjectnewObject);
					break;
					updateModelListening(oldObjectnewObject);
					break;
					break;
				default:
					break;
				}
			}
else if (notifier instanceof EParameter) {
			switch (event.getFeatureID(EParameter.class)) {
				updateModelListening(oldObjectnewObject);
				break;
			default:
				break;
			}
else if (notifier instanceof EClassifier) {
			switch (event.getFeatureID(EClassifier.class)) {
				break;
			default:
				break;
			}
		}
		super.handleNotificationEvent(event);
	}

This method updates the listening on added or removed objects

Parameters:
oldValue the old Object
newValue the new Object
	protected void updateModelListening(Object oldValueObject newValue) {
		if (oldValue != newValue) {
			if (oldValue != null && oldValue instanceof EObject) {
				// stop listening the removed object
				removeListenerFilter(StringConverter.asString(oldValue.hashCode()));
			}
			if (newValue != null && newValue instanceof EObject) {
				// Listen the newly created object
				addListenerFilter(StringConverter.asString(newValue.hashCode()), this, (EObjectnewValue);
			}
		}
	}

See also:
org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.activate()
	public void activate() {
		super.activate();
		EObject model = resolveSemanticElement();
		if (model instanceof EOperation) {
		}
	}

See also:
org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.deactivate()
	public void deactivate() {
		EObject model = resolveSemanticElement();
		if (model instanceof EOperation) {
		}
		super.deactivate();
	}

Listen to all the parameters of the operation

Parameters:
operation the model object
	private void listenParameters(EOperation operation) {
		for (EParameter param : operation.getEParameters()) {
			addListenerFilter(StringConverter.asString(param.hashCode()), thisparam);
			listenType(param);
		}
	}

Stop listening to all the parameters of the operation

Parameters:
operation the model object
	private void unlistenParameters(EOperation operation) {
		for (EParameter param : operation.getEParameters()) {
			removeListenerFilter(StringConverter.asString(param.hashCode()));
		}
	}

Listen to the type of the parameter

Parameters:
param the model object
	private void listenType(EParameter param) {
		if (param.getEType() != null) {
			addListenerFilter(StringConverter.asString(param.getEType().hashCode()), thisparam..getETypedElement_EType());
		}
	}

Stop listening to the type of the parameter

Parameters:
param the model object
	private void unlistenType(EParameter param) {
		if (param.getEType() != null) {
			removeListenerFilter(StringConverter.asString(param.getEType().hashCode()));
		}
	}

Listen to all the exceptions of the operation

Parameters:
operation the model object
	private void listenExceptions(EOperation operation) {
		for (EClassifier ex : operation.getEExceptions()) {
			addListenerFilter(StringConverter.asString(ex.hashCode()), thisex);
		}
	}

Stop listening to all the exceptions of the operation

Parameters:
operation the model object
	private void unlistenExceptions(EOperation operation) {
		for (EClassifier ex : operation.getEExceptions()) {
			removeListenerFilter(StringConverter.asString(ex.hashCode()));
		}
	}

Generated:
	protected IFigure createFigure() {
		return label;
	}

Generated:
	protected IFigure createFigurePrim() {
		return new WrappingLabel();
	}
	// Bug 219984 : enable selection of the label figure without having to
	// select first its container figure
	public boolean isSelectable() {
		return getFigure().isShowing();
	}
New to GrepCode? Check out our FAQ X