public DevDesktop.Workspace.WorkspacePanelBase AddPanelToWorkspace(DevCore.Settings.SettingsNode panelNode) { DevDesktop.Workspace.WorkspaceLayoutGroup layoutGroup = default(DevDesktop.Workspace.WorkspaceLayoutGroup); DevDesktop.Workspace.WorkspacePanelBase layoutPanel = default(DevDesktop.Workspace.WorkspacePanelBase); DevDesktop.Workspace.WorkspacePalettePanel layoutPalette = default(DevDesktop.Workspace.WorkspacePalettePanel); DevCore.Settings.SettingsGuidValue paletteGuidValue = null; if (panelNode.Key.StartsWith("group:")) { // Create the layout group layoutGroup = new DevDesktop.Workspace.WorkspaceLayoutGroup(panelNode.GetIntegerValue("RelativeExtent", 100).Value); layoutGroup.IsTabbed = panelNode.GetBooleanValue("IsTabbed", false).Value; foreach (DevCore.Settings.SettingsNode groupPanelNode in panelNode.Nodes) { layoutPanel = this.AddPanelToWorkspace(groupPanelNode); if (layoutPanel != null) { layoutGroup.Panels.Add(layoutPanel); } } // Return the group return(layoutGroup); } else { if (panelNode.TryGetGuidValue("PaletteGuid", ref paletteGuidValue)) { layoutPalette = new DevDesktop.Workspace.WorkspacePalettePanel(panelNode.GetIntegerValue("RelativeExtent", 100).Value, paletteGuidValue.Value, panelNode.GetStringValue("GlobalName", string.Empty).Value); GetConfigurationFromSettings(panelNode).Copy(layoutPalette.PaletteConfiguration); return(layoutPalette); } else { return(null); } } }
public void AddWorkspaceLayoutPanel(DevDesktop.Workspace.WorkspacePanelBase panel, DevCore.Settings.SettingsNode parentNode, int parentPanelCount, ref int groupCounter) { DevDesktop.Workspace.WorkspacePalettePanel palettePanel = default(DevDesktop.Workspace.WorkspacePalettePanel); DevDesktop.Workspace.WorkspaceLayoutGroup layoutGroup = default(DevDesktop.Workspace.WorkspaceLayoutGroup); if (panel is DevDesktop.Workspace.WorkspaceLayoutGroup) { layoutGroup = (DevDesktop.Workspace.WorkspaceLayoutGroup)panel; groupCounter += 1; DevCore.Settings.SettingsNode groupNode = default(DevCore.Settings.SettingsNode); groupNode = parentNode.GetOrAddNode(string.Format("group:{0}", groupCounter)); groupNode.SetOrAddValue("IsTabbed", layoutGroup.IsTabbed); groupNode.SetOrAddValue("RelativeExtent", panel.InitialExtents.RelativeExtent); foreach (DevDesktop.Workspace.WorkspacePanelBase groupPanel in layoutGroup.Panels) { if (groupPanel is DevDesktop.Workspace.WorkspaceLayoutGroup) { this.AddWorkspaceLayoutPanel(groupPanel, groupNode, layoutGroup.Panels.Count, ref groupCounter); } else if (groupPanel is DevDesktop.Workspace.WorkspacePalettePanel) { palettePanel = (DevDesktop.Workspace.WorkspacePalettePanel)groupPanel; DevCore.Settings.SettingsNode panelNode = default(DevCore.Settings.SettingsNode); if (palettePanel.Index == 0) { panelNode = groupNode.GetOrAddNode("palette:canvas"); } else { panelNode = groupNode.GetOrAddNode(string.Format("palette:{0}", palettePanel.Index)); } WriteConfigurationToSettings(panelNode, palettePanel.PaletteConfiguration); panelNode.SetOrAddValue("PaletteGuid", palettePanel.PaletteGuid); if (palettePanel.HasGlobalName) { panelNode.SetOrAddValue("GlobalName", palettePanel.GlobalName); } if (layoutGroup.Panels.Count > 1) { panelNode.SetOrAddValue("RelativeExtent", groupPanel.InitialExtents.RelativeExtent); } } } } else if (panel is DevDesktop.Workspace.WorkspacePalettePanel) { palettePanel = (DevDesktop.Workspace.WorkspacePalettePanel)panel; DevCore.Settings.SettingsNode panelNode = default(DevCore.Settings.SettingsNode); if (((DevDesktop.Workspace.WorkspacePalettePanel)panel).Index == 0) { panelNode = parentNode.GetOrAddNode("palette:canvas"); } else { panelNode = parentNode.GetOrAddNode(string.Format("palette:{0}", palettePanel.Index)); } WriteConfigurationToSettings(panelNode, palettePanel.PaletteConfiguration); panelNode.SetOrAddValue("PaletteGuid", palettePanel.PaletteGuid); if (palettePanel.HasGlobalName) { panelNode.SetOrAddValue("GlobalName", palettePanel.GlobalName); } if (parentPanelCount > 1) { panelNode.SetOrAddValue("RelativeExtent", panel.InitialExtents.RelativeExtent); } } }