Exemplo n.º 1
0
        private void m_WorkflowListview_GotFocus(object sender, RoutedEventArgs e)
        {
            //TODO Refactor to be DRY
            // update the SceneManager here
            Object o = m_WorkflowListview.SelectedItem;

            if (o != null)
            {
                if (o is WorkingStep)
                {
                    m_FailStatesListView.IsEnabled = true;
                    WorkingStep step = (WorkingStep)o;
                    //SceneManager.Instance.CurrentScene = step.AdaptiveScenes.FirstOrDefault().Scene;
                    if (m_ComboboxAdaptivityLevel.SelectedValue != null)
                    {
                        SceneManager.Instance.CurrentScene = step.getAdaptiveScene((int)m_ComboboxAdaptivityLevel.SelectedValue).Scene;
                        m_FailStatesListView.ItemsSource   = step.FailStates;
                    }
                }
            }
            else
            {
                m_FailStatesListView.IsEnabled   = false;
                m_FailStatesListView.ItemsSource = null;
            }
        }
Exemplo n.º 2
0
        private void MenuItem_EditScene(object sender, RoutedEventArgs e)
        {
            // update the EditWorkflowManager here
            Object o = m_WorkflowListview.SelectedItem;

            if (o != null)
            {
                if (o is WorkingStep)
                {
                    WorkingStep step  = (WorkingStep)o;
                    Scene.Scene scene = new Scene.Scene();
                    if (m_ComboboxAdaptivityLevel.SelectedValue != null)
                    {
                        scene = step.getAdaptiveScene((int)m_ComboboxAdaptivityLevel.SelectedValue).Scene;
                        foreach (SceneItem itemIter in scene.Items)
                        {
                            itemIter.Touchy = true;
                        }
                    }
                    SceneManager.Instance.CurrentScene = scene;
                    SceneEditorDialog dlg = new SceneEditorDialog(scene);
                    dlg.Show();
                }
            }
        }
Exemplo n.º 3
0
        private void m_ComboboxAdaptivityLevel_Selected(object sender, RoutedEventArgs e)
        {
            // update the SceneManager here
            Object o = m_WorkflowListview.SelectedItem;

            if (o != null)
            {
                if (o is WorkingStep)
                {
                    WorkingStep step = (WorkingStep)o;
                    //SceneManager.Instance.CurrentScene = step.AdaptiveScenes.FirstOrDefault().Scene;
                    SceneManager.Instance.CurrentScene = step.getAdaptiveScene((int)m_ComboboxAdaptivityLevel.SelectedValue).Scene;
                }
            }
        }
Exemplo n.º 4
0
        private void MenuItemPasteScene_Click(object sender, RoutedEventArgs e)
        {
            Object o = m_WorkflowListview.SelectedItem;

            if (o != null)
            {
                if (o is WorkingStep)
                {
                    WorkingStep step  = (WorkingStep)o;
                    Scene.Scene scene = Scene.Scene.GetFromClipboard();
                    if (m_ComboboxAdaptivityLevel.SelectedValue != null && scene is Scene.Scene)
                    {
                        step.getAdaptiveScene((int)m_ComboboxAdaptivityLevel.SelectedValue).Scene = scene;
                        SceneManager.Instance.CurrentScene = scene;
                    }
                }
            }
        }
Exemplo n.º 5
0
        private void MenuItemCopyScene_Click(object sender, RoutedEventArgs e)
        {
            Object o = m_WorkflowListview.SelectedItem;

            if (o != null)
            {
                if (o is WorkingStep)
                {
                    WorkingStep step  = (WorkingStep)o;
                    Scene.Scene scene = new Scene.Scene();
                    if (m_ComboboxAdaptivityLevel.SelectedValue != null)
                    {
                        scene = step.getAdaptiveScene((int)m_ComboboxAdaptivityLevel.SelectedValue).Scene;
                    }
                    scene.CopyToClipboard();
                }
            }
        }
Exemplo n.º 6
0
        private void LoadCurrentWorkingStep()
        {
            if (!AdminView.Instance.Dispatcher.CheckAccess())
            {
                AdminView.Instance.Dispatcher.Invoke(new LoadCurrentWorkingStepDelegate(LoadCurrentWorkingStep));
                return; // Important to leave the culprit thread
            }

            WorkingStep step = LoadedWorkflow.WorkingSteps.ElementAt(m_CurrentWorkingStepNumber);

            if (step.IsQSStep && m_QSMode == false)
            {
                m_QSMode = true;
                NotifyPropertyChanged("QSModeEnabled");
                WorkingStep stepIt = step;
                m_NumQS = 0;
                while (stepIt.IsQSStep)
                {
                    m_NumQS++;
                    stepIt = LoadedWorkflow.WorkingSteps.ElementAt(m_CurrentWorkingStepNumber + m_NumQS);
                }
                m_QSFullfilled = new bool[m_NumQS];
                Array.Clear(m_QSFullfilled, 0, m_QSFullfilled.Length);
            }

            if (m_QSMode && m_CurrentWorkingStepNumber < m_LoadedWorkflow.WorkingSteps.Count - 1)
            {
                LoadQSModeScene();
            }
            else
            {
                SceneManager.Instance.CurrentScene = step.getAdaptiveScene(m_adaptivityLevelId).Scene;
                BackendControl.Instance.refreshGUI();
            }

            if (m_CurrentWorkingStepTimeOut != null)
            {
                m_CurrentWorkingStepTimeOut.Dispose();
            }
            if (step.TimeOut > 0)
            {
                m_CurrentWorkingStepTimeOut = new WorkflowTimeTrigger(step.TimeOut);
                m_CurrentWorkingStepTimeOut.TimeOutTriggered += timeOutWorkstep;
            }

            if (m_CurrentWorkingStepExpectedDurationTimeOut != null)
            {
                m_CurrentWorkingStepExpectedDurationTimeOut.Dispose();
            }
            if (step.ExpectedDuration > 0)
            {
                m_CurrentWorkingStepExpectedDurationTimeOut = new WorkflowTimeTrigger(step.ExpectedDuration);
                m_CurrentWorkingStepExpectedDurationTimeOut.TimeOutTriggered += timeOutExpectedDuration;
            }

            //If EndCondition depends on other Table
            if (m_CurrentNetworkTableDependency != null)
            {
                m_CurrentNetworkTableDependency.Dispose();
            }
            //TODO: Change this when refactoring Endconditions altogether
            if (step.EndConditionObjectName.Length > 3 && step.EndConditionObjectName.Substring(0, 3) == "net")
            {
                var tableId = step.EndConditionObjectName.Substring(3).Split(':').First();
                m_CurrentNetworkTableDependency = new NetworkTableMonitor(tableId);
                m_CurrentNetworkTableDependency.PropertyChanged += checkNetworkEndConditionspublic;
            }
            else
            {
                m_CurrentNetworkTableDependency = null;
            }
        }