private void RenderNextStepSelector() { WfControlNextStepCollection nextSteps = GetNextSteps(this.ActivityDescriptor); RenderNextSteps(nextSteps); RenderNextStepsInfo(nextSteps); }
private void RenderNextStepsInfo(WfControlNextStepCollection nextSteps) { if (Enabled) { WfMoveToControl.DoActionAfterRegisterContextConverter(() => Page.ClientScript.RegisterHiddenField( this.ClientID + "_data", JSONSerializerExecute.Serialize(nextSteps)) ); } }
private int FindDefaultSelectStep(WfControlNextStepCollection nextSteps) { int result = 0; for (int i = 0; i < nextSteps.Count; i++) { WfControlNextStep nextStep = nextSteps[i]; if (nextStep.TransitionDescriptor.DefaultSelect) { result = i; break; } } return(result); }
private void RenderNextSteps(WfControlNextStepCollection nextSteps) { HtmlGenericControl div = new HtmlGenericControl("div"); div.Style[HtmlTextWriterStyle.MarginBottom] = "5px"; Controls.Add(div); if (nextSteps.Count > 1) { int defaultStepIndex = FindDefaultSelectStep(nextSteps); for (int i = 0; i < nextSteps.Count; i++) { RenderOneRadio(nextSteps[i], i, defaultStepIndex, div); } } }
private void RecreateProcesses(WfControlNextStepCollection nextSteps, bool saveAndReload, bool isCurrent) { _Table.Rows.Clear(); if (saveAndReload) { WfSaveDataExecutor executor; if (isCurrent) { executor = new WfSaveDataExecutor(WfClientContext.Current.OriginalCurrentActivity, WfClientContext.Current.OriginalCurrentActivity); } else { executor = new WfSaveDataExecutor(OriginalActivity, OriginalActivity); } executor.AutoCommit = false; executor.SaveUserTasks = false; executor.Execute(); ReloadProcessContext(); } CreateProcessSteps(GetAllMainStreamActivities()); if (WfMoveToControl.Current != null) { if (nextSteps == null) { nextSteps = WfMoveToControl.Current.NextSteps; } WfMoveToControl.DoActionAfterRegisterContextConverter(() => AddControlToTemplate(_RootPanel, new LiteralControl( string.Format("<input type='hidden' id='adjustNextStepsHidden' name='adjustNextStepsHidden' value='{0}'/>", HttpUtility.HtmlAttributeEncode(JSONSerializerExecute.Serialize(nextSteps))) )) ); } }
internal static WfControlNextStepCollection GetNextSteps(IWfActivityDescriptor actDesp) { if (actDesp == null && WfClientContext.Current.OriginalActivity != null) { actDesp = WfClientContext.Current.CurrentActivity.Descriptor; } WfControlNextStepCollection result = null; if (actDesp != null) { result = new WfControlNextStepCollection(actDesp.ToTransitions.GetAllCanTransitTransitions(false)); } else { result = new WfControlNextStepCollection(); } return(result); }
private void ChangeTransitionButton_Click(object sender, EventArgs e) { try { WfControlNextStep nextStep = null; if (_EnabledNextStepSelectorControl != null) { nextStep = _EnabledNextStepSelectorControl.SelectedNextStep; if (nextStep != null) { IWfActivityDescriptor originalDesp = WfClientContext.Current.OriginalActivity.Descriptor; /* YDZ 2012/11/23 为了记录克隆前线的状态 * foreach (IWfTransitionDescriptor t in originalDesp.ToTransitions) * { * t.Properties.SetValue("DefineDefaultSelect", t.DefaultSelect); //记录改变值前的记录 * * t.DefaultSelect = false; * * t.DefaultSelect = t.Key == nextStep.TransitionDescriptor.Key; * * if (t.DefaultSelect) * { * if (t.AffectProcessReturnValue) * WfClientContext.Current.OriginalActivity.Descriptor.Process.DefaultReturnValue = t.AffectedProcessReturnValue; * } * } */ //originalDesp.ToTransitions.ForEach(t => t.DefaultSelect = false); originalDesp.ToTransitions.ForEach(t => { t.DefaultSelect = false; t.DefaultSelect = t.Key == nextStep.TransitionDescriptor.Key; if (t.DefaultSelect) { if (t.AffectProcessReturnValue) { WfClientContext.Current.OriginalActivity.Descriptor.Process.DefaultReturnValue = t.AffectedProcessReturnValue; } } }); } } WfControlNextStepCollection nextSteps = WfMoveToControl.Current.NextSteps; if (nextStep != null) { nextSteps = new WfControlNextStepCollection(); nextSteps.Add(nextStep); } WfMoveToControl.Current.OnProcessChanged(WfClientContext.Current.CurrentActivity.OpinionRootActivity.Process); WfClientContext.Current.CurrentActivity.OpinionRootActivity.Process.GenerateCandidatesFromResources(); RecreateProcesses(nextSteps, true, false); WfMoveToControl.Current.OnAfterProcessChanged(WfClientContext.Current.CurrentActivity.OpinionRootActivity.Process); } catch (System.Exception ex) { RegisterPostBackException(ex); } }
internal static WfControlNextStepCollection GetNextSteps(IWfActivityDescriptor actDesp) { if (actDesp == null && WfClientContext.Current.OriginalActivity != null) actDesp = WfClientContext.Current.CurrentActivity.Descriptor; WfControlNextStepCollection result = null; if (actDesp != null) result = new WfControlNextStepCollection(actDesp.ToTransitions.GetAllCanTransitTransitions(false)); else result = new WfControlNextStepCollection(); return result; }
private int FindDefaultSelectStep(WfControlNextStepCollection nextSteps) { int result = 0; for (int i = 0; i < nextSteps.Count; i++) { WfControlNextStep nextStep = nextSteps[i]; if (nextStep.TransitionDescriptor.DefaultSelect) { result = i; break; } } return result; }
private void RenderNextSteps(WfControlNextStepCollection nextSteps) { HtmlGenericControl div = new HtmlGenericControl("div"); div.Style[HtmlTextWriterStyle.MarginBottom] = "5px"; Controls.Add(div); if (nextSteps.Count > 1) { int defaultStepIndex = FindDefaultSelectStep(nextSteps); for (int i = 0; i < nextSteps.Count; i++) RenderOneRadio(nextSteps[i], i, defaultStepIndex, div); } }
private void RecreateProcesses(WfControlNextStepCollection nextSteps, bool saveAndReload, bool isCurrent) { _Table.Rows.Clear(); if (saveAndReload) { WfSaveDataExecutor executor; if (isCurrent) { executor = new WfSaveDataExecutor(WfClientContext.Current.OriginalCurrentActivity, WfClientContext.Current.OriginalCurrentActivity); } else { executor = new WfSaveDataExecutor(OriginalActivity, OriginalActivity); } executor.AutoCommit = false; executor.SaveUserTasks = false; executor.Execute(); ReloadProcessContext(); } CreateProcessSteps(GetAllMainStreamActivities()); if (WfMoveToControl.Current != null) { if (nextSteps == null) nextSteps = WfMoveToControl.Current.NextSteps; WfMoveToControl.DoActionAfterRegisterContextConverter(() => AddControlToTemplate(_RootPanel, new LiteralControl( string.Format("<input type='hidden' id='adjustNextStepsHidden' name='adjustNextStepsHidden' value='{0}'/>", HttpUtility.HtmlAttributeEncode(JSONSerializerExecute.Serialize(nextSteps))) )) ); } }
private void ChangeTransitionButton_Click(object sender, EventArgs e) { try { WfControlNextStep nextStep = null; if (_EnabledNextStepSelectorControl != null) { nextStep = _EnabledNextStepSelectorControl.SelectedNextStep; if (nextStep != null) { IWfActivityDescriptor originalDesp = WfClientContext.Current.OriginalActivity.Descriptor; /* YDZ 2012/11/23 为了记录克隆前线的状态 foreach (IWfTransitionDescriptor t in originalDesp.ToTransitions) { t.Properties.SetValue("DefineDefaultSelect", t.DefaultSelect); //记录改变值前的记录 t.DefaultSelect = false; t.DefaultSelect = t.Key == nextStep.TransitionDescriptor.Key; if (t.DefaultSelect) { if (t.AffectProcessReturnValue) WfClientContext.Current.OriginalActivity.Descriptor.Process.DefaultReturnValue = t.AffectedProcessReturnValue; } } */ //originalDesp.ToTransitions.ForEach(t => t.DefaultSelect = false); originalDesp.ToTransitions.ForEach(t => { t.DefaultSelect = false; t.DefaultSelect = t.Key == nextStep.TransitionDescriptor.Key; if (t.DefaultSelect) { if (t.AffectProcessReturnValue) WfClientContext.Current.OriginalActivity.Descriptor.Process.DefaultReturnValue = t.AffectedProcessReturnValue; } }); } } WfControlNextStepCollection nextSteps = WfMoveToControl.Current.NextSteps; if (nextStep != null) { nextSteps = new WfControlNextStepCollection(); nextSteps.Add(nextStep); } WfMoveToControl.Current.OnProcessChanged(WfClientContext.Current.CurrentActivity.OpinionRootActivity.Process); WfClientContext.Current.CurrentActivity.OpinionRootActivity.Process.GenerateCandidatesFromResources(); RecreateProcesses(nextSteps, true, false); WfMoveToControl.Current.OnAfterProcessChanged(WfClientContext.Current.CurrentActivity.OpinionRootActivity.Process); } catch (System.Exception ex) { RegisterPostBackException(ex); } }