e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
116 lines
4.4 KiB
C#
116 lines
4.4 KiB
C#
namespace System.Workflow.Activities
|
|
{
|
|
#region Imports
|
|
|
|
using System;
|
|
using System.IO;
|
|
using System.Xml;
|
|
using System.Text;
|
|
using System.Drawing;
|
|
using System.Drawing.Drawing2D;
|
|
using System.Windows.Forms;
|
|
using System.Reflection;
|
|
using System.Collections;
|
|
using System.CodeDom;
|
|
using System.CodeDom.Compiler;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel.Design;
|
|
using System.Drawing.Design;
|
|
using System.Reflection.Emit;
|
|
using System.Workflow.ComponentModel;
|
|
using System.Workflow.ComponentModel.Design;
|
|
using System.Workflow.ComponentModel.Compiler;
|
|
using Microsoft.CSharp;
|
|
using System.Diagnostics;
|
|
using System.Collections.Generic;
|
|
|
|
#endregion
|
|
|
|
#region Class SequentialWorkflowDesigner
|
|
[ActivityDesignerTheme(typeof(SequentialWorkflowDesignerTheme))]
|
|
internal class SequentialWorkflowDesigner : SequentialWorkflowRootDesigner
|
|
{
|
|
#region Members, Constructor and Destructor
|
|
protected override void Initialize(Activity activity)
|
|
{
|
|
base.Initialize(activity);
|
|
|
|
HelpText = DR.GetString(DR.SequentialWorkflowHelpText);
|
|
Header.Text = DR.GetString(DR.StartSequentialWorkflow);
|
|
}
|
|
|
|
#endregion
|
|
|
|
//TBD: NOTE, there needs to be two way protocol, the roots must indicate
|
|
//what activities that they support and the activities must indicate
|
|
//what root they support. The latter, is missing right now.
|
|
//The following method just checks for the former.
|
|
protected override bool IsSupportedActivityType(Type activityType)
|
|
{
|
|
//we specifically, do not support state machine related activities.
|
|
if (typeof(SetStateActivity).IsAssignableFrom(activityType) ||
|
|
typeof(StateActivity).IsAssignableFrom(activityType) ||
|
|
typeof(StateInitializationActivity).IsAssignableFrom(activityType) ||
|
|
typeof(StateFinalizationActivity).IsAssignableFrom(activityType))
|
|
return false;
|
|
|
|
return base.IsSupportedActivityType(activityType);
|
|
}
|
|
|
|
#region MultiViewDesigner Support
|
|
protected override void OnViewChanged(DesignerView view)
|
|
{
|
|
base.OnViewChanged(view);
|
|
|
|
ActivityDesigner hostedDesigner = (ActiveView != null) ? ActiveView.AssociatedDesigner : null;
|
|
if (hostedDesigner.Activity is FaultHandlersActivity)
|
|
{
|
|
Header.Text = DR.GetString(DR.WorkflowExceptions);
|
|
HelpText = String.Empty;
|
|
}
|
|
else if (hostedDesigner.Activity is EventHandlersActivity)
|
|
{
|
|
Header.Text = DR.GetString(DR.WorkflowEvents);
|
|
HelpText = String.Empty;
|
|
}
|
|
else if (hostedDesigner.Activity is CompensationHandlerActivity)
|
|
{
|
|
Header.Text = DR.GetString(DR.WorkflowCompensation);
|
|
HelpText = String.Empty;
|
|
}
|
|
else if (hostedDesigner.Activity is CancellationHandlerActivity)
|
|
{
|
|
Header.Text = DR.GetString(DR.WorkflowCancellation);
|
|
HelpText = String.Empty;
|
|
}
|
|
else
|
|
{
|
|
Header.Text = DR.GetString(DR.StartSequentialWorkflow);
|
|
HelpText = DR.GetString(DR.SequentialWorkflowHelpText);
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
#endregion
|
|
|
|
#region SequentialWorkflowWithDataContextDesignerTheme
|
|
internal sealed class SequentialWorkflowDesignerTheme : CompositeDesignerTheme
|
|
{
|
|
public SequentialWorkflowDesignerTheme(WorkflowTheme theme)
|
|
: base(theme)
|
|
{
|
|
this.WatermarkImagePath = "System.Workflow.Activities.ActivityDesignerResources.SequentialWorkflowDesigner";
|
|
this.WatermarkAlignment = DesignerContentAlignment.BottomRight;
|
|
this.ShowDropShadow = true;
|
|
this.ConnectorStartCap = LineAnchor.None;
|
|
this.ConnectorEndCap = LineAnchor.ArrowAnchor;
|
|
this.ForeColor = Color.FromArgb(0xFF, 0x00, 0x00, 0x00);
|
|
this.BorderColor = Color.FromArgb(0xFF, 0x49, 0x77, 0xB4);
|
|
this.BorderStyle = DashStyle.Solid;
|
|
this.BackColorStart = Color.FromArgb(0x00, 0x00, 0x00, 0x00);
|
|
this.BackColorEnd = Color.FromArgb(0x00, 0x00, 0x00, 0x00);
|
|
}
|
|
}
|
|
#endregion
|
|
}
|