Beispiel #1
0
        public static Mode GroupsBuilder(UltraExplorerBar exBar)
        {
            var startMode = new Mode();
            exBar.Groups.Clear();

            var modeGroup = new UltraExplorerBarGroup() {Text = "Modes"};
            var modes = DataHelper.GetModes();
            var modeCnt = 0;
            foreach (var mode in modes)
            {
                if(modeCnt++ == 0)
                {
                    startMode.ModeID = mode.ModeID;
                    startMode.ModeName = mode.ModeName;
                }
                var modeItem = modeGroup.Items.Add("M" + mode.ModeID.ToString(), mode.ModeName);
                modeItem.Tag = mode.ModeID;
            }
            exBar.Groups.Add(modeGroup);

            
            var stateGroup = new UltraExplorerBarGroup() {Text = "States"};
            var states = DataHelper.GetStates();
            foreach (var state in states)
            {
                var stateItem = stateGroup.Items.Add("S" + state.StateID.ToString(), state.StateName);
                stateItem.Tag = state.StateID;
            }
            exBar.Groups.Add(stateGroup);

            
            var eventGroup = new UltraExplorerBarGroup() {Text = "Events"};
            var events = DataHelper.GetEvents();
            foreach (var myEvent in events)
            {
                var eventItem = eventGroup.Items.Add("S" + myEvent.EventID.ToString(), myEvent.EventName);
                eventItem.Tag = myEvent.EventID;
            }
            exBar.Groups.Add(eventGroup);


            var functionGroup = new UltraExplorerBarGroup() { Text = "Functions" };
            var functionList = FSMFunctionLoader.GetFunctionList();
            var functions = DataHelper.GetFunctions(functionList);
            foreach (var function in functions)
            {
                var functionItem = functionGroup.Items.Add("S" + function.FunctionID.ToString(), function.FunctionName);
                functionItem.Tag = function.FunctionID;
            }
            exBar.Groups.Add(functionGroup);

            return startMode;
        }
Beispiel #2
0
        public frmFSMManager()
        {
            InitializeComponent();

            _viewMode = ExplorerHelper.GroupsBuilder(exbarGroups);

            exbarGroups.Groups.CollapseAll();

            if(_viewMode != null)
            {
                LoadTransitionGrid(_viewMode);
            }
        }
Beispiel #3
0
 private Transition DefaultTransition(Event myEvent, State state, Mode mode)
 {
     var transition = new Transition();
     transition.TranistionID = 0;
     transition.Event = myEvent;
     transition.Mode = mode;
     transition.State = state;
     transition.NextStateID = 0; // This will fail in the future
     transition.NextStateReturnMax = 0;
     transition.TransitionName = "Ignored";
     transition.Description = "This Event/State has no Transition defined";
     
     return transition;
 }
        public bool CheckModeAssociation(Mode mode, string groupName, int itemID)
        {
            var returnCode = false;

            switch (groupName)
            {
                case "States":
                    returnCode = CreateStateAssociation(mode, itemID);
                    break;

                case "Events":
                    returnCode = CreateEventAssociation(mode, itemID);
                    break;
            }

            return returnCode;
        }
        private bool CreateStateAssociation(Mode mode, int itemID)
        {
            var returnCode = false;

            var association = (from ModeState ms in _db.ModeStates
                               where ms.ModeID == mode.ModeID &&
                                     ms.StateID == itemID
                               select ms).FirstOrDefault();

            // If not found, then we create it
            if(association == null)
            {
                returnCode = true;
                association = new ModeState();
                association.ModeID = mode.ModeID;
                association.StateID = itemID;
                _db.ModeStates.AddObject(association);
                SaveChanges();
            }

            return returnCode;  
        }
Beispiel #6
0
        private static DataTable BuildTransitionTable(Mode mode)
        {
            var newTable = new DataTable("Transitions");
            var states = DataHelper.GetModeStates(mode.ModeID);

            var eventColumn = new DataColumn("Events", typeof(string));
            eventColumn.Caption = "EVENTS";
            newTable.Columns.Add(eventColumn);

            foreach (var state in states)
            {
                var column = new DataColumn(state.StateName, typeof (object));
                column.Caption = state.StateName;
                column.ExtendedProperties.Add("StateID", state.StateID);
                newTable.Columns.Add(column);
            }

            var events = DataHelper.GetModeEvents(mode.ModeID);
            foreach (var @event in events)
            {
                var row = newTable.Rows.Add();

                foreach (DataColumn column in newTable.Columns)
                {
                    if(column.ColumnName == "Events")
                    {
                        row[column] = @event.EventName;
                    }
                    else
                    {
                        row[column] = GetTransitionEntry(@event.EventID,int.Parse(column.ExtendedProperties["StateID"].ToString()), mode.ModeID);
                    }
                    
                }
            }

            return newTable;
        }
Beispiel #7
0
 // When an item is double clicked, it's associated editor is openned modally
 private void exbarGroups_ItemDoubleClick(object sender, Infragistics.Win.UltraWinExplorerBar.ItemEventArgs e)
 {
     if(e.Item.Group.Text == "Modes")
     {
         // This is mode change request
         if(e.Item.Text == _viewMode.ModeName)
         {
             return;
         }
         else
         {
             _viewMode = DataHelper.GetMode(e.Item.Text);
             LoadTransitionGrid(_viewMode);
         }
     }
     else   // This is request to add state or event to current mode
     {
         if(DataHelper.AddModeAssociation(_viewMode, e.Item.Group.Text, (int)e.Item.Tag))
         {
             LoadTransitionGrid(_viewMode);
         }
     }
 }
