예제 #1
0
        private void Save()
        {
            if (CurrentTask == null)
            {
                return;
            }
            if (CurrentTask.Path == null || CurrentTask.Path.Equals(""))
            {
                SaveAs();
                return;
            }
            CurrentTask.isChanged = false;

            PetriIO.SaveProject(CurrentTask.Path, CurrentTask);
            NotifyPropertyChanged("WinTitle");
        }
예제 #2
0
        private void Open()
        {
            if (!checkSave())
            {
                return;
            }

            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Petri Printer Project file (*.ppp)|*.ppp";
            if (openFileDialog.ShowDialog() != true)
            {
                return;
            }

            CurrentTask = PetriIO.OpenProject(openFileDialog.FileName);
        }
예제 #3
0
        private void Import()
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Multiselect = true;
            openFileDialog.Filter      = "PetriTask files (*.ptf)|*.ptf|Python script files (*.py)|*.py";
            if (!openFileDialog.ShowDialog().Value)
            {
                return;
            }

            foreach (var file in openFileDialog.FileNames)
            {
                PetriIO.CopyTaskFile(file);
            }
            LoadTasks();
        }
예제 #4
0
        private void LoadTasks()
        {
            var list = PetriIO.LoadAvailablePetriTaskList();

            var bw = new BackgroundWorker();

            bw.WorkerReportsProgress = true;
            bw.DoWork += (s, e) =>
            {
                int c = 1;
                bw.ReportProgress(0, "Working...");

                AvailableTaskList.Clear();
                foreach (var l in list)
                {
                    AvailableTaskList.Add(l);
                    bw.ReportProgress((int)(c * 1d / list.Count * 100), l.Name);
                    c++;
                }

                if (AvailableTaskList.Count > 0)
                {
                    SelectedTask = AvailableTaskList[0];
                }
                bw.ReportProgress(100, "Complete!");
                System.Threading.Thread.Sleep(1000);
            };

            bw.ProgressChanged += (s, e) =>
            {
                StateString = e.UserState.ToString();
                StateValue  = e.ProgressPercentage;
            };

            bw.RunWorkerCompleted += (s, e) =>
            {
                StateString = "";
                StateValue  = 0;

                CreateNew();
            };

            bw.RunWorkerAsync();
        }
예제 #5
0
        // private List<double?> GridMap;
        #endregion

        public MainViewModel()
        {
            CreateNewBtn           = new BasicVezerloBtn(() => CreateNew());
            OpenBtn                = new BasicVezerloBtn(() => Open());
            SaveBtn                = new BasicVezerloBtn(() => Save());
            SaveAsBtn              = new BasicVezerloBtn(() => SaveAs());
            ShowGridSettingsBtn    = new BasicVezerloBtn(() => ShowGridSettings());
            ImportBtn              = new BasicVezerloBtn(() => Import());
            LoadGridMapBtn         = new BasicVezerloBtn(() => LoadGridMap());
            ShowPrinterSettingsBtn = new BasicVezerloBtn(() => ShowPrinterSettings());
            showHelpBtn            = new BasicVezerloBtn(() => showHelp());
            showAboutBtn           = new BasicVezerloBtn(() => showAbout());
            AddBtn      = new BasicVezerloBtn(() => Add());
            RemoveBtn   = new BasicVezerloBtn(() => Remove());
            GenerateBtn = new BasicVezerloBtn(() => Generate());

            AvailableTaskList = new ObservableCollection <PetriTask>();

            CurrentGridConfig    = PetriIO.LoadDefaultGridConfig();
            CurrentPrinterConfig = PetriIO.LoadDefaultPrinterConfig();
            SelectedItems        = new List <PetriControl>();

            LoadTasks();
        }
예제 #6
0
 public void SaveAll()
 {
     PetriIO.SaveDefaultGridConfig(CurrentGridConfig);
     PetriIO.SaveDefaultPrinterConfig(CurrentPrinterConfig);
 }