Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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);
                }
            }
        }