Beispiel #8
0
 public static void CreateMode(Mode item)
 {
     var data = dataAccess();
     data.CreateMode(item);
 }
 /// <summary>
 /// Create a new Mode object.
 /// </summary>
 /// <param name="modeID">Initial value of the ModeID property.</param>
 /// <param name="modeName">Initial value of the ModeName property.</param>
 /// <param name="defaultStateID">Initial value of the DefaultStateID property.</param>
 /// <param name="defaultEventID">Initial value of the DefaultEventID property.</param>
 public static Mode CreateMode(global::System.Int32 modeID, global::System.String modeName, global::System.Int32 defaultStateID, global::System.Int32 defaultEventID)
 {
     Mode mode = new Mode();
     mode.ModeID = modeID;
     mode.ModeName = modeName;
     mode.DefaultStateID = defaultStateID;
     mode.DefaultEventID = defaultEventID;
     return mode;
 }
 /// <summary>
 /// Deprecated Method for adding a new object to the Modes EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToModes(Mode mode)
 {
     base.AddObject("Modes", mode);
 }
Beispiel #11
0
        private void UpdateCreateRealObject(string groupName, object realItem)
        {
            _groupItem.Name = txtName.Text;
            _groupItem.Description = txtDescription.Text;
            _groupItem.Priority = (int) numPriority.Value;
            _groupItem.URI = txtURI.Text;

            if(_isAdd)
            {
                switch (groupName)
                {
                    case "Modes":
                        var mode = new Mode();
                        mode.ModeName = txtName.Text;
                        mode.Description = txtDescription.Text;
                        
                        DataHelper.CreateMode(mode);
                        _groupItem.ID = mode.ModeID;
                        break;

                    case "States":
                        var state = new State();
                        state.StateName = txtName.Text;
                        state.Description = txtDescription.Text;
                        DataHelper.CreateState(state);
                        _groupItem.ID = state.StateID;
                        break;

                    case "Events":
                        var myEvent = new Event();
                        myEvent.EventName = txtName.Text;
                        myEvent.Description = txtDescription.Text;
                        DataHelper.CreateEvent(myEvent);
                        _groupItem.ID = myEvent.EventID;
                        break;

                    case "Functions":
                        var function = new Function();
                        function.FunctionName = txtName.Text;
                        function.Description = txtDescription.Text;
                        function.FunctionURI = txtURI.Text;
                        DataHelper.CreateFunction(function);
                        _groupItem.ID = function.FunctionID;
                        break;

                }
            }
            else
            {
                // Is Update
                switch (groupName)
                {
                    case "Modes":
                        var mode = (Mode) realItem;
                        mode.ModeName = txtName.Text;
                        mode.Description = txtDescription.Text;
                        mode.Event = (Event)cboDefaultEvent.SelectedRow.ListObject;
                        mode.State = (State)cboDefaultState.SelectedRow.ListObject;
                        break;

                    case "States":
                        var state = (State) realItem;
                        state.StateName = txtName.Text;
                        state.Description = txtDescription.Text;
                        break;

                    case "Events":
                        var myEvent =(Event) realItem;
                        myEvent.EventName = txtName.Text;
                        myEvent.Description = txtDescription.Text;
                        myEvent.Priority = (int)numPriority.Value;
                        break;
                }
                DataHelper.SaveChanges();
            }
        }
Beispiel #12
0
 public void CreateMode(Mode mode)
 {
     _db.Modes.AddObject(mode);
     _db.SaveChanges();
 }
Beispiel #13
0
        private void cboModes_ValueChanged(object sender, EventArgs e)
        {
            IValueList vl = this.cboModes;
            if(vl.SelectedItemIndex >= 0)
            {
                var id = (int) vl.GetValue(vl.SelectedItemIndex);

                _currentMode = (from Mode m in _modes
                                where m.ModeID == id
                                select m).FirstOrDefault();

                InitializeFSMGrid(_currentMode);
            }
        }
Beispiel #14
0
        private void InitializeFSMGrid(Mode mode)
        {

            grdMachine.DataSource = TransitionTable.GetTransitionTable(mode);
            grdMachine.Text = "Mode = " + mode.ModeName;
        }
Beispiel #15
0
 private void LoadTransitionGrid(Mode mode)
 {
     grdTransitions.DataSource = TransitionTable.GetTransitionTable(mode);
     grdTransitions.Text = "Mode = " + mode.ModeName;
 }
Beispiel #16
0
 public static void DeleteMode(Mode mode)
 {
     var data = dataAccess();
     data.DeleteMode(mode);
 }
Beispiel #17
0
        public static bool AddModeAssociation(Mode mode, string groupName, int itemID)
        {
            
            var data = dataAccess();

            return data.CheckModeAssociation(mode, groupName, itemID);
        }
Beispiel #18
0
        public static DataTable GetTransitionTable(Mode mode)
        {
                _trasitionTable = BuildTransitionTable(mode);

            return _trasitionTable;
        }
Beispiel #19
0
 public void DeleteMode(Mode mode)
 {
     _db.Modes.DeleteObject(mode);
     _db.SaveChanges();
 }
Beispiel #20
0
        private void LoadModeCombos(Mode mode)
        {
            var events = DataHelper.GetModeEvents(mode.ModeID);
            var states = DataHelper.GetModeStates(mode.ModeID);
            cboDefaultEvent.DataSource = events;
            cboDefaultEvent.DisplayMember = "EventName";
            cboDefaultState.DataSource = states;
            cboDefaultState.DisplayMember = "StateName";
            if(mode.Event != null)
            {
                cboDefaultEvent.Text = mode.Event.EventName;
                cboDefaultState.Text = mode.State.StateName;
            }
            else
            {
                cboDefaultEvent.Text = "Select Event";
                cboDefaultState.Text = "Select State";
            }

        }