예제 #1
0
        public Diagram(string inName, EnDiagramType inDiagType)
        {
            this._id = SingleNextIDs.Instance.NextID(EnIDTypes.itDiagram);

            //this._Sim = inSim;
            this.diagType = inDiagType;
            this.name     = inName;
            this._States  = new List <State>();
        }
예제 #2
0
        //public override string GetJSONExpanded(bool incBrackets, LookupLists lists, bool includeIDs = true)
        //{
        //  string retStr = "";
        //  if (incBrackets)
        //  {
        //    retStr = "{";
        //  }
        //  retStr = retStr + "\"Diagram\": {" + Environment.NewLine + base.GetJSON(false, lists,);
        //  retStr = retStr + "," + Environment.NewLine + "\"diagramType\": \"" + diagType.ToString() + "\"";
        //  retStr = retStr + "," + Environment.NewLine + "\"states\": [";

        //  StateSort sorter = new StateSort();
        //  _States.Sort(sorter);
        //  //foreach (State curSt in this._States)
        //  for (int i = 0; i < this._States.Count; ++i)
        //  {
        //    retStr = retStr + Environment.NewLine + this._States[i].GetJSON(true, lists);


        //    if (i < this._States.Count - 1)
        //    {
        //      retStr = retStr + "," + Environment.NewLine;
        //    }
        //  }

        //  retStr = retStr + "]" + Environment.NewLine;
        //  retStr = retStr + GetDerivedJSON(lists) + Environment.NewLine + "}";

        //  if (incBrackets)
        //  {
        //    retStr = retStr + Environment.NewLine + "}";
        //  }

        //  return retStr;
        //}

        public override bool DeserializeDerived(object obj, bool wrapped, EmraldModel lists, bool useGivenIDs)
        {
            dynamic dynObj = (dynamic)obj;

            if (wrapped)
            {
                if (dynObj.Diagram == null)
                {
                    return(false);
                }

                dynObj = ((dynamic)obj).Diagram;
            }

            if (!base.DeserializeDerived((object)dynObj, false, lists, useGivenIDs))
            {
                return(false);
            }

            var jsonDiagType = (EnDiagramType)Enum.Parse(typeof(EnDiagramType), (string)dynObj.diagramType, true);

            if (this.diagType == EnDiagramType.dtOther)
            {
                this.diagType = jsonDiagType;
            }

            if (this.diagType != jsonDiagType)
            {
                throw new Exception("Diagram types do not match, cannot change the type once an item is created!");
            }

            lists.allDiagrams.Add(this);

            //Done in LoadObjLinks()
            ////load the Event Items
            //if (dynObj.states != null)
            //{
            //  this._States.Clear();

            //  foreach (dynamic stateName in dynObj.states)
            //  {
            //    State curState = lists.allStates.FindByName(stateName);
            //    if (curState == null)
            //    {
            //      throw new Exception("Failed to find State - " + stateName);
            //    }

            //    this.AddState(curState);
            //  }
            //}

            processed = true;
            return(true);
        }
예제 #3
0
        public static Diagram CreateNewDiagram(EnDiagramType diagType)
        {
            switch (diagType)
            {
            case EnDiagramType.dtComponent: return(new CompDiagram());

            case EnDiagramType.dtOther: return(new Diagram());

            case EnDiagramType.dtPlant: return(new Diagram());

            case EnDiagramType.dtSystem: return(new SysDiagram());

            default: return(null);
            }
        }
예제 #4
0
 public EvalDiagram(string inName, EnDiagramType inDiagType)
     : base(inName, inDiagType)
 {
 }
예제 #5
0
        /// <summary>
        /// Create a component
        /// </summary>
        /// <param name="compStates">Value states for this component can only be in one at a time </param>
        /// <param name="onStates">Which states will be a one or true value for the state </param>

        public EvalDiagram(EnDiagramType inDiagType)
            : base("", inDiagType)
        {
        }