Author: guixl Date: Mon Jul 19 14:38:21 2010 New Revision: 965504 URL: http://svn.apache.org/viewvc?rev=965504&view=rev Log: start scxml document debug model job
Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java (with props) commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/icons/obj16/ScxmlCreateDebug.gif (with props) commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/debug/ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/debug/ModelingDocumentDebugWizard.java (with props) commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java (with props) Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.properties commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.xml Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java?rev=965504&view=auto ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java (added) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java Mon Jul 19 14:38:21 2010 @@ -0,0 +1,63 @@ +package guixl; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.scxml.SCXMLExecutor; +import org.apache.commons.scxml.TriggerEvent; +import org.apache.commons.scxml.env.SimpleDispatcher; +import org.apache.commons.scxml.env.SimpleErrorReporter; +import org.apache.commons.scxml.env.jexl.JexlContext; +import org.apache.commons.scxml.env.jexl.JexlEvaluator; +import org.apache.commons.scxml.io.SCXMLParser; +import org.apache.commons.scxml.model.ModelException; +import org.apache.commons.scxml.model.SCXML; +import org.xml.sax.SAXException; + +public class HelloWorld { + + /** + * @param args + */ + public static void main(String[] args) { + List customActions = new ArrayList(); + /* + * Add CustomAction implement class here + * + * CustomAction ca = new CustomAction("http://my.custom-actions.domain/CUSTOM","hello", Hello.class); + * customActions.add(ca); + */ + SCXML scxml=null; + try { + scxml = SCXMLParser.parse(HelloWorld.class.getClassLoader(). + getResource("guixl/hello-world.xml"), null, customActions); + SCXMLExecutor engine = new SCXMLExecutor(new JexlEvaluator(), new SimpleDispatcher(), + new SimpleErrorReporter()); + engine.setStateMachine(scxml); + engine.setSuperStep(true); + engine.setRootContext(new JexlContext()); + //engine.addListener(scxml, new Listener()); + engine.go(); + while(true){ + BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); + System.out.print("Command input:"); + String str; + str = reader.readLine(); + if(str.trim().equals("exit")) break; + else{ + engine.triggerEvent(new TriggerEvent(str,TriggerEvent.SIGNAL_EVENT)); + } + } + } catch (IOException e) { + e.printStackTrace(); + } catch (SAXException e) { + e.printStackTrace(); + } catch (ModelException e) { + e.printStackTrace(); + } + } + +} Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java ------------------------------------------------------------------------------ svn:eol-style = native Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/icons/obj16/ScxmlCreateDebug.gif URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/icons/obj16/ScxmlCreateDebug.gif?rev=965504&view=auto ============================================================================== Binary file - no diff available. Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/icons/obj16/ScxmlCreateDebug.gif ------------------------------------------------------------------------------ svn:mime-type = image/gif Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.properties URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.properties?rev=965504&r1=965503&r2=965504&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.properties (original) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.properties Mon Jul 19 14:38:21 2010 @@ -18,6 +18,9 @@ importWizardName=Import SCXML Document importWizardDesc=Creates Modeling diagram by importing SCXML document. SCXML=SCXML +createDebugWizardName=Create Apache Commons SCXML Debug Runtime +createDebugWizardDesc=Creates Apache Commons SCXML engine runtime. + exportScxmlDocumentLabel=Export Scxml Document initDiagramActionLabel=Initialize modeling_diagram diagram file loadResourceActionLabel=Load Resource... Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.xml URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.xml?rev=965504&r1=965503&r2=965504&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.xml (original) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.xml Mon Jul 19 14:38:21 2010 @@ -45,8 +45,8 @@ <extension point="org.eclipse.ui.newWizards"> <?gmfgen generated="true"?> <category - id = "org.apache.commons.scxml.modeling.import" - name="%SCXML"> + id="org.apache.commons.scxml.modeling.import" + name="%SCXML"> </category> <wizard name="%newWizardName" @@ -60,8 +60,8 @@ <extension point="org.eclipse.ui.newWizards"> <?gmfgen generated="true"?> <category - id = "org.apache.commons.scxml.modeling.import" - name="%SCXML"> + id="org.apache.commons.scxml.modeling.import" + name="%SCXML"> </category> <wizard name="%importWizardName" @@ -71,8 +71,7 @@ id="org.apache.commons.scxml.modeling.diagram.part.ModelingImportWizardID"> <description>%importWizardDesc</description> </wizard> - </extension> - + </extension> <extension point="org.eclipse.ui.popupMenus"> <?gmfgen generated="true"?> @@ -122,6 +121,23 @@ </action> </objectContribution> </extension> + + <extension point="org.eclipse.ui.popupMenus"> + <objectContribution + objectClass="org.eclipse.core.resources.IFile" + nameFilter="*.modeling" + id="org.apache.commons.scxml.modeling.createDebug"> + <action + enablesFor="1" + label="%createDebugWizardName" + tooltip="%createDebugWizardDesc" + class="org.apache.commons.scxml.modeling.debug.ModelingDocumentDebugWizard" + icon="icons/obj16/ScxmlCreateDebug.gif" + menubarPath="additions" + id="org.apache.commons.scxml.modeling.createDebugAction"> + </action> + </objectContribution> + </extension> <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders"> <?gmfgen generated="true"?> @@ -1210,4 +1226,4 @@ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" sequence="F5"/> </extension> -</plugin> \ No newline at end of file +</plugin> Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/debug/ModelingDocumentDebugWizard.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/debug/ModelingDocumentDebugWizard.java?rev=965504&view=auto ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/debug/ModelingDocumentDebugWizard.java (added) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/debug/ModelingDocumentDebugWizard.java Mon Jul 19 14:38:21 2010 @@ -0,0 +1,126 @@ +/* + * 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.debug; + +import org.apache.commons.scxml.modeling.diagram.edit.parts.ServiceTemplateEditPart; +import org.apache.commons.scxml.modeling.diagram.part.Messages; +import org.apache.commons.scxml.modeling.diagram.part.ModelingDiagramEditorPlugin; +import org.apache.commons.scxml.modeling.diagram.part.ModelingDiagramEditorUtil; +import org.apache.commons.scxml.modeling.diagram.part.ModelingNewDebugFileWizard; +import org.apache.commons.scxml.modeling.export.ModelingDocumentExportWizard; +import org.eclipse.core.resources.IFile; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.osgi.util.NLS; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; + +/** + * Create Apache Commons SCXML debug runtime + */ +public class ModelingDocumentDebugWizard implements IObjectActionDelegate{ + /** + * @generated + */ + private IWorkbenchPart targetPart; + + /** + * @generated + */ + private URI domainModelURI; + + private IFile file; + + /** + * @generated + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + this.targetPart = targetPart; + } + + /** + * @generated + */ + public void selectionChanged(IAction action, ISelection selection) { + domainModelURI = null; + action.setEnabled(false); + if (selection instanceof IStructuredSelection == false + || selection.isEmpty()) { + return; + } + file = (IFile) ((IStructuredSelection) selection) + .getFirstElement(); + + domainModelURI = URI.createPlatformResourceURI(file.getFullPath() + .toString(), true); + action.setEnabled(true); + } + + /** + * @generated + */ + private Shell getShell() { + return targetPart.getSite().getShell(); + } + + /** + * @generated + */ + public void run(IAction action) { + TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE + .createEditingDomain(); + ResourceSet resourceSet = editingDomain.getResourceSet(); + EObject diagramRoot = null; + try { + Resource resource = resourceSet.getResource(domainModelURI, true); + diagramRoot = (EObject) resource.getContents().get(0); + } catch (WrappedException ex) { + ModelingDiagramEditorPlugin.getInstance().logError( + "Unable to load resource: " + domainModelURI, ex); //$NON-NLS-1$ + } + if (diagramRoot == null) { + MessageDialog + .openError( + getShell(), + Messages.ModelingInitDiagramFileAction_InitDiagramFileResourceErrorDialogTitle, + Messages.ModelingInitDiagramFileAction_InitDiagramFileResourceErrorDialogMessage); + return; + } + Wizard wizard = new ModelingNewDebugFileWizard(file,domainModelURI, + diagramRoot, editingDomain); + wizard + .setWindowTitle(NLS + .bind( + Messages.ModelingInitDiagramFileAction_ExportScxmlDocumentWizardTitle, + ServiceTemplateEditPart.MODEL_ID)); + ModelingDiagramEditorUtil.runWizard(getShell(), wizard, + "ExportScxmlDocument"); //$NON-NLS-1$ + } +} + Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/debug/ModelingDocumentDebugWizard.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/part/ModelingNewDebugFileWizard.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/part/ModelingNewDebugFileWizard.java?rev=965504&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/part/ModelingNewDebugFileWizard.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/part/ModelingNewDebugFileWizard.java Mon Jul 19 14:38:21 2010 @@ -0,0 +1,282 @@ +/* + * 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.part; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; +import java.util.LinkedList; +import java.util.List; + +import org.apache.commons.scxml.modeling.diagram.edit.parts.ServiceTemplateEditPart; +import org.apache.commons.scxml.modeling.diagram.part.Messages; +import org.apache.commons.scxml.modeling.diagram.part.ModelElementSelectionPage; +import org.apache.commons.scxml.modeling.diagram.part.ModelingDiagramEditorPlugin; +import org.apache.commons.scxml.modeling.diagram.part.ModelingDiagramEditorUtil; +import org.apache.commons.scxml.modeling.diagram.part.ModelingVisualIDRegistry; +import org.apache.commons.scxml.modeling.export.ScxmlExportStreamHandlerAction; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.gmf.runtime.diagram.core.services.ViewService; +import org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.osgi.util.NLS; +import org.eclipse.ui.dialogs.WizardNewFileCreationPage; + +/** + * Apache Commons SCXML debug runtime wizard + * + */ +public class ModelingNewDebugFileWizard extends Wizard { + + /** + * @generated + */ + private WizardNewFileCreationPage myFileCreationPage; + + /** + * @generated + */ + private ModelElementSelectionPage diagramRootElementSelectionPage; + + /** + * @generated + */ + private TransactionalEditingDomain myEditingDomain; + + /** + * model file + */ + private IFile modelFile; + + /** + * @generated + */ + public ModelingNewDebugFileWizard(IFile file, URI domainModelURI, + EObject diagramRoot, TransactionalEditingDomain editingDomain) { + modelFile = file; + assert domainModelURI != null : "Domain model uri must be specified"; //$NON-NLS-1$ + assert diagramRoot != null : "Doagram root element must be specified"; //$NON-NLS-1$ + assert editingDomain != null : "Editing domain must be specified"; //$NON-NLS-1$ + + myFileCreationPage = new WizardNewFileCreationPage( + Messages.ModelingNewScxmlFileWizard_CreationPageName, + StructuredSelection.EMPTY); + myFileCreationPage + .setTitle(Messages.ModelingNewScxmlFileWizard_CreationPageTitle); + myFileCreationPage.setDescription(NLS.bind( + Messages.ModelingNewScxmlFileWizard_CreationPageDescription, + ServiceTemplateEditPart.MODEL_ID)); + IPath filePath; + String fileName = domainModelURI.trimFileExtension().lastSegment(); + if (domainModelURI.isPlatformResource()) { + filePath = new Path(domainModelURI.trimSegments(1) + .toPlatformString(true)); + } else if (domainModelURI.isFile()) { + filePath = new Path(domainModelURI.trimSegments(1).toFileString()); + } else { + throw new IllegalArgumentException( + "Unsupported URI: " + domainModelURI); //$NON-NLS-1$ + } + myFileCreationPage.setContainerFullPath(filePath); + myFileCreationPage.setFileName(ModelingDiagramEditorUtil + .getUniqueFileName(filePath, fileName, "java")); //$NON-NLS-1$ + + diagramRootElementSelectionPage = new DiagramRootElementSelectionPage( + Messages.ModelingNewScxmlFileWizard_RootSelectionPageName); + diagramRootElementSelectionPage + .setTitle(Messages.ModelingNewScxmlFileWizard_RootSelectionPageTitle); + diagramRootElementSelectionPage + .setDescription(Messages.ModelingNewScxmlFileWizard_RootSelectionPageDescription); + diagramRootElementSelectionPage.setModelElement(diagramRoot); + + myEditingDomain = editingDomain; + + } + + /** + * + * @param is + * @return change InputStream to String object + * @throws IOException + */ + public static String inputStream2String(InputStream is) throws IOException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int i = -1; + while ((i = is.read()) != -1) { + baos.write(i); + } + return baos.toString(); + } + + /** + * @generated + */ + public void addPages() { + addPage(myFileCreationPage); + addPage(diagramRootElementSelectionPage); + } + + /** + * @generated + */ + public boolean performFinish() { + try { + List affectedFiles = new LinkedList(); + final IFile xmlFile = myFileCreationPage.createNewFile(); + affectedFiles.add(xmlFile); + new ProgressMonitorDialog(null).run(true, false, + new ScxmlExportOperation(false,xmlFile)); + } catch (InvocationTargetException e1) { + e1.printStackTrace(); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + + return true; + } + + class ScxmlExportOperation implements IRunnableWithProgress { + + private boolean indeterminate; + private IFile debugClassFile; + + /** + * LongRunningOperation constructor + * + * @param indeterminate + * whether the animation is unknown + */ + public ScxmlExportOperation(boolean indeterminate,IFile file) { + this.indeterminate = indeterminate; + debugClassFile=file; + } + + public IFile getXmlFile() { + return debugClassFile; + } + + public void setXmlFile(IFile xmlFile) { + this.debugClassFile = xmlFile; + } + + /** + * Runs the long running operation + * + * @param monitor + * the progress monitor + */ + public void run(IProgressMonitor monitor) + throws InvocationTargetException, InterruptedException { + + int diagramVID = ModelingVisualIDRegistry + .getDiagramVisualID(diagramRootElementSelectionPage + .getModelElement()); + monitor.beginTask("SCXML document export progress",9); + + try { + InputStream fileTemplate=this.getClass().getClassLoader().getResourceAsStream("debug/CommonsSCXMLEngine.java"); + monitor.worked(1); + debugClassFile.setContents(fileTemplate, 1, null); + monitor.worked(8); + + // get target list by regular expression + /*ScxmlExportStreamHandlerAction shc = new ScxmlExportStreamHandlerAction( + modelFile.getContents()); + shc.contentPreHandler(); + monitor.worked(1); + shc.getTargetList(); + monitor.worked(1); + shc.transferToXpath(); + monitor.worked(1); + shc.getIdMap(modelFile.getContents()); + monitor.worked(1); + shc.updateTargetId(); + monitor.worked(1); + System.out.println(shc.getStreamContnet()); + String content = shc.ExecuteXSL(shc.getStreamContnet(), this + .getClass().getClassLoader().getResourceAsStream( + "xslt/export.xsl")); + monitor.worked(1); + content=content.replace("xmlns_attribute_url_in_xslt_file", "xmlns"); + monitor.worked(1); + xmlFile.setContents(shc.string2InputStream(content), 1, null); + monitor.worked(1);*/ + + + if (monitor.isCanceled()) throw new InterruptedException( + "The SCXML document debug class creation operation was cancelled"); + + monitor.done(); + } catch (CoreException e) { + e.printStackTrace(); + } + } + } + + /** + * @generated + */ + private static class DiagramRootElementSelectionPage extends + ModelElementSelectionPage { + + /** + * @generated + */ + protected DiagramRootElementSelectionPage(String pageName) { + super(pageName); + } + + /** + * @generated + */ + protected String getSelectionTitle() { + return Messages.ModelingNewScxmlFileWizard_RootSelectionPageSelectionTitle; + } + + /** + * @generated + */ + protected boolean validatePage() { + if (selectedModelElement == null) { + setErrorMessage(Messages.ModelingNewScxmlFileWizard_RootSelectionPageNoSelectionMessage); + return false; + } + boolean result = ViewService + .getInstance() + .provides( + new CreateDiagramViewOperation( + new EObjectAdapter(selectedModelElement), + ServiceTemplateEditPart.MODEL_ID, + ModelingDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT)); + setErrorMessage(result ? null + : Messages.ModelingNewScxmlFileWizard_RootSelectionPageInvalidSelectionMessage); + return result; + } + } +} Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java ------------------------------------------------------------------------------ svn:eol-style = native