Пример #1
0
        public static bool SaveCustomMeta(Workspace ws) {
            string bbPath = ws.getBlackboardPath();
            XmlDocument bbfile = new XmlDocument();

            try {
                FileManagers.SaveResult result = FileManagers.FileManager.MakeWritable(bbPath, Resources.SaveFileWarning);

                if (FileManagers.SaveResult.Succeeded != result)
                { return false; }

                bbfile.RemoveAll();

                XmlDeclaration declaration = bbfile.CreateXmlDeclaration("1.0", "utf-8", null);
                bbfile.AppendChild(declaration);

                XmlElement meta = bbfile.CreateElement("meta");
                bbfile.AppendChild(meta);


                SaveCustomTypes(bbfile, meta);

                SaveCustomMembers(bbfile, meta);

                bbfile.Save(bbPath);

                ws.IsBlackboardDirty = false;

                return true;

            } catch (Exception ex) {
                bbfile.RemoveAll();

                string msgError = string.Format(Resources.SaveFileError, bbPath, ex.Message);
                MessageBox.Show(msgError, Resources.SaveError, MessageBoxButtons.OK);
            }

            return false;
        }
Пример #2
0
        public static void PreLoadCustomMeta(Workspace ws) {
            _agentsXMLNode = null;
            _typesXMLNode = null;

            string bbPath = ws.getBlackboardPath();

            if (string.IsNullOrEmpty(bbPath) || !File.Exists(bbPath))
            { return; }

            XmlDocument bbfile = new XmlDocument();

            try {
                FileStream fs = new FileStream(bbPath, FileMode.Open, FileAccess.Read, FileShare.Read);
                bbfile.Load(fs);
                fs.Close();

                XmlNode root = bbfile.ChildNodes[1];

                if (root.Name == "meta") {
                    foreach(XmlNode xmlNode in root.ChildNodes) {
                        if (xmlNode.Name == "agents") {
                            _agentsXMLNode = xmlNode;

                        } else if (xmlNode.Name == "types") {
                            _typesXMLNode = xmlNode;
                        }
                    }

                } else if (root.Name == "agents") {
                    _agentsXMLNode = root;
                }

            } catch (Exception e) {
                MessageBox.Show(e.Message, Resources.LoadError, MessageBoxButtons.OK);

                bbfile.RemoveAll();
            }
        }