public virtual void SaveLayout(EngineNS.IO.XmlNode node, EngineNS.IO.XmlHolder holder)
        {
            if (this.WindowState == WindowState.Minimized)
            {
                return;
            }
            var screen = System.Windows.Forms.Screen.FromHandle(new System.Windows.Interop.WindowInteropHelper(this).Handle);

            node.AddAttrib("Type", this.GetType().Assembly.FullName + "|" + this.GetType().FullName);
            node.AddAttrib("WinState", this.WindowState.ToString());
            node.AddAttrib("LeftRate", ((float)(this.Left - screen.WorkingArea.Left) / (float)screen.WorkingArea.Width).ToString());
            node.AddAttrib("TopRate", ((float)(this.Top - screen.WorkingArea.Top) / (float)screen.WorkingArea.Height).ToString());
            node.AddAttrib("WidthRate", ((float)this.Width / (float)screen.WorkingArea.Width).ToString());
            node.AddAttrib("HeightRate", ((float)this.Height / (float)screen.WorkingArea.Height).ToString());

            for (int i = 0; i < System.Windows.Forms.Screen.AllScreens.Length; ++i)
            {
                if (screen.Equals(System.Windows.Forms.Screen.AllScreens[i]))
                {
                    node.AddAttrib("ScreenIndex", i.ToString());
                    break;
                }
            }

            var contentNode = node.AddNode("WinContent", "", holder);

            SaveElement(this.Content as FrameworkElement, contentNode, holder);
        }
Exemple #2
0
        private EngineNS.IO.XmlNode GetPlatform(string name, EngineNS.IO.XmlHolder xml)
        {
            var node = xml.RootNode.FindNode("Platform");

            if (node == null)
            {
                return(null);
            }
            return(node.FindNode(name));
        }
Exemple #3
0
        public override void Save(EngineNS.IO.XmlNode xmlNode, bool newGuid, EngineNS.IO.XmlHolder holder)
        {
            RefreshValueFromTemplateClass2PropertyInfoList();
            if (mCustomPropertyInfos.Count > 0)
            {
                var node = xmlNode.AddNode("DefaultParamValue", "", holder);
                foreach (var proInfo in mCustomPropertyInfos)
                {
                    if (!CodeGenerateSystem.Base.PropertyClassGenerator.IsPropertyInfoValid(proInfo))
                    {
                        continue;
                    }

                    var cNode = node.AddNode(proInfo.PropertyName, "", holder);
                    CSUtility.Support.IConfigurator.SaveValue(cNode, proInfo.PropertyType, proInfo.CurrentValue, holder);
                }
            }

            base.Save(xmlNode, newGuid, holder);
        }
Exemple #4
0
        public void SaveElement(EngineNS.IO.XmlNode node, EngineNS.IO.XmlHolder holder)
        {
            if (PluginObject != null)
            {
                var uiElement = PluginObject as System.Windows.FrameworkElement;
                if (uiElement == null)
                {
                    return;
                }

                node.AddAttrib("Type", uiElement.GetType().Assembly.FullName + "|" + uiElement.GetType().FullName);
                node.AddAttrib("GridRow", Grid.GetRow(uiElement).ToString());
                node.AddAttrib("GridColumn", Grid.GetColumn(uiElement).ToString());
                node.AddAttrib("HorizontalAlignment", uiElement.HorizontalAlignment.ToString());
                node.AddAttrib("VerticalAlignment", uiElement.VerticalAlignment.ToString());

                var atts = PluginObject.GetType().GetCustomAttributes(typeof(System.Runtime.InteropServices.GuidAttribute), false);
                if (atts.Length > 0)
                {
                    var guidAtt = (System.Runtime.InteropServices.GuidAttribute)atts[0];
                    node.AddAttrib("Id", guidAtt.Value);
                }
            }
        }
Exemple #5
0
 public void SaveElement(EngineNS.IO.XmlNode node, EngineNS.IO.XmlHolder holder)
 {
 }
