Esempio n. 1
0
        /// <summary>
        /// 영상저장장치 그래프를 위한 쓰레드
        /// </summary>
        private void ThreadDevice()
        {
            while (mg.CloseWindows == 0)
            {
                int errorCount = 0;
                lock (obj)
                {
                    foreach (Device d in mg.GetDeiviceList())
                    {
                        if (d.STATUS == Device.ERROR)
                        {
                            errorCount++;
                        }
                    }
                }

                SaveOp.SetVaule(errorCount, mg.CountDevice());
                Thread.Sleep(1000);
            }
        }
        public SaveManager(NodeEditorWindow w)
        {
            _window = w;

            _saveFSM = new StateMachine <SaveState>();

            var noGraph = new StateMachine <SaveState> .State(SaveState.NoGraph);

            var tempGraph = new StateMachine <SaveState> .State(SaveState.TempGraph);

            var savedGraph = new StateMachine <SaveState> .State(SaveState.SavedGraph);

            _saveFSM.AddState(noGraph);
            _saveFSM.AddState(tempGraph);
            _saveFSM.AddState(savedGraph);

            // Actions to take when starting out on a window with no graph.
            _saveFSM.AddTransition(noGraph, tempGraph, isNewRequested, createNewOnto_Window_WithTempOrEmpty);
            _saveFSM.AddTransition(noGraph, savedGraph, isLoadRequested, loadOnto_EmptyWindow);

            // Actions to take when the window has a temp graph.
            _saveFSM.AddTransition(tempGraph, tempGraph, isNewRequested, createNewOnto_Window_WithTempOrEmpty);
            _saveFSM.AddTransition(tempGraph, savedGraph, isSaveOrSaveAsRequested, saveTempAs);
            _saveFSM.AddTransition(tempGraph, savedGraph, isLoadRequested, loadOnto_Window_WithTempgraph);

            // Actions to take when the window has a valid graph (already saved).
            _saveFSM.AddTransition(savedGraph, savedGraph, isSaveRequested, save);
            _saveFSM.AddTransition(savedGraph, savedGraph, isSaveAsRequested, saveCloneAs);
            _saveFSM.AddTransition(savedGraph, savedGraph, isLoadRequested, loadOnto_Window_WithSavedgraph);
            _saveFSM.AddTransition(savedGraph, tempGraph, isNewRequested, createNewOnto_Window_WithSavedgraph);

            // Consume the save operation even after the transition is made.
            _saveFSM.OnStateChangedEvent += () => { _saveOp = SaveOp.None; };

            InitState();

            NodeConnection.OnConnectionCreated -= saveConnection;
            NodeConnection.OnConnectionCreated += saveConnection;
        }
Esempio n. 3
0
        public BonsaiSaveManager(BonsaiWindow w)
        {
            _window = w;

            _saveFSM = new StateMachine <SaveState>();

            var noTree = new StateMachine <SaveState> .State(SaveState.NoTree);

            var tempTree = new StateMachine <SaveState> .State(SaveState.TempTree);

            var savedTree = new StateMachine <SaveState> .State(SaveState.SavedTree);

            _saveFSM.AddState(noTree);
            _saveFSM.AddState(tempTree);
            _saveFSM.AddState(savedTree);

            // Actions to take when starting out on a window with no canvas.
            _saveFSM.AddTransition(noTree, tempTree, isNewRequested, createNewOnto_Window_WithTempOrEmpty);
            _saveFSM.AddTransition(noTree, savedTree, isLoadRequested, loadOnto_EmptyWindow);

            // Actions to take when the window has a temp canvas.
            _saveFSM.AddTransition(tempTree, tempTree, isNewRequested, createNewOnto_Window_WithTempOrEmpty);
            _saveFSM.AddTransition(tempTree, savedTree, isSaveAsRequested, saveTempAs);
            _saveFSM.AddTransition(tempTree, savedTree, isLoadRequested, loadOnto_Window_WithTempCanvas);

            // Actions to take when the window has a valid canvas (already saved).
            _saveFSM.AddTransition(savedTree, savedTree, isSaveRequested, save);
            _saveFSM.AddTransition(savedTree, savedTree, isSaveAsRequested, saveCloneAs);
            _saveFSM.AddTransition(savedTree, savedTree, isLoadRequested, loadOnto_Window_WithSavedCanvas);
            _saveFSM.AddTransition(savedTree, tempTree, isNewRequested, createNewOnto_Window_WithSavedCanvas);

            // Consume the save operation even after the transition is made.
            _saveFSM.OnStateChangedEvent += () => { _saveOp = SaveOp.None; };

            InitState();
        }
 internal void RequestSaveAs()
 {
     _saveOp = SaveOp.SaveAs; _saveFSM.Update();
 }
 internal void RequestLoad()
 {
     _saveOp = SaveOp.Load; _saveFSM.Update();
 }
 /*
  * These are the events that drive the save manager.
  * Whenever one of this is fired, the save operation is set
  * and the save FSM updated.
  * */
 internal void RequestNew()
 {
     _saveOp = SaveOp.New; _saveFSM.Update();
 }