// Not used by GME
 public void ObjectsInvokeEx(
     MgaProject Project,
     MgaObject currentobj,
     MgaObjects selectedobjs,
     int param)
 {
     throw new NotImplementedException();
 }
Exemple #2
0
        public void NullObjectAndInteractiveMode()
        {
            MgaProject project    = null;
            MgaFCO     currentObj = null;
            MgaFCOs    fcos       = null;

            MgaObject  obj  = null;
            MgaObjects objs = null;


            IMgaComponentEx interpreter = GetInterpreterByProgID(ProgID);

            Assert.Throws <ArgumentNullException>(() => { interpreter.Initialize(project); });
            Assert.Throws <NotImplementedException>(() => { interpreter.ObjectsInvokeEx(project, obj, objs, 128); });
            Assert.Throws <ArgumentNullException>(() => { interpreter.InvokeEx(project, currentObj, fcos, 128); });

            Assert.True(File.Exists(this.mgaFile), "Project file does not exist.");
            string ProjectConnStr = "MGA=" + Path.GetFullPath(this.mgaFile);

            project = new MgaProject();
            project.OpenEx(ProjectConnStr, "CyPhyML", null);
            try
            {
                // project is set, but fcos are not
                Assert.DoesNotThrow(() => { interpreter.Initialize(project); });
                Assert.Throws <ArgumentNullException>(() => { interpreter.InvokeEx(project, currentObj, fcos, 128); });

                // fcos are set
                fcos = (MgaFCOs)Activator.CreateInstance(Type.GetTypeFromProgID("Mga.MgaFCOs"));
                Assert.DoesNotThrow(() => { interpreter.InvokeEx(project, currentObj, fcos, 128); });
                Assert.True(interpreter.InteractiveMode == false, "Interactive is not set correctly. (128) silent mode");
                Assert.DoesNotThrow(() => { interpreter.InvokeEx(project, currentObj, fcos, 16); });
                Assert.True(interpreter.InteractiveMode == true, "Interactive is not set correctly. (16)");
            }
            finally
            {
                project.Close(true);
            }
        }
 // Not used by GME
 public void ObjectsInvokeEx(
         MgaProject Project,
         MgaObject currentobj,
         MgaObjects selectedobjs,
         int param)
 {
     throw new NotImplementedException();
 }
Exemple #4
0
        private static void VisitChildren(Statistics.Statistics stats, IMgaObject mgaObject, object subtree)
        {
            var tree = (Dictionary <string, object>)subtree;

            if (mgaObject is MgaFCO && (mgaObject as MgaFCO).ArcheType != null)
            {
                stats.Model.InheritanceTree[(new Guid(mgaObject.GetGuidDisp())).ToString("D")] =
                    (new Guid((mgaObject as MgaFCO).ArcheType.GetGuidDisp())).ToString("D");
            }
            else
            {
                stats.Model.InheritanceTree[(new Guid(mgaObject.GetGuidDisp())).ToString("D")] = GetGUIDFromInt(mgaObject.MetaBase.MetaRef);
            }

            if (mgaObject is MgaFCO)
            {
                var numAttr = (mgaObject as MgaFCO).Attributes.Count.ToString();
                int num     = 0;
                if (stats.Model.Attributes.TryGetValue(numAttr, out num))
                {
                    stats.Model.Attributes[numAttr] = num + 1;
                }
                else
                {
                    stats.Model.Attributes[numAttr] = 1;
                }
            }

            if (mgaObject.ObjType == GME.MGA.Meta.objtype_enum.OBJTYPE_FOLDER ||
                mgaObject.ObjType == GME.MGA.Meta.objtype_enum.OBJTYPE_MODEL)
            {
                MgaObjects children    = mgaObject.ChildObjects;
                int        numChildren = children.Count;
                int        number      = 0;
                if (stats.Model.Children.TryGetValue(numChildren.ToString(), out number))
                {
                    stats.Model.Children[numChildren.ToString()] = number + 1;
                }
                else
                {
                    stats.Model.Children[numChildren.ToString()] = 1;
                }

                foreach (MgaObject child in children)
                {
                    string id = new Guid(child.GetGuidDisp()).ToString("D");
                    tree[id] = new Dictionary <string, object>();
                    VisitChildren(stats, child, tree[id]);
                }
            }
            else
            {
                int number = 0;
                if (stats.Model.Children.TryGetValue("0", out number))
                {
                    stats.Model.Children["0"] = number + 1;
                }
                else
                {
                    stats.Model.Children["0"] = 1;
                }
            }

            switch (mgaObject.ObjType)
            {
            case objtype_enum.OBJTYPE_ATOM:
                stats.Model.NumberOfAtoms++;
                break;

            case objtype_enum.OBJTYPE_MODEL:
                stats.Model.NumberOfModels++;
                break;

            case objtype_enum.OBJTYPE_FOLDER:
                stats.Model.NumberOfFolders++;
                break;

            case objtype_enum.OBJTYPE_CONNECTION:
                stats.Model.NumberOfConnections++;
                break;

            case objtype_enum.OBJTYPE_REFERENCE:
                stats.Model.NumberOfReferences++;
                break;

            case objtype_enum.OBJTYPE_SET:
                stats.Model.NumberOfSets++;
                break;

            default:
                // TODO: ...
                break;
            }
        }