private DockWindow CreateDockWindow(RadDockComponentFactory componentFactory) { DockWindow dockWindow = null; if (this.Type == XmlDockable.DocumentPaneType) { dockWindow = componentFactory.CreateDocumentPane(); } else if (this.Type == XmlDockable.ToolPaneType) { dockWindow = componentFactory.CreateToolPane(); } else { DockState dockState = XmlDockable.ParseDockState(this.DockState); switch (dockState) { case Docking.DockState.TabbedDocument: dockWindow = componentFactory.CreateDocumentPane(); break; case Docking.DockState.Floating: case Docking.DockState.Docked: case Docking.DockState.AutoHide: case Docking.DockState.Hidden: default: dockWindow = componentFactory.CreateToolPane(); break; } } return(dockWindow); }
private RadSplitContainer CreateSplitContainer(RadDock dock, RadDockComponentFactory componentFactory) { bool bothChildrenAreDocumentTabStrips = this.Left.IsDocumentTabStrip() && this.Right.IsDocumentTabStrip(); if (bothChildrenAreDocumentTabStrips) { return(this.CreateMainDocumentContainer(dock, componentFactory)); } return(componentFactory.CreateSplitContainer()); }
private void DeserializeChildNode(XmlDockNode node, RadSplitContainer splitContainer, RadSplitContainer childSplitContainer, IList <SplitPanel> panelList, RadDockComponentFactory componentFactory, RadDock dock) { if (node != null) { RadSplitContainer container = (childSplitContainer != null) ? childSplitContainer : splitContainer; List <SplitPanel> splitPanels = node.DeserializeNode(dock, container, componentFactory); foreach (SplitPanel panel in splitPanels) { panelList.Add(panel); } } }
private DocumentContainer CreateMainDocumentContainer(RadDock dock, RadDockComponentFactory componentFactory) { if (XmlDockingManager.MainDocumentTabStripAdded) { return(null); } DocumentContainer documentContainer = componentFactory.CreateDocumentContainer(); dock.MainDocumentContainer = documentContainer; XmlDockingManager.MainDocumentTabStripAdded = true; return(documentContainer); }
public List <SplitPanel> Deserialize(RadDock dock, RadDockComponentFactory componentFactory) { MainDocumentTabStripAdded = false; NewDockWindowsDictionary = new Dictionary <Guid, DockWindow>(); OldContainers = new List <TabStripPanel>(); List <SplitPanel> list = new List <SplitPanel>(); if (dock == null) { return(list); } if (this.Sites != null) { int siteCount = this.Sites.Count; if (siteCount > 0) { XmlDockNode dockNode = this.Sites[0].RootNode; while (dockNode != null) { if (XmlDockNode.HasBothChildren(dockNode)) { dock.Orientation = XmlDockNode.GetReversedOrientation(dockNode); break; } dockNode = dockNode.Left; } } for (int i = 0; i < siteCount; i++) { list.AddRange(this.Sites[i].Deserialize(dock, componentFactory)); } } dock.SplitPanels.AddRange(list); this.ProcessNewDockWindowDictionary(dock); this.RemoveOldContainers(dock); return(list); }
public List <SplitPanel> Deserialize(RadDock dock, RadDockComponentFactory componentFactory) { List <SplitPanel> splitPanelList = this.RootNode.DeserializeNode(dock, dock, componentFactory); //TODO: take into account the floating position (if serialized in the XML) //if (FloatingLocation != null && site is DockSite) //{ // ((DockSite)site).Location = new Point(int.Parse(FloatingLocation.Split(';')[0]), int.Parse(FloatingLocation.Split(';')[1])); //} if (this.Visible != null) { bool visible = true; bool.TryParse(this.Visible, out visible); foreach (SplitPanel splitPanel in splitPanelList) { splitPanel.Collapsed = visible; } } return(splitPanelList); }
private TabStripPanel CreateDockableContainer(List <XmlDockable> dockables, RadDockComponentFactory componentFactory) { DockState?dockState = this.GetFirstDockableState(dockables); if (dockState == null) { return(null); } switch (dockState) { case DockState.TabbedDocument: return(componentFactory.CreateDocumentTabStrip());; case DockState.Floating: case DockState.Docked: case DockState.AutoHide: case DockState.Hidden: default: return(componentFactory.CreateToolTabStrip()); } }
private DockWindow GetDockWindow(RadDock dock, Guid guid, RadDockComponentFactory componentFactory) { DockWindow dockWindow = null; string name = dock.GuidToNameMappings.FindNameByGuid(guid); if (!string.IsNullOrEmpty(name)) { dockWindow = dock[name]; } if (dockWindow == null) { dockWindow = this.CreateDockWindow(componentFactory); XmlDockingManager.NewDockWindowsDictionary.Add(guid, dockWindow); } else { XmlDockingManager.OldContainers.Add(dockWindow.TabStrip); } return(dockWindow); }
public List <SplitPanel> DeserializeNode(RadDock dock, RadSplitContainer splitContainer, RadDockComponentFactory componentFactory) { List <SplitPanel> splitPanelList = new List <SplitPanel>(); TabStripPanel dockableContainer = this.CreateDockableContainer(this.Dockables, componentFactory); if (dockableContainer != null) { foreach (XmlDockable dockable in this.Dockables) { TabPanel panel = dockable.Deserialize(dock, splitContainer, componentFactory); dockableContainer.TabPanels.Add(panel); } this.ProcessDockableContainer(dockableContainer, dock, splitPanelList, componentFactory); } RadSplitContainer childSplitContainer = null; IList <SplitPanel> tempList = splitPanelList; if (XmlDockNode.HasBothChildren(this)) { Orientation orientation = XmlDockNode.GetReversedOrientation(this); if (orientation != splitContainer.Orientation) { childSplitContainer = this.CreateSplitContainer(dock, componentFactory); if (childSplitContainer != null) { childSplitContainer.Orientation = orientation; splitPanelList.Add(childSplitContainer); tempList = childSplitContainer.SplitPanels; } } } this.DeserializeChildNode(this.Left, splitContainer, childSplitContainer, tempList, componentFactory, dock); this.DeserializeChildNode(this.Right, splitContainer, childSplitContainer, tempList, componentFactory, dock); return(splitPanelList); }
private void ProcessDockableContainer(TabStripPanel dockableContainer, RadDock dock, List <SplitPanel> splitPanelList, RadDockComponentFactory componentFactory) { DocumentTabStrip documentTabStrip = dockableContainer as DocumentTabStrip; if (documentTabStrip == null) { splitPanelList.Add(dockableContainer); return; } DocumentContainer documentContainer = this.CreateMainDocumentContainer(dock, componentFactory); if (documentContainer != null) { splitPanelList.Add(documentContainer); } dock.MainDocumentContainer.SplitPanels.Add(documentTabStrip); }
public DockWindow Deserialize(RadDock dock, RadSplitContainer splitContainer, RadDockComponentFactory componentFactory) { Guid guid = new Guid(this.DockGuid); DockWindow dockWindow = this.GetDockWindow(dock, guid, componentFactory); if (dockWindow != null) { this.ApplyDockWindowSettings(dockWindow); if (dock != null) { dock.OnDockableDeserialized(new Telerik.WinControls.Interfaces.DockableDeserializedEventArgs( dockWindow, guid)); } } return(dockWindow); //(window as IToolWindowLayoutController).CaptionVisible = bool.Parse(CaptionVisible); //(window as IToolWindowLayoutController).TabStripVisible = bool.Parse(TabStripVisible); //(window as IToolWindowLayoutController).CloseButtonVisible = bool.Parse(CloseButtonVisible); //(window as IToolWindowLayoutController).HideButtonVisible = bool.Parse(HideButtonVisible); //(window as IToolWindowLayoutController).DropDownButtonVisible = bool.Parse(DropDownButtonVisible); //((ISupportDockingInternal)window).SetDockManager(manager); ////host.CreateComponent //window.PreferredFloatSize = new Size(int.Parse(this.PreferredFloatSize.Split(';')[0]), int.Parse(this.PreferredFloatSize.Split(';')[1])); //window.DockPosition = (DockPosition)Enum.Parse(typeof(DockPosition), DockPosition); }