diff options
author | rescobar | 2010-08-10 20:41:22 +0000 |
---|---|---|
committer | rescobar | 2010-08-10 20:41:22 +0000 |
commit | 07f256cbdd445af563a4b60f657846956ca556cb (patch) | |
tree | 726823f992bc8c2c128f1261033fa4a46f7cdfb7 | |
parent | 079ee52a5e78d23a839e26fa6524443532e67333 (diff) | |
download | org.eclipse.osee-07f256cbdd445af563a4b60f657846956ca556cb.tar.gz org.eclipse.osee-07f256cbdd445af563a4b60f657846956ca556cb.tar.xz org.eclipse.osee-07f256cbdd445af563a4b60f657846956ca556cb.zip |
"Team Workflow" - YGHW1 - "Block changes to requirements unless done under an appropriate action."
5 files changed, 189 insertions, 9 deletions
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/META-INF/MANIFEST.MF index 4bf77587874..c66455660f1 100644 --- a/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/META-INF/MANIFEST.MF @@ -44,7 +44,10 @@ Import-Package: org.eclipse.compare, org.eclipse.osee.framework.ui.plugin, org.eclipse.osee.framework.ui.plugin.util, org.eclipse.osee.framework.ui.skynet, + org.eclipse.osee.framework.ui.skynet.artifact.editor, + org.eclipse.osee.framework.ui.skynet.commandHandlers.renderer.handlers, org.eclipse.osee.framework.ui.skynet.panels, + org.eclipse.osee.framework.ui.skynet.render, org.eclipse.osee.framework.ui.skynet.results, org.eclipse.osee.framework.ui.skynet.results.table, org.eclipse.osee.framework.ui.swt, diff --git a/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/plugin.xml b/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/plugin.xml index ae0335fb867..6bace035fb8 100644 --- a/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/plugin.xml +++ b/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/plugin.xml @@ -30,4 +30,32 @@ classname="org.eclipse.osee.framework.core.dsl.ui.integration.operations.XtextOseeTypesHandler"> </OseeTypesHandler> </extension> + <extension + point="org.eclipse.osee.framework.ui.skynet.ArtifactRenderer"> + <Renderer + classname="org.eclipse.osee.framework.core.dsl.ui.integration.internal.OseeDslRenderer"> + </Renderer> + </extension> + <extension + point="org.eclipse.ui.commands"> + <command + id="org.eclipse.osee.framework.core.dsl.OseeDsl.editor.command" + name="OseeDsl Editor"> + </command> + </extension> + <extension + point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.osee.framework.core.dsl.ui.integration.internal.OseeDslEditorHandler" + commandId="org.eclipse.osee.framework.core.dsl.OseeDsl.editor.command"> + <enabledWhen> + <with + variable="selection"> + <count + value="+"> + </count> + </with> + </enabledWhen> + </handler> + </extension> </plugin> diff --git a/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/src/org/eclipse/osee/framework/core/dsl/ui/integration/internal/OseeDslEditorHandler.java b/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/src/org/eclipse/osee/framework/core/dsl/ui/integration/internal/OseeDslEditorHandler.java new file mode 100644 index 00000000000..048ca312566 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/src/org/eclipse/osee/framework/core/dsl/ui/integration/internal/OseeDslEditorHandler.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.framework.core.dsl.ui.integration.internal; + +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.osee.framework.core.enums.PermissionEnum; +import org.eclipse.osee.framework.ui.skynet.commandHandlers.renderer.handlers.AbstractEditorHandler; +import org.eclipse.osee.framework.ui.skynet.render.PresentationType; +import org.eclipse.osee.framework.ui.skynet.render.RendererManager; + +/** + * @author Roberto E. Escobar + */ +public class OseeDslEditorHandler extends AbstractEditorHandler { + + @Override + public Object execute(ExecutionEvent event) { + RendererManager.openInJob(artifacts, PresentationType.SPECIALIZED_EDIT); + dispose(); + return null; + } + + @Override + protected PermissionEnum getPermissionLevel() { + return PermissionEnum.WRITE; + } +} diff --git a/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/src/org/eclipse/osee/framework/core/dsl/ui/integration/internal/OseeDslRenderer.java b/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/src/org/eclipse/osee/framework/core/dsl/ui/integration/internal/OseeDslRenderer.java new file mode 100644 index 00000000000..f0699732b86 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.dsl.ui.integration/src/org/eclipse/osee/framework/core/dsl/ui/integration/internal/OseeDslRenderer.java @@ -0,0 +1,117 @@ +/******************************************************************************* + * Copyright (c) 2010 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.framework.core.dsl.ui.integration.internal; + +import static org.eclipse.osee.framework.ui.skynet.render.PresentationType.GENERALIZED_EDIT; +import java.util.ArrayList; +import java.util.List; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.logging.OseeLevel; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; +import org.eclipse.osee.framework.ui.skynet.artifact.editor.BaseArtifactEditorInput; +import org.eclipse.osee.framework.ui.skynet.render.DefaultArtifactRenderer; +import org.eclipse.osee.framework.ui.skynet.render.PresentationType; +import org.eclipse.osee.framework.ui.swt.Displays; +import org.eclipse.swt.graphics.Image; + +/** + * @author Roberto E. Escobar + */ +public final class OseeDslRenderer extends DefaultArtifactRenderer { + + private static final String OSEE_DSL_EDITOR_ID = "org.eclipse.osee.framework.core.dsl.OseeDsl"; + private static final String COMMAND_ID = "org.eclipse.osee.framework.core.dsl.OseeDsl.editor.command"; + + @Override + public String getName() { + return "OseeDsl Editor"; + } + + @Override + public DefaultArtifactRenderer newInstance() { + return new OseeDslRenderer(); + } + + @Override + public int getApplicabilityRating(PresentationType presentationType, Artifact artifact) { + if (presentationType != GENERALIZED_EDIT && !artifact.isHistorical()) { + if (artifact.isOfType(CoreArtifactTypes.ACCESS_CONTROL_MODEL)) { + return SUBTYPE_TYPE_MATCH; + } + } + return NO_MATCH; + } + + @Override + public Image getImage(Artifact artifact) { + return super.getImage(artifact); + } + + @Override + public List<String> getCommandId(PresentationType presentationType) { + ArrayList<String> commandIds = new ArrayList<String>(1); + if (presentationType == PresentationType.SPECIALIZED_EDIT) { + commandIds.add(COMMAND_ID); + } + return commandIds; + } + + @Override + public void open(final List<Artifact> artifacts, PresentationType presentationType) throws OseeCoreException { + Displays.ensureInDisplayThread(new Runnable() { + @Override + public void run() { + try { + for (Artifact artifact : artifacts) { + // String value = artifact.getSoleAttributeValueAsString(CoreAttributeTypes.GeneralStringData, ""); + AWorkbench.getActivePage().openEditor(new XtextArtifactEditorInput(artifact), OSEE_DSL_EDITOR_ID); + } + } catch (CoreException ex) { + OseeLog.log(SkynetGuiPlugin.class, OseeLevel.SEVERE_POPUP, ex); + } + } + }); + + } + + @Override + public boolean supportsCompare() { + return true; + } + + private final static class XtextArtifactEditorInput extends BaseArtifactEditorInput { + + public XtextArtifactEditorInput(Artifact artifact) { + super(artifact); + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof XtextArtifactEditorInput) { + return super.equals(obj); + } + return false; + } + + @Override + public Object getAdapter(Class adapter) { + System.out.println(adapter); + return super.getAdapter(adapter); + } + + } + +} diff --git a/plugins/org.eclipse.osee.framework.core.dsl/src/org/eclipse/osee/framework/core/dsl/validation/OseeDslJavaValidator.java b/plugins/org.eclipse.osee.framework.core.dsl/src/org/eclipse/osee/framework/core/dsl/validation/OseeDslJavaValidator.java index d352255f27a..74d5bbc0e29 100644 --- a/plugins/org.eclipse.osee.framework.core.dsl/src/org/eclipse/osee/framework/core/dsl/validation/OseeDslJavaValidator.java +++ b/plugins/org.eclipse.osee.framework.core.dsl/src/org/eclipse/osee/framework/core/dsl/validation/OseeDslJavaValidator.java @@ -28,6 +28,9 @@ import org.eclipse.osee.framework.core.dsl.oseeDsl.XRelationType; import org.eclipse.osee.framework.core.dsl.oseeDsl.util.OseeDslSwitch; import org.eclipse.xtext.validation.Check; +/** + * @author Roberto E. Escobar + */ public class OseeDslJavaValidator extends AbstractOseeDslJavaValidator { public static final String NON_UNIQUE_HIERARCHY = "non_unique_hierarchy"; @@ -45,10 +48,11 @@ public class OseeDslJavaValidator extends AbstractOseeDslJavaValidator { private void checkHierarchyUnique(AccessContext accessContext, Collection<HierarchyRestriction> hierarchy) { Map<String, XArtifactRef> references = new HashMap<String, XArtifactRef>(); for (HierarchyRestriction restriction : hierarchy) { - String guid = restriction.getArtifact().getGuid(); + XArtifactRef artifactRef = restriction.getArtifact(); + String guid = artifactRef.getGuid(); XArtifactRef reference = references.get(guid); if (reference == null) { - references.put(guid, restriction.getArtifact()); + references.put(guid, artifactRef); } else { String message = String.format("Duplicate hierarchy restriction [%s] in context[%s]", reference.toString(), @@ -160,11 +164,4 @@ public class OseeDslJavaValidator extends AbstractOseeDslJavaValidator { } - // @Check - // public void checkGreetingStartsWithCapital(Greeting greeting) { - // if (!Character.isUpperCase(greeting.getName().charAt(0))) { - // warning("Name should start with a capital", MyDslPackage.GREETING__NAME); - // } - // } - } |