Exemple #6
0
        public override void Save(EngineNS.IO.XmlNode xmlNode, bool newGuid, EngineNS.IO.XmlHolder holder)
        {
            StrParams = UnionNodeNameText;

            var listParam  = new List <string>();
            var listResult = new List <string>();
            var listIn     = new List <string>();
            var listOut    = new List <string>();

            foreach (var childNode in GetChildNodes())
            {
                foreach (var linkObj in childNode.LinkObjList.Values)
                {
                    var param = childNode.GetLinkObjParamInfo(linkObj);
                    if (childNode is MethodInvokeParameterUnionControl)
                    {
                        listParam.Add(param);
                    }
                    else if (childNode is MethodInvokeResultUnionControl)
                    {
                        listResult.Add(param);
                    }
                    else if (childNode is MethodInUnionControl)
                    {
                        listIn.Add(param);
                    }
                    else if (childNode is MethodOutUnionControl)
                    {
                        listOut.Add(param);
                    }
                    else
                    {
                        // 不可能
                    }
                }
            }

            StrParams += ";";
            foreach (var str in listParam)
            {
                StrParams += str + "/";
            }
            // 删除最后一个"/"
            if (listParam.Count != 0)
            {
                StrParams = StrParams.Remove(StrParams.Length - 1);
            }

            StrParams += "^";
            foreach (var str in listResult)
            {
                StrParams += str + "/";
            }
            // 删除最后一个"/"
            if (listResult.Count != 0)
            {
                StrParams = StrParams.Remove(StrParams.Length - 1);
            }

            StrParams += "^";
            foreach (var str in listIn)
            {
                StrParams += str + "/";
            }
            // 删除最后一个"/"
            if (listIn.Count != 0)
            {
                StrParams = StrParams.Remove(StrParams.Length - 1);
            }

            StrParams += "^";
            foreach (var str in listOut)
            {
                StrParams += str + "/";
            }
            // 删除最后一个"/"
            if (listOut.Count != 0)
            {
                StrParams = StrParams.Remove(StrParams.Length - 1);
            }

            var combinationNodes = xmlNode.AddNode("combinationNodes", "", holder);

            foreach (var node in PackageNodeList)
            {
                EngineNS.IO.XmlNode childXml = combinationNodes.AddNode(node.GetType().Name, node.GetType().FullName, holder);
                node.Save(childXml, newGuid, holder);
                node.SaveLinks(childXml, false, holder);
            }
            base.Save(xmlNode, newGuid, holder);
        }
        protected virtual void SaveElement(FrameworkElement element, EngineNS.IO.XmlNode node, EngineNS.IO.XmlHolder holder)
        {
            if (element == null)
            {
                return;
            }

            node.AddAttrib("Type", element.GetType().Assembly.FullName + "|" + element.GetType().FullName);
            node.AddAttrib("GridRow", Grid.GetRow(element).ToString());
            node.AddAttrib("GridColumn", Grid.GetColumn(element).ToString());
            node.AddAttrib("HorizontalAlignment", element.HorizontalAlignment.ToString());
            node.AddAttrib("VerticalAlignment", element.VerticalAlignment.ToString());

            if (element is Grid)
            {
                var grid = element as Grid;
                foreach (var column in grid.ColumnDefinitions)
                {
                    var columnDefNode = node.AddNode("ColumnDefinition", "", holder);
                    columnDefNode.AddAttrib("GridUnitType", column.Width.GridUnitType.ToString());
                    columnDefNode.AddAttrib("Value", column.Width.Value.ToString());
                }
                foreach (var row in grid.RowDefinitions)
                {
                    var rowDefNode = node.AddNode("RowDefinition", "", holder);
                    rowDefNode.AddAttrib("GridUnitType", row.Height.GridUnitType.ToString());
                    rowDefNode.AddAttrib("Value", row.Height.Value.ToString());
                }

                foreach (FrameworkElement child in grid.Children)
                {
                    var elementNode = node.AddNode("Element", "", holder);
                    SaveElement(child, elementNode, holder);
                }
            }
            else if (element is DockAbleContainerControl)
            {
                var dacCtrl     = element as DockAbleContainerControl;
                var elementNode = node.AddNode("Element", "", holder);
                SaveElement(dacCtrl.Content as FrameworkElement, elementNode, holder);
            }
            else if (element is DockAbleTabControl)
            {
                var dockAbleTabControl = element as DockAbleTabControl;
                //
                node.AddAttrib("SelectedIndex", dockAbleTabControl.SelectedIndex.ToString());

                foreach (FrameworkElement item in dockAbleTabControl.Items)
                {
                    var elementNode = node.AddNode("Element", "", holder);
                    SaveElement(item, elementNode, holder);
                }
            }
            else if (element is DockAbleTabItem)
            {
                var datItem = element as DockAbleTabItem;

                node.AddAttrib("Header", datItem.Header.ToString());

                var elementNode = node.AddNode("Element", "", holder);
                SaveElement(datItem.Content as FrameworkElement, elementNode, holder);
            }
            else if (element is IDockAbleControl)
            {
                var daCtrl = element as IDockAbleControl;
                node.AddAttrib("KeyValue", daCtrl.KeyValue);

                var elementNode = node.AddNode("Element", "", holder);
                daCtrl.SaveElement(elementNode, holder);
            }
            else if (element is GridSplitter)
            {
                //var gsp = element as GridSplitter;
                //var color = ((SolidColorBrush)(gsp.Background)).Color;
                //var str = color.A + "|" + color.R + "|" + color.G + "|" + color.B;
                //node.AddAttrib("Background", str);
            }
        }