Return-Path: Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: (qmail 56120 invoked from network); 9 Jun 2010 16:09:53 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 9 Jun 2010 16:09:53 -0000 Received: (qmail 98593 invoked by uid 500); 9 Jun 2010 16:09:52 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 98542 invoked by uid 500); 9 Jun 2010 16:09:52 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 98535 invoked by uid 99); 9 Jun 2010 16:09:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Jun 2010 16:09:52 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED,AWL X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Jun 2010 16:09:47 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A3D6F2388BCD; Wed, 9 Jun 2010 16:08:25 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r953066 [8/18] - /commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/ Date: Wed, 09 Jun 2010 16:08:23 -0000 To: commits@commons.apache.org From: guixl@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100609160847.A3D6F2388BCD@eris.apache.org> Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogEditPart.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogEditPart.java?rev=953066&view=auto ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogEditPart.java (added) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogEditPart.java Wed Jun 9 16:08:20 2010 @@ -0,0 +1,293 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.scxml.modeling.diagram.edit.parts; + +import org.apache.commons.scxml.modeling.diagram.edit.policies.LogItemSemanticEditPolicy; +import org.apache.commons.scxml.modeling.diagram.part.ModelingVisualIDRegistry; +import org.eclipse.draw2d.FlowLayout; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.RectangleFigure; +import org.eclipse.draw2d.StackLayout; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.commands.Command; +import org.eclipse.gef.editpolicies.FlowLayoutEditPolicy; +import org.eclipse.gef.editpolicies.LayoutEditPolicy; +import org.eclipse.gef.requests.CreateRequest; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; +import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class LogEditPart extends ShapeNodeEditPart { + + /** + * @generated + */ + public static final int VISUAL_ID = 3007; + + /** + * @generated + */ + protected IFigure contentPane; + + /** + * @generated + */ + protected IFigure primaryShape; + + /** + * @generated + */ + public LogEditPart(View view) { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, + new LogItemSemanticEditPolicy()); + installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); + // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies + // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE); + } + + /** + * @generated + */ + protected LayoutEditPolicy createLayoutEditPolicy() { + + FlowLayoutEditPolicy lep = new FlowLayoutEditPolicy() { + + protected Command createAddCommand(EditPart child, EditPart after) { + return null; + } + + protected Command createMoveChildCommand(EditPart child, + EditPart after) { + return null; + } + + protected Command getCreateCommand(CreateRequest request) { + return null; + } + }; + return lep; + } + + /** + * @generated + */ + protected IFigure createNodeShape() { + LogFigure figure = new LogFigure(); + return primaryShape = figure; + } + + /** + * @generated + */ + public LogFigure getPrimaryShape() { + return (LogFigure) primaryShape; + } + + /** + * @generated + */ + protected boolean addFixedChild(EditPart childEditPart) { + if (childEditPart instanceof LogExprEditPart) { + ((LogExprEditPart) childEditPart).setLabel(getPrimaryShape() + .getFigureLogExprFigure()); + return true; + } + return false; + } + + /** + * @generated + */ + protected boolean removeFixedChild(EditPart childEditPart) { + + return false; + } + + /** + * @generated + */ + protected void addChildVisual(EditPart childEditPart, int index) { + if (addFixedChild(childEditPart)) { + return; + } + super.addChildVisual(childEditPart, -1); + } + + /** + * @generated + */ + protected void removeChildVisual(EditPart childEditPart) { + if (removeFixedChild(childEditPart)) { + return; + } + super.removeChildVisual(childEditPart); + } + + /** + * @generated + */ + protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { + + return super.getContentPaneFor(editPart); + } + + /** + * @generated + */ + protected NodeFigure createNodePlate() { + DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode() + .DPtoLP(40), getMapMode().DPtoLP(40)); + return result; + } + + /** + * Creates figure for this edit part. + * + * Body of this method does not depend on settings in generation model + * so you may safely remove generated tag and modify it. + * + * @generated + */ + protected NodeFigure createNodeFigure() { + NodeFigure figure = createNodePlate(); + figure.setLayoutManager(new StackLayout()); + IFigure shape = createNodeShape(); + figure.add(shape); + contentPane = setupContentPane(shape); + return figure; + } + + /** + * Default implementation treats passed figure as content pane. + * Respects layout one may have set for generated figure. + * @param nodeShape instance of generated figure class + * @generated + */ + protected IFigure setupContentPane(IFigure nodeShape) { + if (nodeShape.getLayoutManager() == null) { + ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); + layout.setSpacing(getMapMode().DPtoLP(5)); + nodeShape.setLayoutManager(layout); + } + return nodeShape; // use nodeShape itself as contentPane + } + + /** + * @generated + */ + public IFigure getContentPane() { + if (contentPane != null) { + return contentPane; + } + return super.getContentPane(); + } + + /** + * @generated + */ + public EditPart getPrimaryChildEditPart() { + return getChildBySemanticHint(ModelingVisualIDRegistry + .getType(LogExprEditPart.VISUAL_ID)); + } + + /** + * @generated + */ + public class LogFigure extends RectangleFigure { + + /** + * @generated + */ + private WrappingLabel fFigureLogExprFigure; + + /** + * @generated + */ + public LogFigure() { + + FlowLayout layoutThis = new FlowLayout(); + layoutThis.setStretchMinorAxis(false); + layoutThis.setMinorAlignment(FlowLayout.ALIGN_LEFTTOP); + + layoutThis.setMajorAlignment(FlowLayout.ALIGN_LEFTTOP); + layoutThis.setMajorSpacing(5); + layoutThis.setMinorSpacing(5); + layoutThis.setHorizontal(true); + + this.setLayoutManager(layoutThis); + + createContents(); + } + + /** + * @generated + */ + private void createContents() { + + fFigureLogExprFigure = new WrappingLabel(); + fFigureLogExprFigure.setText("<...>"); + + this.add(fFigureLogExprFigure); + + } + + /** + * @generated + */ + private boolean myUseLocalCoordinates = false; + + /** + * @generated + */ + protected boolean useLocalCoordinates() { + return myUseLocalCoordinates; + } + + /** + * @generated + */ + protected void setUseLocalCoordinates(boolean useLocalCoordinates) { + myUseLocalCoordinates = useLocalCoordinates; + } + + /** + * @generated + */ + public WrappingLabel getFigureLogExprFigure() { + return fFigureLogExprFigure; + } + + } + +} Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogEditPart.java ------------------------------------------------------------------------------ svn:eol-style = native Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogExpr2EditPart.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogExpr2EditPart.java?rev=953066&view=auto ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogExpr2EditPart.java (added) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogExpr2EditPart.java Wed Jun 9 16:08:20 2010 @@ -0,0 +1,600 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.scxml.modeling.diagram.edit.parts; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.apache.commons.scxml.modeling.diagram.edit.policies.ModelingTextSelectionEditPolicy; +import org.apache.commons.scxml.modeling.diagram.providers.ModelingElementTypes; +import org.apache.commons.scxml.modeling.diagram.providers.ModelingParserProvider; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.RunnableWithResult; +import org.eclipse.gef.AccessibleEditPart; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.GraphicalEditPart; +import org.eclipse.gef.Request; +import org.eclipse.gef.commands.Command; +import org.eclipse.gef.editpolicies.NonResizableEditPolicy; +import org.eclipse.gef.handles.NonResizableHandleKit; +import org.eclipse.gef.requests.DirectEditRequest; +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.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.common.ui.services.parser.ParserService; +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.LabelDirectEditPolicy; +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.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.jface.text.contentassist.IContentAssistProcessor; +import org.eclipse.jface.viewers.ICellEditorValidator; +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 LogExpr2EditPart extends CompartmentEditPart implements + ITextAwareEditPart { + + /** + * @generated + */ + public static final int VISUAL_ID = 5019; + + /** + * @generated + */ + private DirectEditManager manager; + + /** + * @generated + */ + private IParser parser; + + /** + * @generated + */ + private List parserElements; + + /** + * @generated + */ + private String defaultText; + + /** + * @generated + */ + public LogExpr2EditPart(View view) { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, + new LabelDirectEditPolicy()); + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, + new NonResizableEditPolicy() { + + protected List createSelectionHandles() { + List handles = new ArrayList(); + NonResizableHandleKit.addMoveHandle( + (GraphicalEditPart) getHost(), handles); + return handles; + } + + public Command getCommand(Request request) { + return null; + } + + public boolean understandsRequest(Request request) { + return false; + } + }); + } + + /** + * @generated + */ + protected String getLabelTextHelper(IFigure figure) { + if (figure instanceof WrappingLabel) { + return ((WrappingLabel) figure).getText(); + } else { + return ((Label) figure).getText(); + } + } + + /** + * @generated + */ + protected void setLabelTextHelper(IFigure figure, String text) { + if (figure instanceof WrappingLabel) { + ((WrappingLabel) figure).setText(text); + } else { + ((Label) figure).setText(text); + } + } + + /** + * @generated + */ + protected Image getLabelIconHelper(IFigure figure) { + if (figure instanceof WrappingLabel) { + return ((WrappingLabel) figure).getIcon(); + } else { + return ((Label) figure).getIcon(); + } + } + + /** + * @generated + */ + protected void setLabelIconHelper(IFigure figure, Image icon) { + if (figure instanceof WrappingLabel) { + ((WrappingLabel) figure).setIcon(icon); + } else { + ((Label) figure).setIcon(icon); + } + } + + /** + * @generated + */ + public void setLabel(WrappingLabel figure) { + unregisterVisuals(); + setFigure(figure); + defaultText = getLabelTextHelper(figure); + registerVisuals(); + refreshVisuals(); + } + + /** + * @generated + */ + protected List getModelChildren() { + return Collections.EMPTY_LIST; + } + + /** + * @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 ModelingElementTypes.getImage(parserElement.eClass()); + } + + /** + * @generated + */ + protected String getLabelText() { + String text = null; + EObject parserElement = getParserElement(); + if (parserElement != null && getParser() != null) { + text = getParser().getPrintString( + new EObjectAdapter(parserElement), + getParserOptions().intValue()); + } + if (text == null || text.length() == 0) { + text = defaultText; + } + return text; + } + + /** + * @generated + */ + public void setLabelText(String text) { + setLabelTextHelper(getFigure(), text); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof ModelingTextSelectionEditPolicy) { + ((ModelingTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); + } + } + + /** + * @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 + */ + public ICellEditorValidator getEditTextValidator() { + 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), + (String) value)); + } + }); + return valid.getCode() == ParserEditStatus.EDITABLE ? null + : valid.getMessage(); + } catch (InterruptedException ie) { + ie.printStackTrace(); + } + } + + // shouldn't get here + return null; + } + }; + } + + /** + * @generated + */ + public IContentAssistProcessor getCompletionProcessor() { + 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 (parser == null) { + String parserHint = ((View) getModel()).getType(); + IAdaptable hintAdapter = new ModelingParserProvider.HintAdapter( + ModelingElementTypes.Log_3020, getParserElement(), + parserHint); + parser = ParserService.getInstance().getParser(hintAdapter); + } + return parser; + } + + /** + * @generated + */ + protected DirectEditManager getManager() { + if (manager == null) { + setManager(new TextDirectEditManager(this, TextDirectEditManager + .getTextCellEditorClass(this), ModelingEditPartFactory + .getTextCellEditorLocator(this))); + } + return manager; + } + + /** + * @generated + */ + protected void setManager(DirectEditManager manager) { + this.manager = manager; + } + + /** + * @generated + */ + protected void performDirectEdit() { + getManager().show(); + } + + /** + * @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 { + performDirectEdit(); + } + } + + /** + * @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_CHAR) instanceof Character) { + Character initialChar = (Character) theRequest + .getExtendedData() + .get( + RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); + performDirectEdit(initialChar.charValue()); + } else if ((theRequest instanceof DirectEditRequest) + && (getEditText().equals(getLabelText()))) { + DirectEditRequest editRequest = (DirectEditRequest) theRequest; + performDirectEdit(editRequest.getLocation()); + } else { + performDirectEdit(); + } + } + } + }); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + /** + * @generated + */ + protected void refreshVisuals() { + super.refreshVisuals(); + refreshLabel(); + refreshFont(); + refreshFontColor(); + refreshUnderline(); + refreshStrikeThrough(); + } + + /** + * @generated + */ + protected void refreshLabel() { + setLabelTextHelper(getFigure(), getLabelText()); + setLabelIconHelper(getFigure(), getLabelIcon()); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof ModelingTextSelectionEditPolicy) { + ((ModelingTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); + } + } + + /** + * @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) { + getFigure().setForegroundColor(color); + } + + /** + * @generated + */ + protected void addSemanticListeners() { + if (getParser() instanceof ISemanticParser) { + EObject element = resolveSemanticElement(); + parserElements = ((ISemanticParser) getParser()) + .getSemanticElementsBeingParsed(element); + for (int i = 0; i < parserElements.size(); i++) { + addListenerFilter( + "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ + } + } else { + super.addSemanticListeners(); + } + } + + /** + * @generated + */ + protected void removeSemanticListeners() { + if (parserElements != null) { + for (int i = 0; i < parserElements.size(); i++) { + removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ + } + } else { + super.removeSemanticListeners(); + } + } + + /** + * @generated + */ + protected AccessibleEditPart getAccessibleEditPart() { + if (accessibleEP == null) { + accessibleEP = new AccessibleGraphicalEditPart() { + + public void getName(AccessibleEvent e) { + e.result = getLabelTextHelper(getFigure()); + } + }; + } + 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 + */ + protected void handleNotificationEvent(Notification event) { + Object feature = event.getFeature(); + if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { + Integer c = (Integer) event.getNewValue(); + setFontColor(DiagramColorRegistry.getInstance().getColor(c)); + } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals( + feature)) { + refreshUnderline(); + } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough() + .equals(feature)) { + refreshStrikeThrough(); + } 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)) { + refreshFont(); + } else { + if (getParser() != null + && getParser().isAffectingEvent(event, + getParserOptions().intValue())) { + refreshLabel(); + } + if (getParser() instanceof ISemanticParser) { + ISemanticParser modelParser = (ISemanticParser) getParser(); + if (modelParser.areSemanticElementsAffected(null, event)) { + removeSemanticListeners(); + if (resolveSemanticElement() != null) { + addSemanticListeners(); + } + refreshLabel(); + } + } + } + super.handleNotificationEvent(event); + } + + /** + * @generated + */ + protected IFigure createFigure() { + // Parent should assign one using setLabel() method + return null; + } + +} Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogExpr2EditPart.java ------------------------------------------------------------------------------ svn:eol-style = native Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogExprEditPart.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogExprEditPart.java?rev=953066&view=auto ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogExprEditPart.java (added) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogExprEditPart.java Wed Jun 9 16:08:20 2010 @@ -0,0 +1,600 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.scxml.modeling.diagram.edit.parts; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.apache.commons.scxml.modeling.diagram.edit.policies.ModelingTextSelectionEditPolicy; +import org.apache.commons.scxml.modeling.diagram.providers.ModelingElementTypes; +import org.apache.commons.scxml.modeling.diagram.providers.ModelingParserProvider; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.RunnableWithResult; +import org.eclipse.gef.AccessibleEditPart; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.GraphicalEditPart; +import org.eclipse.gef.Request; +import org.eclipse.gef.commands.Command; +import org.eclipse.gef.editpolicies.NonResizableEditPolicy; +import org.eclipse.gef.handles.NonResizableHandleKit; +import org.eclipse.gef.requests.DirectEditRequest; +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.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.common.ui.services.parser.ParserService; +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.LabelDirectEditPolicy; +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.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.jface.text.contentassist.IContentAssistProcessor; +import org.eclipse.jface.viewers.ICellEditorValidator; +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 LogExprEditPart extends CompartmentEditPart implements + ITextAwareEditPart { + + /** + * @generated + */ + public static final int VISUAL_ID = 5007; + + /** + * @generated + */ + private DirectEditManager manager; + + /** + * @generated + */ + private IParser parser; + + /** + * @generated + */ + private List parserElements; + + /** + * @generated + */ + private String defaultText; + + /** + * @generated + */ + public LogExprEditPart(View view) { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, + new LabelDirectEditPolicy()); + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, + new NonResizableEditPolicy() { + + protected List createSelectionHandles() { + List handles = new ArrayList(); + NonResizableHandleKit.addMoveHandle( + (GraphicalEditPart) getHost(), handles); + return handles; + } + + public Command getCommand(Request request) { + return null; + } + + public boolean understandsRequest(Request request) { + return false; + } + }); + } + + /** + * @generated + */ + protected String getLabelTextHelper(IFigure figure) { + if (figure instanceof WrappingLabel) { + return ((WrappingLabel) figure).getText(); + } else { + return ((Label) figure).getText(); + } + } + + /** + * @generated + */ + protected void setLabelTextHelper(IFigure figure, String text) { + if (figure instanceof WrappingLabel) { + ((WrappingLabel) figure).setText(text); + } else { + ((Label) figure).setText(text); + } + } + + /** + * @generated + */ + protected Image getLabelIconHelper(IFigure figure) { + if (figure instanceof WrappingLabel) { + return ((WrappingLabel) figure).getIcon(); + } else { + return ((Label) figure).getIcon(); + } + } + + /** + * @generated + */ + protected void setLabelIconHelper(IFigure figure, Image icon) { + if (figure instanceof WrappingLabel) { + ((WrappingLabel) figure).setIcon(icon); + } else { + ((Label) figure).setIcon(icon); + } + } + + /** + * @generated + */ + public void setLabel(WrappingLabel figure) { + unregisterVisuals(); + setFigure(figure); + defaultText = getLabelTextHelper(figure); + registerVisuals(); + refreshVisuals(); + } + + /** + * @generated + */ + protected List getModelChildren() { + return Collections.EMPTY_LIST; + } + + /** + * @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 ModelingElementTypes.getImage(parserElement.eClass()); + } + + /** + * @generated + */ + protected String getLabelText() { + String text = null; + EObject parserElement = getParserElement(); + if (parserElement != null && getParser() != null) { + text = getParser().getPrintString( + new EObjectAdapter(parserElement), + getParserOptions().intValue()); + } + if (text == null || text.length() == 0) { + text = defaultText; + } + return text; + } + + /** + * @generated + */ + public void setLabelText(String text) { + setLabelTextHelper(getFigure(), text); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof ModelingTextSelectionEditPolicy) { + ((ModelingTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); + } + } + + /** + * @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 + */ + public ICellEditorValidator getEditTextValidator() { + 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), + (String) value)); + } + }); + return valid.getCode() == ParserEditStatus.EDITABLE ? null + : valid.getMessage(); + } catch (InterruptedException ie) { + ie.printStackTrace(); + } + } + + // shouldn't get here + return null; + } + }; + } + + /** + * @generated + */ + public IContentAssistProcessor getCompletionProcessor() { + 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 (parser == null) { + String parserHint = ((View) getModel()).getType(); + IAdaptable hintAdapter = new ModelingParserProvider.HintAdapter( + ModelingElementTypes.Log_3007, getParserElement(), + parserHint); + parser = ParserService.getInstance().getParser(hintAdapter); + } + return parser; + } + + /** + * @generated + */ + protected DirectEditManager getManager() { + if (manager == null) { + setManager(new TextDirectEditManager(this, TextDirectEditManager + .getTextCellEditorClass(this), ModelingEditPartFactory + .getTextCellEditorLocator(this))); + } + return manager; + } + + /** + * @generated + */ + protected void setManager(DirectEditManager manager) { + this.manager = manager; + } + + /** + * @generated + */ + protected void performDirectEdit() { + getManager().show(); + } + + /** + * @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 { + performDirectEdit(); + } + } + + /** + * @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_CHAR) instanceof Character) { + Character initialChar = (Character) theRequest + .getExtendedData() + .get( + RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); + performDirectEdit(initialChar.charValue()); + } else if ((theRequest instanceof DirectEditRequest) + && (getEditText().equals(getLabelText()))) { + DirectEditRequest editRequest = (DirectEditRequest) theRequest; + performDirectEdit(editRequest.getLocation()); + } else { + performDirectEdit(); + } + } + } + }); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + /** + * @generated + */ + protected void refreshVisuals() { + super.refreshVisuals(); + refreshLabel(); + refreshFont(); + refreshFontColor(); + refreshUnderline(); + refreshStrikeThrough(); + } + + /** + * @generated + */ + protected void refreshLabel() { + setLabelTextHelper(getFigure(), getLabelText()); + setLabelIconHelper(getFigure(), getLabelIcon()); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof ModelingTextSelectionEditPolicy) { + ((ModelingTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); + } + } + + /** + * @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) { + getFigure().setForegroundColor(color); + } + + /** + * @generated + */ + protected void addSemanticListeners() { + if (getParser() instanceof ISemanticParser) { + EObject element = resolveSemanticElement(); + parserElements = ((ISemanticParser) getParser()) + .getSemanticElementsBeingParsed(element); + for (int i = 0; i < parserElements.size(); i++) { + addListenerFilter( + "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ + } + } else { + super.addSemanticListeners(); + } + } + + /** + * @generated + */ + protected void removeSemanticListeners() { + if (parserElements != null) { + for (int i = 0; i < parserElements.size(); i++) { + removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ + } + } else { + super.removeSemanticListeners(); + } + } + + /** + * @generated + */ + protected AccessibleEditPart getAccessibleEditPart() { + if (accessibleEP == null) { + accessibleEP = new AccessibleGraphicalEditPart() { + + public void getName(AccessibleEvent e) { + e.result = getLabelTextHelper(getFigure()); + } + }; + } + 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 + */ + protected void handleNotificationEvent(Notification event) { + Object feature = event.getFeature(); + if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { + Integer c = (Integer) event.getNewValue(); + setFontColor(DiagramColorRegistry.getInstance().getColor(c)); + } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals( + feature)) { + refreshUnderline(); + } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough() + .equals(feature)) { + refreshStrikeThrough(); + } 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)) { + refreshFont(); + } else { + if (getParser() != null + && getParser().isAffectingEvent(event, + getParserOptions().intValue())) { + refreshLabel(); + } + if (getParser() instanceof ISemanticParser) { + ISemanticParser modelParser = (ISemanticParser) getParser(); + if (modelParser.areSemanticElementsAffected(null, event)) { + removeSemanticListeners(); + if (resolveSemanticElement() != null) { + addSemanticListeners(); + } + refreshLabel(); + } + } + } + super.handleNotificationEvent(event); + } + + /** + * @generated + */ + protected IFigure createFigure() { + // Parent should assign one using setLabel() method + return null; + } + +} Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/LogExprEditPart.java ------------------------------------------------------------------------------ svn:eol-style = native Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/ModelingEditPartFactory.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/ModelingEditPartFactory.java?rev=953066&view=auto ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/ModelingEditPartFactory.java (added) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/ModelingEditPartFactory.java Wed Jun 9 16:08:20 2010 @@ -0,0 +1,563 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.scxml.modeling.diagram.edit.parts; + +import org.apache.commons.scxml.modeling.diagram.part.ModelingVisualIDRegistry; +import org.eclipse.draw2d.FigureUtilities; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.geometry.Dimension; +import org.eclipse.draw2d.geometry.Rectangle; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPartFactory; +import org.eclipse.gef.tools.CellEditorLocator; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.viewers.CellEditor; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Text; + +/** + * @generated + */ +public class ModelingEditPartFactory implements EditPartFactory { + + /** + * @generated + */ + public EditPart createEditPart(EditPart context, Object model) { + if (model instanceof View) { + View view = (View) model; + switch (ModelingVisualIDRegistry.getVisualID(view)) { + + case ServiceTemplateEditPart.VISUAL_ID: + return new ServiceTemplateEditPart(view); + + case StateEditPart.VISUAL_ID: + return new StateEditPart(view); + + case StateIdEditPart.VISUAL_ID: + return new StateIdEditPart(view); + + case ScriptEditPart.VISUAL_ID: + return new ScriptEditPart(view); + + case WrappingLabel2EditPart.VISUAL_ID: + return new WrappingLabel2EditPart(view); + + case ParallelEditPart.VISUAL_ID: + return new ParallelEditPart(view); + + case ParallelIdEditPart.VISUAL_ID: + return new ParallelIdEditPart(view); + + case DataModelEditPart.VISUAL_ID: + return new DataModelEditPart(view); + + case DataModelSchemaEditPart.VISUAL_ID: + return new DataModelSchemaEditPart(view); + + case FinalStateEditPart.VISUAL_ID: + return new FinalStateEditPart(view); + + case FinalStateIdEditPart.VISUAL_ID: + return new FinalStateIdEditPart(view); + + case OnEntryEditPart.VISUAL_ID: + return new OnEntryEditPart(view); + + case WrappingLabel3EditPart.VISUAL_ID: + return new WrappingLabel3EditPart(view); + + case IfEditPart.VISUAL_ID: + return new IfEditPart(view); + + case IfCondEditPart.VISUAL_ID: + return new IfCondEditPart(view); + + case ElseIfEditPart.VISUAL_ID: + return new ElseIfEditPart(view); + + case ElseIfCondEditPart.VISUAL_ID: + return new ElseIfCondEditPart(view); + + case ElseEditPart.VISUAL_ID: + return new ElseEditPart(view); + + case WrappingLabel4EditPart.VISUAL_ID: + return new WrappingLabel4EditPart(view); + + case AssignEditPart.VISUAL_ID: + return new AssignEditPart(view); + + case AssignDataidEditPart.VISUAL_ID: + return new AssignDataidEditPart(view); + + case RaiseEditPart.VISUAL_ID: + return new RaiseEditPart(view); + + case RaiseEventEditPart.VISUAL_ID: + return new RaiseEventEditPart(view); + + case LogEditPart.VISUAL_ID: + return new LogEditPart(view); + + case LogExprEditPart.VISUAL_ID: + return new LogExprEditPart(view); + + case ValidateEditPart.VISUAL_ID: + return new ValidateEditPart(view); + + case ValidateSchemaEditPart.VISUAL_ID: + return new ValidateSchemaEditPart(view); + + case CancelEditPart.VISUAL_ID: + return new CancelEditPart(view); + + case CancelSendidEditPart.VISUAL_ID: + return new CancelSendidEditPart(view); + + case SendEditPart.VISUAL_ID: + return new SendEditPart(view); + + case SendEventEditPart.VISUAL_ID: + return new SendEventEditPart(view); + + case ParamEditPart.VISUAL_ID: + return new ParamEditPart(view); + + case ParamNameEditPart.VISUAL_ID: + return new ParamNameEditPart(view); + + case ContentEditPart.VISUAL_ID: + return new ContentEditPart(view); + + case Content2EditPart.VISUAL_ID: + return new Content2EditPart(view); + + case Param2EditPart.VISUAL_ID: + return new Param2EditPart(view); + + case ParamName2EditPart.VISUAL_ID: + return new ParamName2EditPart(view); + + case Script2EditPart.VISUAL_ID: + return new Script2EditPart(view); + + case WrappingLabel5EditPart.VISUAL_ID: + return new WrappingLabel5EditPart(view); + + case ExtenExecContentEditPart.VISUAL_ID: + return new ExtenExecContentEditPart(view); + + case WrappingLabel15EditPart.VISUAL_ID: + return new WrappingLabel15EditPart(view); + + case OnExitEditPart.VISUAL_ID: + return new OnExitEditPart(view); + + case WrappingLabel6EditPart.VISUAL_ID: + return new WrappingLabel6EditPart(view); + + case If2EditPart.VISUAL_ID: + return new If2EditPart(view); + + case IfCond2EditPart.VISUAL_ID: + return new IfCond2EditPart(view); + + case Assign2EditPart.VISUAL_ID: + return new Assign2EditPart(view); + + case AssignDataid2EditPart.VISUAL_ID: + return new AssignDataid2EditPart(view); + + case Raise2EditPart.VISUAL_ID: + return new Raise2EditPart(view); + + case RaiseEvent2EditPart.VISUAL_ID: + return new RaiseEvent2EditPart(view); + + case Log2EditPart.VISUAL_ID: + return new Log2EditPart(view); + + case LogExpr2EditPart.VISUAL_ID: + return new LogExpr2EditPart(view); + + case Validate2EditPart.VISUAL_ID: + return new Validate2EditPart(view); + + case ValidateSchema2EditPart.VISUAL_ID: + return new ValidateSchema2EditPart(view); + + case Cancel2EditPart.VISUAL_ID: + return new Cancel2EditPart(view); + + case CancelSendid2EditPart.VISUAL_ID: + return new CancelSendid2EditPart(view); + + case Param3EditPart.VISUAL_ID: + return new Param3EditPart(view); + + case ParamName3EditPart.VISUAL_ID: + return new ParamName3EditPart(view); + + case Send2EditPart.VISUAL_ID: + return new Send2EditPart(view); + + case SendEvent2EditPart.VISUAL_ID: + return new SendEvent2EditPart(view); + + case Script3EditPart.VISUAL_ID: + return new Script3EditPart(view); + + case WrappingLabel7EditPart.VISUAL_ID: + return new WrappingLabel7EditPart(view); + + case ExtenExecContent2EditPart.VISUAL_ID: + return new ExtenExecContent2EditPart(view); + + case WrappingLabel16EditPart.VISUAL_ID: + return new WrappingLabel16EditPart(view); + + case InvokeEditPart.VISUAL_ID: + return new InvokeEditPart(view); + + case InvokeTypeEditPart.VISUAL_ID: + return new InvokeTypeEditPart(view); + + case FinalizeEditPart.VISUAL_ID: + return new FinalizeEditPart(view); + + case WrappingLabel8EditPart.VISUAL_ID: + return new WrappingLabel8EditPart(view); + + case Param4EditPart.VISUAL_ID: + return new Param4EditPart(view); + + case ParamName4EditPart.VISUAL_ID: + return new ParamName4EditPart(view); + + case Content3EditPart.VISUAL_ID: + return new Content3EditPart(view); + + case InitialState2EditPart.VISUAL_ID: + return new InitialState2EditPart(view); + + case WrappingLabel9EditPart.VISUAL_ID: + return new WrappingLabel9EditPart(view); + + case HistoryStateEditPart.VISUAL_ID: + return new HistoryStateEditPart(view); + + case HistoryStateIdEditPart.VISUAL_ID: + return new HistoryStateIdEditPart(view); + + case Parallel2EditPart.VISUAL_ID: + return new Parallel2EditPart(view); + + case ParallelId2EditPart.VISUAL_ID: + return new ParallelId2EditPart(view); + + case HistoryState2EditPart.VISUAL_ID: + return new HistoryState2EditPart(view); + + case HistoryStateId2EditPart.VISUAL_ID: + return new HistoryStateId2EditPart(view); + + case AnchorEditPart.VISUAL_ID: + return new AnchorEditPart(view); + + case AnchorTypeEditPart.VISUAL_ID: + return new AnchorTypeEditPart(view); + + case Parallel3EditPart.VISUAL_ID: + return new Parallel3EditPart(view); + + case ParallelId3EditPart.VISUAL_ID: + return new ParallelId3EditPart(view); + + case OnEntry2EditPart.VISUAL_ID: + return new OnEntry2EditPart(view); + + case WrappingLabel10EditPart.VISUAL_ID: + return new WrappingLabel10EditPart(view); + + case OnExit2EditPart.VISUAL_ID: + return new OnExit2EditPart(view); + + case WrappingLabel11EditPart.VISUAL_ID: + return new WrappingLabel11EditPart(view); + + case State2EditPart.VISUAL_ID: + return new State2EditPart(view); + + case StateId2EditPart.VISUAL_ID: + return new StateId2EditPart(view); + + case Anchor2EditPart.VISUAL_ID: + return new Anchor2EditPart(view); + + case AnchorType2EditPart.VISUAL_ID: + return new AnchorType2EditPart(view); + + case FinalState2EditPart.VISUAL_ID: + return new FinalState2EditPart(view); + + case FinalStateId2EditPart.VISUAL_ID: + return new FinalStateId2EditPart(view); + + case DonedataEditPart.VISUAL_ID: + return new DonedataEditPart(view); + + case WrappingLabel12EditPart.VISUAL_ID: + return new WrappingLabel12EditPart(view); + + case Param5EditPart.VISUAL_ID: + return new Param5EditPart(view); + + case ParamName5EditPart.VISUAL_ID: + return new ParamName5EditPart(view); + + case Content4EditPart.VISUAL_ID: + return new Content4EditPart(view); + + case OnEntry3EditPart.VISUAL_ID: + return new OnEntry3EditPart(view); + + case WrappingLabel13EditPart.VISUAL_ID: + return new WrappingLabel13EditPart(view); + + case OnExit3EditPart.VISUAL_ID: + return new OnExit3EditPart(view); + + case WrappingLabel14EditPart.VISUAL_ID: + return new WrappingLabel14EditPart(view); + + case State3EditPart.VISUAL_ID: + return new State3EditPart(view); + + case StateId3EditPart.VISUAL_ID: + return new StateId3EditPart(view); + + case DataEditPart.VISUAL_ID: + return new DataEditPart(view); + + case DataIdEditPart.VISUAL_ID: + return new DataIdEditPart(view); + + case Content5EditPart.VISUAL_ID: + return new Content5EditPart(view); + + case StateStateCompartmentEditPart.VISUAL_ID: + return new StateStateCompartmentEditPart(view); + + case OnEntryOnEntryCompartmentEditPart.VISUAL_ID: + return new OnEntryOnEntryCompartmentEditPart(view); + + case IfIfCompartmentEditPart.VISUAL_ID: + return new IfIfCompartmentEditPart(view); + + case SendSendCompartmentEditPart.VISUAL_ID: + return new SendSendCompartmentEditPart(view); + + case ContentContentCompartmentEditPart.VISUAL_ID: + return new ContentContentCompartmentEditPart(view); + + case ContentContentCompartment2EditPart.VISUAL_ID: + return new ContentContentCompartment2EditPart(view); + + case OnExitOnExitCompartmentEditPart.VISUAL_ID: + return new OnExitOnExitCompartmentEditPart(view); + + case IfIfCompartment2EditPart.VISUAL_ID: + return new IfIfCompartment2EditPart(view); + + case SendSendCompartment2EditPart.VISUAL_ID: + return new SendSendCompartment2EditPart(view); + + case InvokeInvokeCompartmentEditPart.VISUAL_ID: + return new InvokeInvokeCompartmentEditPart(view); + + case ContentContentCompartment3EditPart.VISUAL_ID: + return new ContentContentCompartment3EditPart(view); + + case ParallelParallelCompartmentEditPart.VISUAL_ID: + return new ParallelParallelCompartmentEditPart(view); + + case ParallelParallelCompartment2EditPart.VISUAL_ID: + return new ParallelParallelCompartment2EditPart(view); + + case OnEntryOnEntryCompartment2EditPart.VISUAL_ID: + return new OnEntryOnEntryCompartment2EditPart(view); + + case OnExitOnExitCompartment2EditPart.VISUAL_ID: + return new OnExitOnExitCompartment2EditPart(view); + + case StateStateCompartment2EditPart.VISUAL_ID: + return new StateStateCompartment2EditPart(view); + + case FinalStateFinalStateCompartmentEditPart.VISUAL_ID: + return new FinalStateFinalStateCompartmentEditPart(view); + + case DonedataDonedataCompartmentEditPart.VISUAL_ID: + return new DonedataDonedataCompartmentEditPart(view); + + case ContentContentCompartment4EditPart.VISUAL_ID: + return new ContentContentCompartment4EditPart(view); + + case OnEntryOnEntryCompartment3EditPart.VISUAL_ID: + return new OnEntryOnEntryCompartment3EditPart(view); + + case OnExitOnExitCompartment3EditPart.VISUAL_ID: + return new OnExitOnExitCompartment3EditPart(view); + + case StateStateCompartment3EditPart.VISUAL_ID: + return new StateStateCompartment3EditPart(view); + + case ParallelParallelCompartment3EditPart.VISUAL_ID: + return new ParallelParallelCompartment3EditPart(view); + + case DataModelDataModelCompartmentEditPart.VISUAL_ID: + return new DataModelDataModelCompartmentEditPart(view); + + case DataDataCompartmentEditPart.VISUAL_ID: + return new DataDataCompartmentEditPart(view); + + case ContentContentCompartment5EditPart.VISUAL_ID: + return new ContentContentCompartment5EditPart(view); + + case FinalStateFinalStateCompartment2EditPart.VISUAL_ID: + return new FinalStateFinalStateCompartment2EditPart(view); + + case TransitionEditPart.VISUAL_ID: + return new TransitionEditPart(view); + + case TransitionCondEditPart.VISUAL_ID: + return new TransitionCondEditPart(view); + } + } + return createUnrecognizedEditPart(context, model); + } + + /** + * @generated + */ + private EditPart createUnrecognizedEditPart(EditPart context, Object model) { + // Handle creation of unrecognized child node EditParts here + return null; + } + + /** + * @generated + */ + public static CellEditorLocator getTextCellEditorLocator( + ITextAwareEditPart source) { + if (source.getFigure() instanceof WrappingLabel) + return new TextCellEditorLocator((WrappingLabel) source.getFigure()); + else { + return new LabelCellEditorLocator((Label) source.getFigure()); + } + } + + /** + * @generated + */ + static private class TextCellEditorLocator implements CellEditorLocator { + + /** + * @generated + */ + private WrappingLabel wrapLabel; + + /** + * @generated + */ + public TextCellEditorLocator(WrappingLabel wrapLabel) { + this.wrapLabel = wrapLabel; + } + + /** + * @generated + */ + public WrappingLabel getWrapLabel() { + return wrapLabel; + } + + /** + * @generated + */ + public void relocate(CellEditor celleditor) { + Text text = (Text) celleditor.getControl(); + Rectangle rect = getWrapLabel().getTextBounds().getCopy(); + getWrapLabel().translateToAbsolute(rect); + if (getWrapLabel().isTextWrapOn() + && getWrapLabel().getText().length() > 0) { + rect.setSize(new Dimension(text.computeSize(rect.width, + SWT.DEFAULT))); + } else { + int avr = FigureUtilities.getFontMetrics(text.getFont()) + .getAverageCharWidth(); + rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, + SWT.DEFAULT)).expand(avr * 2, 0)); + } + if (!rect.equals(new Rectangle(text.getBounds()))) { + text.setBounds(rect.x, rect.y, rect.width, rect.height); + } + } + } + + /** + * @generated + */ + private static class LabelCellEditorLocator implements CellEditorLocator { + + /** + * @generated + */ + private Label label; + + /** + * @generated + */ + public LabelCellEditorLocator(Label label) { + this.label = label; + } + + /** + * @generated + */ + public Label getLabel() { + return label; + } + + /** + * @generated + */ + public void relocate(CellEditor celleditor) { + Text text = (Text) celleditor.getControl(); + Rectangle rect = getLabel().getTextBounds().getCopy(); + getLabel().translateToAbsolute(rect); + int avr = FigureUtilities.getFontMetrics(text.getFont()) + .getAverageCharWidth(); + rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, + SWT.DEFAULT)).expand(avr * 2, 0)); + if (!rect.equals(new Rectangle(text.getBounds()))) { + text.setBounds(rect.x, rect.y, rect.width, rect.height); + } + } + } +} Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/ModelingEditPartFactory.java ------------------------------------------------------------------------------ svn:eol-style = native Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntry2EditPart.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntry2EditPart.java?rev=953066&view=auto ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntry2EditPart.java (added) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntry2EditPart.java Wed Jun 9 16:08:20 2010 @@ -0,0 +1,297 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.scxml.modeling.diagram.edit.parts; + +import org.apache.commons.scxml.modeling.diagram.edit.policies.ModelingTextSelectionEditPolicy; +import org.apache.commons.scxml.modeling.diagram.edit.policies.OnEntry2ItemSemanticEditPolicy; +import org.apache.commons.scxml.modeling.diagram.part.ModelingVisualIDRegistry; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.RoundedRectangle; +import org.eclipse.draw2d.StackLayout; +import org.eclipse.draw2d.ToolbarLayout; +import org.eclipse.draw2d.geometry.Dimension; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.editpolicies.LayoutEditPolicy; +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.editparts.ShapeNodeEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; +import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.graphics.Color; + +/** + * @generated + */ +public class OnEntry2EditPart extends ShapeNodeEditPart { + + /** + * @generated + */ + public static final int VISUAL_ID = 3036; + + /** + * @generated + */ + protected IFigure contentPane; + + /** + * @generated + */ + protected IFigure primaryShape; + + /** + * @generated + */ + public OnEntry2EditPart(View view) { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, + new OnEntry2ItemSemanticEditPolicy()); + installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); + // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies + // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE); + } + + /** + * @generated + */ + protected LayoutEditPolicy createLayoutEditPolicy() { + + ConstrainedToolbarLayoutEditPolicy lep = new ConstrainedToolbarLayoutEditPolicy() { + + protected EditPolicy createChildEditPolicy(EditPart child) { + if (child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE) == null) { + if (child instanceof ITextAwareEditPart) { + return new ModelingTextSelectionEditPolicy(); + } + } + return super.createChildEditPolicy(child); + } + }; + return lep; + } + + /** + * @generated + */ + protected IFigure createNodeShape() { + OnEntryFigure figure = new OnEntryFigure(); + return primaryShape = figure; + } + + /** + * @generated + */ + public OnEntryFigure getPrimaryShape() { + return (OnEntryFigure) primaryShape; + } + + /** + * @generated + */ + protected boolean addFixedChild(EditPart childEditPart) { + if (childEditPart instanceof WrappingLabel10EditPart) { + ((WrappingLabel10EditPart) childEditPart) + .setLabel(getPrimaryShape().getFigureOnEntryLabel()); + return true; + } + return false; + } + + /** + * @generated + */ + protected boolean removeFixedChild(EditPart childEditPart) { + + return false; + } + + /** + * @generated + */ + protected void addChildVisual(EditPart childEditPart, int index) { + if (addFixedChild(childEditPart)) { + return; + } + super.addChildVisual(childEditPart, -1); + } + + /** + * @generated + */ + protected void removeChildVisual(EditPart childEditPart) { + if (removeFixedChild(childEditPart)) { + return; + } + super.removeChildVisual(childEditPart); + } + + /** + * @generated + */ + protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { + + return super.getContentPaneFor(editPart); + } + + /** + * @generated + */ + protected NodeFigure createNodePlate() { + DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode() + .DPtoLP(40), getMapMode().DPtoLP(40)); + return result; + } + + /** + * Creates figure for this edit part. + * + * Body of this method does not depend on settings in generation model + * so you may safely remove generated tag and modify it. + * + * @generated + */ + protected NodeFigure createNodeFigure() { + NodeFigure figure = createNodePlate(); + figure.setLayoutManager(new StackLayout()); + IFigure shape = createNodeShape(); + figure.add(shape); + contentPane = setupContentPane(shape); + return figure; + } + + /** + * Default implementation treats passed figure as content pane. + * Respects layout one may have set for generated figure. + * @param nodeShape instance of generated figure class + * @generated + */ + protected IFigure setupContentPane(IFigure nodeShape) { + if (nodeShape.getLayoutManager() == null) { + ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); + layout.setSpacing(getMapMode().DPtoLP(5)); + nodeShape.setLayoutManager(layout); + } + return nodeShape; // use nodeShape itself as contentPane + } + + /** + * @generated + */ + public IFigure getContentPane() { + if (contentPane != null) { + return contentPane; + } + return super.getContentPane(); + } + + /** + * @generated + */ + public EditPart getPrimaryChildEditPart() { + return getChildBySemanticHint(ModelingVisualIDRegistry + .getType(WrappingLabel10EditPart.VISUAL_ID)); + } + + /** + * @generated + */ + public class OnEntryFigure extends RoundedRectangle { + + /** + * @generated + */ + private WrappingLabel fFigureOnEntryLabel; + + /** + * @generated + */ + public OnEntryFigure() { + + ToolbarLayout layoutThis = new ToolbarLayout(); + layoutThis.setStretchMinorAxis(true); + layoutThis.setMinorAlignment(ToolbarLayout.ALIGN_CENTER); + + layoutThis.setSpacing(1); + layoutThis.setVertical(true); + + this.setLayoutManager(layoutThis); + + this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(12), + getMapMode().DPtoLP(12))); + this.setForegroundColor(THIS_FORE); + createContents(); + } + + /** + * @generated + */ + private void createContents() { + + fFigureOnEntryLabel = new WrappingLabel(); + fFigureOnEntryLabel.setText("OnEntry"); + + this.add(fFigureOnEntryLabel); + + } + + /** + * @generated + */ + private boolean myUseLocalCoordinates = false; + + /** + * @generated + */ + protected boolean useLocalCoordinates() { + return myUseLocalCoordinates; + } + + /** + * @generated + */ + protected void setUseLocalCoordinates(boolean useLocalCoordinates) { + myUseLocalCoordinates = useLocalCoordinates; + } + + /** + * @generated + */ + public WrappingLabel getFigureOnEntryLabel() { + return fFigureOnEntryLabel; + } + + } + + /** + * @generated + */ + static final Color THIS_FORE = new Color(null, 220, 220, 250); + +} Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntry2EditPart.java ------------------------------------------------------------------------------ svn:eol-style = native Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntry3EditPart.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntry3EditPart.java?rev=953066&view=auto ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntry3EditPart.java (added) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntry3EditPart.java Wed Jun 9 16:08:20 2010 @@ -0,0 +1,297 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.scxml.modeling.diagram.edit.parts; + +import org.apache.commons.scxml.modeling.diagram.edit.policies.ModelingTextSelectionEditPolicy; +import org.apache.commons.scxml.modeling.diagram.edit.policies.OnEntry3ItemSemanticEditPolicy; +import org.apache.commons.scxml.modeling.diagram.part.ModelingVisualIDRegistry; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.RoundedRectangle; +import org.eclipse.draw2d.StackLayout; +import org.eclipse.draw2d.ToolbarLayout; +import org.eclipse.draw2d.geometry.Dimension; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.editpolicies.LayoutEditPolicy; +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.editparts.ShapeNodeEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; +import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.graphics.Color; + +/** + * @generated + */ +public class OnEntry3EditPart extends ShapeNodeEditPart { + + /** + * @generated + */ + public static final int VISUAL_ID = 3044; + + /** + * @generated + */ + protected IFigure contentPane; + + /** + * @generated + */ + protected IFigure primaryShape; + + /** + * @generated + */ + public OnEntry3EditPart(View view) { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, + new OnEntry3ItemSemanticEditPolicy()); + installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); + // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies + // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE); + } + + /** + * @generated + */ + protected LayoutEditPolicy createLayoutEditPolicy() { + + ConstrainedToolbarLayoutEditPolicy lep = new ConstrainedToolbarLayoutEditPolicy() { + + protected EditPolicy createChildEditPolicy(EditPart child) { + if (child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE) == null) { + if (child instanceof ITextAwareEditPart) { + return new ModelingTextSelectionEditPolicy(); + } + } + return super.createChildEditPolicy(child); + } + }; + return lep; + } + + /** + * @generated + */ + protected IFigure createNodeShape() { + OnEntryFigure figure = new OnEntryFigure(); + return primaryShape = figure; + } + + /** + * @generated + */ + public OnEntryFigure getPrimaryShape() { + return (OnEntryFigure) primaryShape; + } + + /** + * @generated + */ + protected boolean addFixedChild(EditPart childEditPart) { + if (childEditPart instanceof WrappingLabel13EditPart) { + ((WrappingLabel13EditPart) childEditPart) + .setLabel(getPrimaryShape().getFigureOnEntryLabel()); + return true; + } + return false; + } + + /** + * @generated + */ + protected boolean removeFixedChild(EditPart childEditPart) { + + return false; + } + + /** + * @generated + */ + protected void addChildVisual(EditPart childEditPart, int index) { + if (addFixedChild(childEditPart)) { + return; + } + super.addChildVisual(childEditPart, -1); + } + + /** + * @generated + */ + protected void removeChildVisual(EditPart childEditPart) { + if (removeFixedChild(childEditPart)) { + return; + } + super.removeChildVisual(childEditPart); + } + + /** + * @generated + */ + protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { + + return super.getContentPaneFor(editPart); + } + + /** + * @generated + */ + protected NodeFigure createNodePlate() { + DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode() + .DPtoLP(40), getMapMode().DPtoLP(40)); + return result; + } + + /** + * Creates figure for this edit part. + * + * Body of this method does not depend on settings in generation model + * so you may safely remove generated tag and modify it. + * + * @generated + */ + protected NodeFigure createNodeFigure() { + NodeFigure figure = createNodePlate(); + figure.setLayoutManager(new StackLayout()); + IFigure shape = createNodeShape(); + figure.add(shape); + contentPane = setupContentPane(shape); + return figure; + } + + /** + * Default implementation treats passed figure as content pane. + * Respects layout one may have set for generated figure. + * @param nodeShape instance of generated figure class + * @generated + */ + protected IFigure setupContentPane(IFigure nodeShape) { + if (nodeShape.getLayoutManager() == null) { + ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); + layout.setSpacing(getMapMode().DPtoLP(5)); + nodeShape.setLayoutManager(layout); + } + return nodeShape; // use nodeShape itself as contentPane + } + + /** + * @generated + */ + public IFigure getContentPane() { + if (contentPane != null) { + return contentPane; + } + return super.getContentPane(); + } + + /** + * @generated + */ + public EditPart getPrimaryChildEditPart() { + return getChildBySemanticHint(ModelingVisualIDRegistry + .getType(WrappingLabel13EditPart.VISUAL_ID)); + } + + /** + * @generated + */ + public class OnEntryFigure extends RoundedRectangle { + + /** + * @generated + */ + private WrappingLabel fFigureOnEntryLabel; + + /** + * @generated + */ + public OnEntryFigure() { + + ToolbarLayout layoutThis = new ToolbarLayout(); + layoutThis.setStretchMinorAxis(true); + layoutThis.setMinorAlignment(ToolbarLayout.ALIGN_CENTER); + + layoutThis.setSpacing(1); + layoutThis.setVertical(true); + + this.setLayoutManager(layoutThis); + + this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(12), + getMapMode().DPtoLP(12))); + this.setForegroundColor(THIS_FORE); + createContents(); + } + + /** + * @generated + */ + private void createContents() { + + fFigureOnEntryLabel = new WrappingLabel(); + fFigureOnEntryLabel.setText("OnEntry"); + + this.add(fFigureOnEntryLabel); + + } + + /** + * @generated + */ + private boolean myUseLocalCoordinates = false; + + /** + * @generated + */ + protected boolean useLocalCoordinates() { + return myUseLocalCoordinates; + } + + /** + * @generated + */ + protected void setUseLocalCoordinates(boolean useLocalCoordinates) { + myUseLocalCoordinates = useLocalCoordinates; + } + + /** + * @generated + */ + public WrappingLabel getFigureOnEntryLabel() { + return fFigureOnEntryLabel; + } + + } + + /** + * @generated + */ + static final Color THIS_FORE = new Color(null, 220, 220, 250); + +} Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntry3EditPart.java ------------------------------------------------------------------------------ svn:eol-style = native Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntryEditPart.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntryEditPart.java?rev=953066&view=auto ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntryEditPart.java (added) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntryEditPart.java Wed Jun 9 16:08:20 2010 @@ -0,0 +1,297 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.scxml.modeling.diagram.edit.parts; + +import org.apache.commons.scxml.modeling.diagram.edit.policies.ModelingTextSelectionEditPolicy; +import org.apache.commons.scxml.modeling.diagram.edit.policies.OnEntryItemSemanticEditPolicy; +import org.apache.commons.scxml.modeling.diagram.part.ModelingVisualIDRegistry; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.RoundedRectangle; +import org.eclipse.draw2d.StackLayout; +import org.eclipse.draw2d.ToolbarLayout; +import org.eclipse.draw2d.geometry.Dimension; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.editpolicies.LayoutEditPolicy; +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.editparts.ShapeNodeEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; +import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.graphics.Color; + +/** + * @generated + */ +public class OnEntryEditPart extends ShapeNodeEditPart { + + /** + * @generated + */ + public static final int VISUAL_ID = 3001; + + /** + * @generated + */ + protected IFigure contentPane; + + /** + * @generated + */ + protected IFigure primaryShape; + + /** + * @generated + */ + public OnEntryEditPart(View view) { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, + new OnEntryItemSemanticEditPolicy()); + installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); + // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies + // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE); + } + + /** + * @generated + */ + protected LayoutEditPolicy createLayoutEditPolicy() { + + ConstrainedToolbarLayoutEditPolicy lep = new ConstrainedToolbarLayoutEditPolicy() { + + protected EditPolicy createChildEditPolicy(EditPart child) { + if (child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE) == null) { + if (child instanceof ITextAwareEditPart) { + return new ModelingTextSelectionEditPolicy(); + } + } + return super.createChildEditPolicy(child); + } + }; + return lep; + } + + /** + * @generated + */ + protected IFigure createNodeShape() { + OnEntryFigure figure = new OnEntryFigure(); + return primaryShape = figure; + } + + /** + * @generated + */ + public OnEntryFigure getPrimaryShape() { + return (OnEntryFigure) primaryShape; + } + + /** + * @generated + */ + protected boolean addFixedChild(EditPart childEditPart) { + if (childEditPart instanceof WrappingLabel3EditPart) { + ((WrappingLabel3EditPart) childEditPart).setLabel(getPrimaryShape() + .getFigureOnEntryLabel()); + return true; + } + return false; + } + + /** + * @generated + */ + protected boolean removeFixedChild(EditPart childEditPart) { + + return false; + } + + /** + * @generated + */ + protected void addChildVisual(EditPart childEditPart, int index) { + if (addFixedChild(childEditPart)) { + return; + } + super.addChildVisual(childEditPart, -1); + } + + /** + * @generated + */ + protected void removeChildVisual(EditPart childEditPart) { + if (removeFixedChild(childEditPart)) { + return; + } + super.removeChildVisual(childEditPart); + } + + /** + * @generated + */ + protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { + + return super.getContentPaneFor(editPart); + } + + /** + * @generated + */ + protected NodeFigure createNodePlate() { + DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode() + .DPtoLP(40), getMapMode().DPtoLP(40)); + return result; + } + + /** + * Creates figure for this edit part. + * + * Body of this method does not depend on settings in generation model + * so you may safely remove generated tag and modify it. + * + * @generated + */ + protected NodeFigure createNodeFigure() { + NodeFigure figure = createNodePlate(); + figure.setLayoutManager(new StackLayout()); + IFigure shape = createNodeShape(); + figure.add(shape); + contentPane = setupContentPane(shape); + return figure; + } + + /** + * Default implementation treats passed figure as content pane. + * Respects layout one may have set for generated figure. + * @param nodeShape instance of generated figure class + * @generated + */ + protected IFigure setupContentPane(IFigure nodeShape) { + if (nodeShape.getLayoutManager() == null) { + ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); + layout.setSpacing(getMapMode().DPtoLP(5)); + nodeShape.setLayoutManager(layout); + } + return nodeShape; // use nodeShape itself as contentPane + } + + /** + * @generated + */ + public IFigure getContentPane() { + if (contentPane != null) { + return contentPane; + } + return super.getContentPane(); + } + + /** + * @generated + */ + public EditPart getPrimaryChildEditPart() { + return getChildBySemanticHint(ModelingVisualIDRegistry + .getType(WrappingLabel3EditPart.VISUAL_ID)); + } + + /** + * @generated + */ + public class OnEntryFigure extends RoundedRectangle { + + /** + * @generated + */ + private WrappingLabel fFigureOnEntryLabel; + + /** + * @generated + */ + public OnEntryFigure() { + + ToolbarLayout layoutThis = new ToolbarLayout(); + layoutThis.setStretchMinorAxis(true); + layoutThis.setMinorAlignment(ToolbarLayout.ALIGN_CENTER); + + layoutThis.setSpacing(1); + layoutThis.setVertical(true); + + this.setLayoutManager(layoutThis); + + this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(12), + getMapMode().DPtoLP(12))); + this.setForegroundColor(THIS_FORE); + createContents(); + } + + /** + * @generated + */ + private void createContents() { + + fFigureOnEntryLabel = new WrappingLabel(); + fFigureOnEntryLabel.setText("OnEntry"); + + this.add(fFigureOnEntryLabel); + + } + + /** + * @generated + */ + private boolean myUseLocalCoordinates = false; + + /** + * @generated + */ + protected boolean useLocalCoordinates() { + return myUseLocalCoordinates; + } + + /** + * @generated + */ + protected void setUseLocalCoordinates(boolean useLocalCoordinates) { + myUseLocalCoordinates = useLocalCoordinates; + } + + /** + * @generated + */ + public WrappingLabel getFigureOnEntryLabel() { + return fFigureOnEntryLabel; + } + + } + + /** + * @generated + */ + static final Color THIS_FORE = new Color(null, 220, 220, 250); + +} Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/edit/parts/OnEntryEditPart.java ------------------------------------------------------------------------------ svn:eol-style = native