public static List <PetriTask> LoadAvailablePetriTaskList() { //var files = Directory.GetFiles(DefaultFolder(), "*.ptf", SearchOption.AllDirectories); var files = Directory.EnumerateFiles(DefaultFolder()).Where(file => file.ToLower().EndsWith("ptf") || file.ToLower().EndsWith("py")).ToList(); List <PetriTask> list = new List <PetriTask>(); foreach (var file in files) { PetriTask task = null; if (file.Contains("ptf")) { task = OpenPetriTask(file); } if (file.Contains("py")) { task = OpenPyton(file); } if (task != null) { list.Add(task); } } return(list); }
private void Open() { if (!checkSave()) { return; } OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Supported files|*.gcode; *.ptf|gcode file (*.gcode)|*.gcode|Petri Task File (*.ptf)|*.ptf"; if (openFileDialog.ShowDialog() != true) { return; } filePath = openFileDialog.FileName; if (System.IO.Path.GetExtension(filePath).Contains("ptf")) { var task = IOTools.Open <PetriTask>(filePath); Code = task.Code; Task = task; TaskPath = filePath; } else { var r = new GCodeReader(openFileDialog.FileName); Code = r.Code; } RowList = new ObservableCollection <IGCode>(); renderList(); if (PositionChanged != null) { PositionChanged(0); } viewer = new TrackViewer(Code); viewer.AddPoint += CodeAddPoint; viewer.RemovePoint += CodeRemovePoint; viewer.Show(); isChanged = true; UpdateObjSize(); }
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(); }
public void Add(PetriTask task, int columns, int rows) { if (task == null) { return; } if (columns < 0 || rows < 0) { return; } if (columns >= Grid.Columns || rows >= Grid.Columns) { return; } Tasks[columns, rows] = task; if (Changed != null) { Changed(true); } }
private void Save() { SaveDlg save = Task != null ? (new SaveDlg(Task)) : (new SaveDlg()); if (save.ShowDialog() != true) { return; } if (Task == null) { Task = new PetriTask(save.CodeName); } Task.Name = save.CodeName; Task.Description = save.Description; Task.Code = Code; if (TaskPath == null) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Petri Task File (*.ptf)|*.ptf"; if (saveFileDialog.ShowDialog() != true) { return; } TaskPath = saveFileDialog.FileName; } // var insideCode = GCodeTransforms.codeZnull(Task.Code); // insideCode = GCodeTransforms.codeShift(0.2,Task.Code); Task.Code = GCodeTransforms.codeShiftCenterTo(0, 0, Task.Code); IOTools.Save(TaskPath, Task); }
private static PetriTask OpenPetriTask(string file) { return(PetriTask.Load(file)); }
public SaveDlg(PetriTask task) : this() { cName.Text = task.Name; cDescription.Text = task.Description; }