/// <summary> /// 进行参数设置 /// </summary> /// <param name="cmi"></param> /// <param name="bac"></param> void _ParameterSettings(ContextMenuInfo cmi, XtnBaseActivity bac) { if (cmi.AssemblyQualifiedName.IsNullOrEmpty()) { return; } FrameworkElement ui = Wrapper.CreateControl <FrameworkElement>(cmi.AssemblyQualifiedName); ISelectors select = ui as ISelectors; if (null == select) { return; } select.IDesignFramework = this.IDesignFramework; select.CurrentContextMenuInfo = cmi; select.IActivity = bac as IActivity; select.ActivityName = bac.Name; select.EventControlName = this.EventControlName; select.EventName = this.EventName; select.ActivityType = bac.GetType().Name; select.AttributeInfo = this.AttributeInfo; select.CurrentSelectedSetEventControl = this.CurrentSelectedControl; //-->弹出窗体来 XtnChildWindow pcc = new XtnChildWindow(this.IDesignFramework, ui); pcc.Closed += pcc_Closed; pcc.SetTitle(string.Format("正在对【{0}】控件【{1}】事件参数进行设置...", this.CurrentSelectedControl.Name, this.EventName)); pcc.Show(); }
void mi_Click(object sender, RoutedEventArgs e) { _Cm.Visibility = System.Windows.Visibility.Collapsed; MenuItem mi = sender as MenuItem; if (null == mi) { return; } ContextMenuInfo cmi = mi.Tag as ContextMenuInfo; XtnBaseActivity bac = cmi.Source as XtnBaseActivity; switch (cmi.Type) { case ContextMenuType.Delete: RemoveActivity(bac); break; case ContextMenuType.ModifyContent: _ModifyActivityContent(cmi); break; case ContextMenuType.ParameterSettings: _ParameterSettings(cmi, bac); break; } }
void DisposeActivity(XtnBaseActivity act) { if (null == act) { return; } act.MouseRightButtonDown -= act_MouseRightButtonDown; act.Dispose(); }
void _ModifyActivityContent(ContextMenuInfo cmi) { _txtActivityContent.Tag = cmi; _txtActivityContent.Visibility = System.Windows.Visibility.Visible; XtnBaseActivity fe = cmi.Source as XtnBaseActivity; _txtActivityContent.Text = fe.LabelContent; Canvas.SetLeft(_txtActivityContent, Canvas.GetLeft(fe) + fe.Width); Canvas.SetTop(_txtActivityContent, Canvas.GetTop(fe)); }
void CreateActivity(XtnBaseActivity act) { act.MouseRightButtonDown += act_MouseRightButtonDown; Canvas.SetZIndex(act, 100); Canvas.SetLeft(act, 30); Canvas.SetTop(act, 30); DictControls.Add(act.Name, act); print.Children.Add(act); }
void _ModifyActivityContent(ContextMenuInfo cmi) { //Wrapper.ShowDialog("不能移动。"); _txtActivityContent.Tag = cmi; _txtActivityContent.Visibility = System.Windows.Visibility.Visible; XtnBaseActivity fe = cmi.Source as XtnBaseActivity; _txtActivityContent.Text = fe.LabelContent; //_txtActivityContent.Height = 30; //_txtActivityContent.Width = 120; Canvas.SetLeft(_txtActivityContent, Canvas.GetLeft(fe) + fe.Width); Canvas.SetTop(_txtActivityContent, Canvas.GetTop(fe)); Canvas.SetZIndex(_txtActivityContent, 1000); }
void DisposeActivity(XtnBaseActivity act) { if (null == act) { return; } act.DotMouseMove -= act_DotMouseMove; act.DotMouseLeftButtonUp -= act_DotMouseLeftButtonUp; act.DotMouseLeftButtonDown -= act_DotMouseLeftButtonDown; act.DotMouseEnter -= act_DotMouseEnter; act.DotMouseLeave -= act_DotMouseLeave; act.MouseLeftButtonDown -= act_MouseLeftButtonDown; act.MouseLeftButtonUp -= act_MouseLeftButtonUp; act.MouseMove -= act_MouseMove; act.MouseRightButtonDown -= act_MouseRightButtonDown; act.Dispose(); }
void btn_Click(object sender, RoutedEventArgs e) { Button btn = sender as Button; if (null == btn) { return; } ActivityConfig ac = btn.Tag as ActivityConfig; XtnBaseActivity act = Wrapper.CreateControl <XtnBaseActivity>(ac.AssemblyQualifiedName); if (null == act) { return; } act.Name = string.Format("Activity_{0}_{1}", ac.Name, ++Index); act.LabelContent = ac.Description; CreateActivity(act); }
void CreateActivity(XtnBaseActivity act) { act.DotMouseMove += act_DotMouseMove; act.DotMouseLeftButtonUp += act_DotMouseLeftButtonUp; act.DotMouseLeftButtonDown += act_DotMouseLeftButtonDown; act.DotMouseEnter += act_DotMouseEnter; act.DotMouseLeave += act_DotMouseLeave; act.MouseRightButtonDown += act_MouseRightButtonDown; act.MouseLeftButtonDown += act_MouseLeftButtonDown; act.MouseLeftButtonUp += act_MouseLeftButtonUp; act.MouseMove += act_MouseMove; Canvas.SetZIndex(act, 100); Canvas.SetLeft(act, 30); Canvas.SetTop(act, 30); DictControls.Add(act.Name, act); print.Children.Add(act); _CurrentUIElement = act; }
/// <summary> /// 删除行为控件 /// </summary> /// <param name="bac"></param> void RemoveActivity(XtnBaseActivity bac) { if (null == bac) { return; } List <IArrowLine> items = new List <IArrowLine>(); foreach (var v in bac.DictArrowCapPoint) { items.Add(v.Value); } foreach (var v in bac.DictArrowFootPoint) { items.Add(v.Value); } foreach (var v in items) { RemoveArrowLine(v); } DisposeActivity(bac); DictControls.Remove(bac.Name); this.print.Children.Remove(bac); //-->删除Activity时,同时删除页面设计时事件链里的连接 var elItem = this.IDesignFramework.GetCurrentXmlTemplate().EventLinkItem; var _eli = elItem.Where(p => p.ControlName.Equals(this.EventControlName) && p.EventName.Equals(this.EventName)).GetFirst <EventLinkInfo>(); if (null != _eli) { var _cai = _eli.Item.Where(p => p.ActivityName.Equals(bac.Name)).GetFirst <ControlActivityInfo>(); if (null != _cai) { _eli.Item.Remove(_cai); this.IDesignFramework.UpdateCurrentTemplate(); } } }
/// <summary> /// 导入数据 /// </summary> /// <param name="root"></param> void ImportWorkFlow(XElement root) { if (null == root) { return; } _OldWorkFlowStr = root.ToString(); btnClear_Click(null, null); this.print.Children.Add(_Cm); this.print.Children.Add(_txtActivityContent); var controls = root.Element("Controls"); Index = controls.GetAttributeValue("Index").ConvertTo <Int32>(); var activitys = controls.Elements("Activity"); var arrowlines = controls.Elements("ArrowLine"); foreach (var v in arrowlines) { ArrowLineInfo ali = v.ToModel <ArrowLineInfo>(); if (null == ali) { continue; } ArrowLine al = new ArrowLine(ali.StartPoint, ali.EndPoint); al.Name = ali.Name; al.LineGuid = ali.Guid; CreateArrowLine(al); } foreach (var v in activitys) { ActivityInfo ai = v.ToModel <ActivityInfo>(); if (null == ai) { continue; } var config = ParseActivityConfig.GetActivityConfig(ai.Type); if (null == config) { continue; } var ba = Wrapper.CreateControl <XtnBaseActivity>(config.AssemblyQualifiedName); ba.Name = ai.Name; ba.Height = ai.Height; ba.Width = ai.Width; ba.ActivityGUID = ai.Guid; ba.LabelContent = ai.Content.IsNullOrEmpty() ? config.Description : ai.Content; ba.CurrentLeftButtonDownPoint = ai.CurrentLeftButtonDownPoint; ba.CurrentEnterPoint = ai.CurrentEnterPoint; CreateActivity(ba); Canvas.SetTop(ba, ai.Top); Canvas.SetLeft(ba, ai.Left); } //-->规则 var rules = root.Element("Relationship"); var rulesControl = rules.Elements("Control"); foreach (var rule in rulesControl) { string _r_name = rule.GetAttributeValue("Name"); XtnBaseActivity iact = GetControlByName <XtnBaseActivity>(_r_name); if (null == iact) { continue; } var caps = rule.GetAttributeValue("Cap"); if (!caps.IsNullOrEmpty()) { var capArray = caps.Split('|'); foreach (var cap in capArray) { ArrowLine _al = GetControlByName <ArrowLine>(cap); if (null == _al) { continue; } _al.ArrowFootControl = iact; iact.DictArrowCapPoint.Add(_al.Name, _al); } } var foots = rule.GetAttributeValue("Foot"); if (!foots.IsNullOrEmpty()) { var footArray = foots.Split('|'); foreach (var foot in footArray) { ArrowLine _al = GetControlByName <ArrowLine>(foot); if (null == _al) { continue; } _al.ArrowCapControl = iact; iact.DictArrowFootPoint.Add(_al.CtrName, _al); } } } }
private void RemoveActivity(XtnBaseActivity bac) { Wrapper.ShowDialog("不能删除。"); }