/// <summary> /// Obtains the previou workflow node and disposes the elemens on the screen /// </summary> /// <param name="current">An XmlNode rappresenting the current state</param> private void DoStepBack() { currentNode = workflowManager.PreviousNode(currentNode); StopLoader(); if (currentNode != null) { PrepareTransition(); Panel.Controls.Clear(); #region Rendering List <Control> controls = new List <Control>(); for (int i = 0; i < currentNode.Data.Length; i++) { controls.Add(currentNode.Data[i].Render(this.Bounds)); } //Controls disposition int offset = TopOffset; foreach (Control c in controls) { c.LostFocus += new EventHandler(OnLostFocus); c.Top = offset; offset += c.Height + controlDistance; this.Panel.Controls.Add(c); this.Controls.Add(this.Panel); } #endregion StartBackwardTransition(); } }
private void DoStep() { currentNode = workflowManager.NextNode(currentNode); StopLoader(); if (currentNode == null) { #region Filling Complete //result.Push(current.OuterXml); //Modify this part Panel.Controls.Clear(); Label l = new Label(); l.Width = 1000; StringBuilder message = new StringBuilder(); message.Insert(0, workflowManager.Result.OuterXml); l.Text = message.ToString(); l.Height = CFMeasureString.MeasureString(l, message.ToString(), l.ClientRectangle).Height; l.Location = new Point(30, 100); Panel.Controls.Add(l); Next.Text = "Send"; Back.Enabled = false; Back.Text = ""; Refresh(); #endregion return; } /* * if (currentNode != null) * if (!currentNode.Name.Equals(currentNode.Name)) * currentNode.GetType();//result.Push(current.OuterXml + " "); * else * { * notification.Text = "Error"; * notification.Visible = true; * return; * } */ PrepareTransition(); Panel.Controls.Clear(); #region Rendering List <Control> controls = new List <Control>(); for (int i = 0; i < currentNode.Data.Length; i++) { controls.Add(currentNode.Data[i].Render(this.Bounds)); } //Controls disposition int offset = TopOffset; foreach (Control c in controls) { c.LostFocus += new EventHandler(OnLostFocus); c.Top = offset; offset += c.Height + controlDistance; this.Panel.Controls.Add(c); this.Controls.Add(this.Panel); } #endregion if (currentNode != null) { StartForwardTransition(); } }