protected ListBoxPart(SnipPageDesigner designer) : base(designer) { StyleType = StyleType.GeneralPageListPart; Init(); }
/// <summary> /// 获取设计器的预览框 /// </summary> //public WebBrowser WebBrowser //{ // get { return previewBrowser; } //} #endregion #region 构造函数与Form的初始化 /// <summary> /// 页面片设计器 /// </summary> public MdiSnipDesignerForm(string tmpltID, string snipID) { ///赋初值 /// _snipId = snipID; _tmpltID = tmpltID; InitializeComponent(); ///从所属的模板窗体里获取当前页面片的XmlElement。 _ownerTmpltForm = Service.Workbench.GetWorkDocumentById(tmpltID, WorkDocumentType.TmpltDesigner) as MdiTmpltDesignForm; if (_ownerTmpltForm == null) { Debug.Fail("此页面片对应的模板窗口不存在。"); return; } ///通过所属的模板窗口和传入的SnipID,获得SnipXmlElement SnipElement = _ownerTmpltForm.TmpltDoc.GetSnipElementById(_snipId); ///通过SnipXmlElement创建DesignerPanel(DesignerPanel构造函数将创建SnipPageDesigner) this._designerPanel = new DesignerPanel(_ownerTmpltForm.TmpltDoc.HasAutoKeyWordsSequenceType); this._designerPanel.BackColor = SoftwareOption.SnipDesigner.FormBackColor;// System.Drawing.Color.DarkGray; this._designerPanel.Dock = System.Windows.Forms.DockStyle.Fill; this._designerPanel.Location = new System.Drawing.Point(0, 0); this._designerPanel.Name = "workPanel"; this._designerPanel.Size = new System.Drawing.Size(747, 528); this._designerPanel.TabIndex = 0; this._designerPanel.Text = "designerPanel1"; this.SnipPageDesigner.MouseDoubleClick += new MouseEventHandler(SnipPageDesigner_MouseDoubleClick); this.SnipPageDesigner.SelectedPartsChanged += new EventHandler(SnipPageDesigner_SelectedPartsChanged); this.Controls.Add(this._designerPanel); ///导航栏的初始化 this.BottomNavigation = new NavigationStrip(); this.BottomNavigation.Dock = DockStyle.Bottom; this.BottomNavigation.NavigateTarget = this.SnipPageDesigner; this.Controls.Add(this.BottomNavigation); this.ShowIcon = true; this.Icon = Icon.FromHandle(ResourceService.GetResourceImage("tree.img.SnipPage2").GetHicon()); _timer.Interval = 100; _timer.Tick += new EventHandler(_timer_Tick); SnipPageDesigner.Load(SnipElement); Text = SnipPageDesigner.Text; SnipPageDesigner.DesignerReseted += new EventHandler(SnipPageDesigner_DesignerReseted); SnipPageDesigner.PartsLayouted += new EventHandler(SnipPageDesigner_PartsLayouted); this.SizeChanged += new EventHandler(MdiSnipDesignerForm_SizeChanged); // add by fenggy 2006-06-13 增加处理PART定位的函数 SdsiteXmlDocument.OrientationPart += new EventHandler <EventArgs <string[]> >(SdsiteXmlDocument_OrientationPart); // add by fenggy 2006-06-17 更改FORM的TEXT SdsiteXmlDocument.SnipDesignerFormTextChange += new EventHandler <EventArgs <string[]> >(SdsiteXmlDocument_SnipDesignerFormTextChange); }
public void AddExecClearSelectCommand(SnipPageDesigner designer) { ClearSelectCommand cmd = new ClearSelectCommand(designer); cmd.Execute(); AddCommand(cmd); }
public override bool Save() { ///得到Document里的相应页面片Element SnipXmlElement snipEleNew = _ownerTmpltForm.TmpltDoc.GetSnipElementById(SnipElement.Id); ///两个Element不是同一个对象,则更新 if (!object.ReferenceEquals(SnipElement, snipEleNew)) { SnipElement = snipEleNew; } //add by fenggy 2008-06-19 //Snip的NAME有能修改,如果该页面片增加时没有保存且修改了NAME,以后在保存,这样的话, //NAME 是保存不上的,所以在这里在将修改过的名字重新赋值给页面片 if (!string.IsNullOrEmpty(_newSnipName)) { this.SnipElement.SnipName = _newSnipName; } ///得到页面片保存的Element SnipPageDesigner.SaveToElement(this.SnipElement); SnipPageDesigner.IsModified = false; OnSaved(EventArgs.Empty); return(true); }
protected ListPart(SnipPageDesigner designer) : base(designer) { Width_Css = "100%"; SequenceType = SequenceType.None; ChannelIDs = new List <string>(); }
public AddChannelPartForm(bool isAddNewPart, SnipPageDesigner designer) { InitializeComponent(); SnipPageDesigner = designer; _isAddNewPart = isAddNewPart; Init(); }
public void AddExecClearPartCommand(SnipPageDesigner designer) { ClearPartCommand cmd = new ClearPartCommand(designer); cmd.Execute(); AddCommand(cmd); Designer.IsModified = true; }
public SetPropertyDesignerCommand(SnipPageDesigner designer, T oldValue, T newValue, SetPropertyCore <T> setCoreMethod, PartAction action) { this._designer = designer; this._oldValue = oldValue; this._newValue = newValue; this._setCoreMethod = setCoreMethod; this._action = action; }
public void AddExecSetPropertyDesignerCommand <T>(SnipPageDesigner designer, T oldValue, T newValue, SetPropertyCore <T> setCoreMethod, PartAction action) { SetPropertyDesignerCommand <T> cmd = new SetPropertyDesignerCommand <T>(designer, oldValue, newValue, setCoreMethod, action); cmd.Execute(); AddCommand(cmd); Designer.IsModified = true; }
/// <summary> /// add by fenggy 2006-06-13 处理PART的定位 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SdsiteXmlDocument_OrientationPart(object sender, EventArgs <string[]> e) { // //因为所有打开的页面片设计器都回相应该事件,所以只处理目标页面片!其他的过滤掉 if (this._snipId.Equals(e.Item[0].ToString())) //e.Item[0]页面片ID { SnipPagePart part = SnipPageDesigner.GetPartByID(e.Item[1].ToString()); //e.Item[1]欲定位PART 的ID if (part != null) { this.SnipPageDesigner.SelectPartAndCheck(part); } } }
public DesignerPanel(bool hasAutoKeyWordsSequenceType) { this.SuspendLayout(); ///初始化属性 Designer = new SnipPageDesigner(hasAutoKeyWordsSequenceType); ///创建并设置滚动条的相关属性 VScroll = new VScrollBar(); HScroll = new HScrollBar(); VScroll.Dock = DockStyle.Right; HScroll.Dock = DockStyle.Bottom; VScroll.Scroll += new ScrollEventHandler(VScroll_Scroll); HScroll.Scroll += new ScrollEventHandler(HScroll_Scroll); HScroll.ValueChanged += delegate { Designer.Location = new Point(HScroll.Value * -1, Designer.Location.Y); }; VScroll.ValueChanged += delegate { Designer.Location = new Point(Designer.Location.X, VScroll.Value * -1); }; ///控件大小改变,则重新计算Scroll的大小位置 EventHandler resetScrollHandler = new EventHandler( delegate { ResetScroll(); } ); HScroll.SizeChanged += resetScrollHandler; VScroll.SizeChanged += resetScrollHandler; Designer.SizeChanged += resetScrollHandler; this.Controls.Add(VScroll); this.Controls.Add(HScroll); this.Controls.Add(Designer); //Designer.Resize += new EventHandler(Designer_Resize); //Designer.SizeChanged += new EventHandler(Designer_SizeChanged); this.ResumeLayout(); }
void SnipPageDesigner_MouseDoubleClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left && Control.ModifierKeys != Keys.Control) { SnipPagePart part = SnipPageDesigner.GetPartAt(SnipPageDesigner.PointToClient(Control.MousePosition), true); if (part != null) { SnipPageDesigner.EditPart(part, false); // from:郑浩 计划改为 双击后 “编辑” 2008.03.03早 ////Point point = SnipPageDesigner.PointToClient(Control.MousePosition); ////if (part.HitTest(point)) ////{ //CssSetupForm form = new CssSetupForm(part.Css, CurType.Part); //if (form.ShowDialog() == DialogResult.OK) //{ // part.Css = form.CSSText; //} ////} } } }
protected SnipPagePart(SnipPageDesigner designer) { ResourcesReader.SetObjectResourcesHelper(this); _designer = designer; Text = ""; Padding = new System.Windows.Forms.Padding(0); Index = -1; HtmlTagName = "div"; FactLines = 2; _cssSection = new CssSection(); PartType = SnipPartType.Static; ChildParts = new SnipPagePartCollection(this); _classPartContainer = new ClassPartContainer(this); Random random = new Random(); //BackColor = System.Drawing.Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)); _cssSection.Properties["width"] = "100%"; _cssSection.Properties["height"] = "20px"; _cssSection.Properties["float"] = "left"; BoxIconXOffset = 0; BoxIconYOffset = -8; BoxIconSize = new Size(16, 16); }
public override void Undo() { SnipPageDesigner.Undo(); }
public override bool CanRedo() { return(SnipPageDesigner.CanRedo()); }
static public SnipPagePart Parse(SnipPartXmlElement ele, SnipPageDesigner designer) { SnipPartType type = ele.SnipPartType; SnipPagePart part = null; switch (type) { case SnipPartType.Static: { part = SnipPagePart.Create(designer, type); ((StaticPart)part).PageText = ele.CDataValue; break; } case SnipPartType.Box: { part = SnipPagePart.Create(designer, type); break; } case SnipPartType.List: { ListPart listPart = (ListPart)SnipPagePart.Create(designer, SnipPartType.List); part = listPart; break; } case SnipPartType.ListBox: { ListBoxPart listBoxPart = (ListBoxPart)SnipPagePart.Create(designer, SnipPartType.ListBox); listBoxPart.StyleType = ele.StyleType; part = listBoxPart; break; } case SnipPartType.Navigation: { NavigationPart nPart = (NavigationPart)SnipPagePart.Create(designer, SnipPartType.Navigation); nPart.ChannelID = ele.GetAttribute("channelId"); nPart.Text = ele.CDataValue; part = nPart; break; } case SnipPartType.Attribute: { AttributePart attributepart = (AttributePart)SnipPagePart.Create(designer, SnipPartType.Attribute); attributepart.AttributeName = ele.AttributeName; attributepart.Text = ele.CDataValue; part = attributepart; break; } case SnipPartType.Path: { PathPart pathPart = (PathPart)SnipPagePart.Create(designer, SnipPartType.Path); pathPart.LinkDisplayType = (DisplayType)Enum.Parse(typeof(DisplayType), ele.GetAttribute("linkDisplayType")); pathPart.SeparatorCode = ele.GetAttribute("separatorCode"); part = pathPart; break; } default: throw new Exception("开发期异常。未知的SnipPartType:" + type); } part.PartType = type; part.Css = ele.SnipPartCss; part.PartID = ele.SnipPartId; part.CustomID = ele.CustomId; part.AElement = ele.AElement; return(part); }
/// <summary> /// 简单工厂,创建不同SnipPartType的Part /// </summary> static public SnipPagePart Create(SnipPageDesigner designer, SnipPartType type) { SnipPagePart part; switch (type) { case SnipPartType.None: case SnipPartType.Static: { part = new StaticPart(designer); part.Title = StringParserService.Parse("${res:snipDesign.text.staticPartText}"); break; } case SnipPartType.Box: { part = new SnipPagePart(designer); part.Title = StringParserService.Parse("${res:snipDesign.text.box}"); break; } case SnipPartType.Navigation: { part = new NavigationPart(designer); part.Title = StringParserService.Parse("${res:snipDesign.text.navigationPartText}"); break; } case SnipPartType.List: { part = ListPart.Create(designer); part.Title = StringParserService.Parse("${res:snipDesign.text.listPartText}"); break; } case SnipPartType.ListBox: { part = ListBoxPart.Create(designer); part.Title = StringParserService.Parse("${res:snipDesign.text.listBoxPartText}"); break; } case SnipPartType.Attribute: { part = AttributePart.Create(designer); part.Title = StringParserService.Parse("${res:snipDesign.text.attributePartText}"); break; } case SnipPartType.Path: { part = new PathPart(designer); part.Title = StringParserService.Parse("${res:snipDesign.text.pathPartText}"); break; } default: throw new Exception("开发期异常。未知的SnipPartType:" + type); } part.PartID = XmlUtilService.CreateIncreaseId(); part.PartType = type; return(part); }
public PathPart(SnipPageDesigner designer) : base(designer) { LinkDisplayType = DisplayType.Default; SeparatorCode = ">>"; }
public ClearPartCommand(SnipPageDesigner designer) { _designer = designer; _partLists = _designer.ChildParts.ToArray(); }
public CommandManager(SnipPageDesigner designer) { _designer = designer; }
/// <summary> /// 创建ListBoxPart /// </summary> /// <param name="designer"></param> /// <returns></returns> static internal ListBoxPart Create(SnipPageDesigner designer) { return(new ListBoxPart(designer)); }
public StaticPart(SnipPageDesigner designer) : base(designer) { }
static internal AttributePart Create(SnipPageDesigner designer) { return(new AttributePart(designer)); }
void SnipPageDesigner_DesignerReseted(object sender, EventArgs e) { WorkbenchForm.MainForm.MainPreviewPad.DocumentText = SnipPageDesigner.ToHtmlPreview(); }
public SelectedSnipPagePartCollection(SnipPageDesigner designer) { Designer = designer; }
public override void Redo() { SnipPageDesigner.Redo(); }
public NavigationBoxPart(SnipPageDesigner designer) : base(designer) { }
private void GetParts(SnipPagePartCollection snipPagePartCollection, XmlElement partsEle, SnipPageDesigner designer) { XmlNodeList _nodes = partsEle.SelectNodes("part"); foreach (XmlNode node in _nodes) { SnipPartXmlElement partEle = (SnipPartXmlElement)node; SnipPagePart part = SnipPagePart.Parse(partEle, designer); snipPagePartCollection.Add(part); GetParts(part.ChildParts, partEle, designer); } }
private void SnipDesignerForm_Load(object sender, EventArgs e) { SnipPageDesigner.LayoutParts(); WorkbenchForm.MainForm.MainPreviewPad.DocumentText = SnipPageDesigner.ToHtmlPreview(); }
public ClearSelectCommand(SnipPageDesigner designer) { this._designer = designer; this._selectedParts = designer.SelectedParts.ToArray(); }