Alex: RATLC00421590 [RFE_WPState] Make sure Activity Detail Diagram appends the right states assigned in the processes
diff --git a/1.5/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/AuthoringUIResources.java b/1.5/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/AuthoringUIResources.java index 67af795..5c91f97 100644 --- a/1.5/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/AuthoringUIResources.java +++ b/1.5/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/AuthoringUIResources.java
@@ -1606,6 +1606,8 @@ public static String WPCompartmentFigure_0; public static String promptfor_publish_unopen_activitydd_text; + + public static String use_state_on_workproduct_text; public static String prompt_for_publish_extend_activity_diagram;
diff --git a/1.5/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/Resources.properties b/1.5/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/Resources.properties index e998640..aef80bb 100644 --- a/1.5/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/Resources.properties +++ b/1.5/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/Resources.properties
@@ -1025,6 +1025,7 @@ WPCompartmentFigure_0=New WorkProduct Descriptor promptfor_publish_unopen_activitydd_text=Publish activity detail diagrams that have not been created in process editor prompt_for_publish_extend_activity_diagram=Publish activity diagrams for unmodified activity extensions +use_state_on_workproduct_text=Use individual states on work product #ConfigProcessViewDialog ConfigProcessViewDialog_NamePattern=Name patterns (matching names will be shown):
diff --git a/1.5/plugins/org.eclipse.epf.diagram.model/META-INF/MANIFEST.MF b/1.5/plugins/org.eclipse.epf.diagram.model/META-INF/MANIFEST.MF index dbcae09..cf609f6 100644 --- a/1.5/plugins/org.eclipse.epf.diagram.model/META-INF/MANIFEST.MF +++ b/1.5/plugins/org.eclipse.epf.diagram.model/META-INF/MANIFEST.MF
@@ -9,9 +9,11 @@ org.eclipse.core.runtime, org.eclipse.draw2d, org.eclipse.emf.transaction, - org.eclipse.emf.workspace + org.eclipse.emf.workspace, + org.eclipse.epf.common.ui Eclipse-LazyStart: true Export-Package: org.eclipse.epf.diagram.model, org.eclipse.epf.diagram.model.impl, org.eclipse.epf.diagram.model.util Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Bundle-Activator: org.eclipse.epf.diagram.model.util.DiagramModelPlugin
diff --git a/1.5/plugins/org.eclipse.epf.diagram.model/src/org/eclipse/epf/diagram/model/impl/ActivityDetailDiagramImpl.java b/1.5/plugins/org.eclipse.epf.diagram.model/src/org/eclipse/epf/diagram/model/impl/ActivityDetailDiagramImpl.java index 8201e6c..a233e34 100644 --- a/1.5/plugins/org.eclipse.epf.diagram.model/src/org/eclipse/epf/diagram/model/impl/ActivityDetailDiagramImpl.java +++ b/1.5/plugins/org.eclipse.epf.diagram.model/src/org/eclipse/epf/diagram/model/impl/ActivityDetailDiagramImpl.java
@@ -21,6 +21,7 @@ import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.edit.provider.AdapterFactoryTreeIterator; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; @@ -34,6 +35,7 @@ import org.eclipse.epf.diagram.model.TaskNode; import org.eclipse.epf.diagram.model.WorkProductComposite; import org.eclipse.epf.diagram.model.WorkProductDescriptorNode; +import org.eclipse.epf.diagram.model.util.DiagramModelPreference; import org.eclipse.epf.diagram.model.util.GraphicalDataHelper; import org.eclipse.epf.diagram.model.util.IActivityDetailDiagramChangeListener; import org.eclipse.epf.diagram.model.util.IAdapterFactoryFilter; @@ -44,14 +46,17 @@ import org.eclipse.epf.library.edit.process.IBSItemProvider; import org.eclipse.epf.library.edit.util.ConfigurableComposedAdapterFactory; import org.eclipse.epf.library.edit.util.ProcessUtil; +import org.eclipse.epf.library.edit.util.TaskDescriptorPropUtil; import org.eclipse.epf.library.edit.util.TngUtil; import org.eclipse.epf.uma.Activity; import org.eclipse.epf.uma.Artifact; import org.eclipse.epf.uma.BreakdownElement; +import org.eclipse.epf.uma.Constraint; import org.eclipse.epf.uma.Descriptor; import org.eclipse.epf.uma.MethodElement; import org.eclipse.epf.uma.RoleDescriptor; import org.eclipse.epf.uma.TaskDescriptor; +import org.eclipse.epf.uma.UmaPackage; import org.eclipse.epf.uma.WorkProduct; import org.eclipse.epf.uma.WorkProductDescriptor; import org.eclipse.epf.uma.util.AssociationHelper; @@ -1037,6 +1042,12 @@ } private void setState(int type, Node node) { + TaskDescriptor td = null; + + if (node instanceof WorkProductComposite) { + td = (TaskDescriptor)((WorkProductComposite)node).getLinkedElement(); + } + if (node instanceof NodeContainer) { for (Node element : ((NodeContainer)node).getNodes()) { if (element instanceof WorkProductDescriptorNode) { @@ -1044,10 +1055,29 @@ MethodElement methodElement = wpNode.getLinkedElement(); if (methodElement instanceof WorkProductDescriptor){ String stateText = null; - if (type == WorkProductComposite.INPUTS) - stateText = ((WorkProductDescriptor) methodElement).getActivityEntryState(); - else if (type == WorkProductComposite.OUTPUTS) - stateText = ((WorkProductDescriptor) methodElement).getActivityExitState(); + + boolean useNewWorkproductState = DiagramModelPreference.getUseStateOnWorkproduct(); + if (useNewWorkproductState) { + WorkProductDescriptor wpd = (WorkProductDescriptor)methodElement; + EReference ref = null; + + if (type == WorkProductComposite.INPUTS) { + ref = UmaPackage.eINSTANCE.getTaskDescriptor_MandatoryInput(); + } else if (type == WorkProductComposite.OUTPUTS) { + ref = UmaPackage.eINSTANCE.getTaskDescriptor_Output(); + } + + List<Constraint> states = TaskDescriptorPropUtil.getTaskDescriptorPropUtil().getWpStates(td, wpd, ref); + if (states.size() > 0) { + stateText = states.get(0).getBody(); + } + } else { + if (type == WorkProductComposite.INPUTS) + stateText = ((WorkProductDescriptor) methodElement).getActivityEntryState(); + else if (type == WorkProductComposite.OUTPUTS) + stateText = ((WorkProductDescriptor) methodElement).getActivityExitState(); + } + wpNode.setState(stateText); } }
diff --git a/1.5/plugins/org.eclipse.epf.diagram.model/src/org/eclipse/epf/diagram/model/util/DiagramModelPlugin.java b/1.5/plugins/org.eclipse.epf.diagram.model/src/org/eclipse/epf/diagram/model/util/DiagramModelPlugin.java new file mode 100644 index 0000000..22fb884 --- /dev/null +++ b/1.5/plugins/org.eclipse.epf.diagram.model/src/org/eclipse/epf/diagram/model/util/DiagramModelPlugin.java
@@ -0,0 +1,31 @@ +/******************************************************************************* +* Licensed Materials - Property of IBM +* (c) Copyright IBM Corporation 2007,2009. All Rights Reserved. +* +* Note to U.S. Government Users Restricted Rights: +* Use, duplication or disclosure restricted by GSA ADP Schedule +* Contract with IBM Corp. +*******************************************************************************/ + +package org.eclipse.epf.diagram.model.util; + +import org.eclipse.epf.common.ui.AbstractPlugin; + +public class DiagramModelPlugin extends AbstractPlugin { + public static final String PLUGIN_ID = "org.eclipse.epf.diagram.model"; //$NON-NLS-1$ + + private static DiagramModelPlugin plugin; + + public DiagramModelPlugin() { + plugin = this; + } + + public static DiagramModelPlugin getDefault() { + return plugin; + } + + public static String getPluginId() { + return PLUGIN_ID; + } + +}
diff --git a/1.5/plugins/org.eclipse.epf.diagram.model/src/org/eclipse/epf/diagram/model/util/DiagramModelPreference.java b/1.5/plugins/org.eclipse.epf.diagram.model/src/org/eclipse/epf/diagram/model/util/DiagramModelPreference.java new file mode 100644 index 0000000..1702291 --- /dev/null +++ b/1.5/plugins/org.eclipse.epf.diagram.model/src/org/eclipse/epf/diagram/model/util/DiagramModelPreference.java
@@ -0,0 +1,31 @@ +/******************************************************************************* +* Licensed Materials - Property of IBM +* (c) Copyright IBM Corporation 2007,2009. All Rights Reserved. +* +* Note to U.S. Government Users Restricted Rights: +* Use, duplication or disclosure restricted by GSA ADP Schedule +* Contract with IBM Corp. +*******************************************************************************/ + +package org.eclipse.epf.diagram.model.util; + +import org.eclipse.jface.preference.IPreferenceStore; + +public class DiagramModelPreference { + private static final String USE_STATE_ON_WORKPRODUCT = "Use_State_on_Workproduct"; //$NON-NLS-1$ + + private static IPreferenceStore prefStore = DiagramModelPlugin.getDefault().getPreferenceStore(); + + static { + prefStore.setDefault(USE_STATE_ON_WORKPRODUCT, false); + } + + public static void setUseStateOnWorkproduct(boolean enabled) { + prefStore.setValue(USE_STATE_ON_WORKPRODUCT, enabled); + } + + public static boolean getUseStateOnWorkproduct() { + return prefStore.getBoolean(USE_STATE_ON_WORKPRODUCT); + } + +}
diff --git a/1.5/plugins/org.eclipse.epf.publishing.ui/src/org/eclipse/epf/publishing/ui/preferences/ActivityDiagramPreferencePage.java b/1.5/plugins/org.eclipse.epf.publishing.ui/src/org/eclipse/epf/publishing/ui/preferences/ActivityDiagramPreferencePage.java index 2593362..fdaa03f 100644 --- a/1.5/plugins/org.eclipse.epf.publishing.ui/src/org/eclipse/epf/publishing/ui/preferences/ActivityDiagramPreferencePage.java +++ b/1.5/plugins/org.eclipse.epf.publishing.ui/src/org/eclipse/epf/publishing/ui/preferences/ActivityDiagramPreferencePage.java
@@ -14,6 +14,7 @@ import org.eclipse.epf.authoring.ui.AuthoringUIResources; import org.eclipse.epf.authoring.ui.preferences.AuthoringUIPreferences; import org.eclipse.epf.common.utils.StrUtil; +import org.eclipse.epf.diagram.model.util.DiagramModelPreference; import org.eclipse.epf.library.ui.LibraryUIPlugin; import org.eclipse.epf.library.ui.preferences.LibraryUIPreferences; import org.eclipse.epf.publishing.ui.PublishingUIPlugin; @@ -56,6 +57,8 @@ private Button ctrl_publish_ad_for_activity_extension; private Text tasksPerRowText; + + private Button ctrl_use_state_on_workproduct; public ActivityDiagramPreferencePage() { super(); @@ -87,6 +90,11 @@ createLabel(activityDetailDiagramGroup, AuthoringUIResources.add_TasksperRow); tasksPerRowText = createEditableText(activityDetailDiagramGroup, ""); //$NON-NLS-1$ + + ctrl_use_state_on_workproduct = createCheckbox( + activityDetailDiagramGroup, + AuthoringUIResources.use_state_on_workproduct_text, + 2); initializeValues(); @@ -142,6 +150,8 @@ LibraryUIPreferences .setPublishADForActivityExtension(ctrl_publish_ad_for_activity_extension .getSelection()); + + DiagramModelPreference.setUseStateOnWorkproduct(ctrl_use_state_on_workproduct.getSelection()); } private void initializeDefaults() { @@ -151,6 +161,8 @@ tasksPerRowText.setText(String.valueOf(AuthoringUIPreferences .getDefaultADDTasksPerRow())); + + ctrl_use_state_on_workproduct.setSelection(false); } /** @@ -165,6 +177,8 @@ tasksPerRowText.setText(String.valueOf(AuthoringUIPreferences .getADD_TasksPerRow())); + + ctrl_use_state_on_workproduct.setSelection(DiagramModelPreference.getUseStateOnWorkproduct()); } /*