示例#1
0
 private void NewCommandHandler(object sender, ExecutedRoutedEventArgs e)
 {
     Save_Func();
     obj = new ObservableModelData();
     // this.DataContext = obj;
     Update_Items();
 }
示例#2
0
 public VM(IServices services)
 {
     md  = new ModelData(3, 3);
     omd = new ObservableModelData();
     omd.AddDefaults();
     chart         = new Chart();
     this.services = services;
     InitializeCommands();
 }
示例#3
0
 private void OpenCommandHandler(object sender, ExecutedRoutedEventArgs e)
 {
     Save_Func();
     Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog();
     if (ofd.ShowDialog() == true)
     {
         ObservableModelData.Load(ofd.FileName, ref obj);
         Update_Items();
     }
 }
示例#4
0
 private void New_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     try
     {
         DataContext = new ObservableModelData();
         InitializeComponent();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error");
     }
 }
示例#5
0
        public void SaveExecuteHandler(object obj)
        {
            string str = "";

            if (services.UIChooseSaveLoc(ref str))
            {
                if (ObservableModelData.Serialize(str, ref omd))
                {
                    omd.Changed = false;
                }
            }
        }
示例#6
0
 private void Save_Func()
 {
     Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog();
     if (obj.IfChanged)
     {
         var result = MessageBox.Show("Save changes?", "Message", MessageBoxButton.YesNo);
         if (result == MessageBoxResult.Yes)
         {
             if (sfd.ShowDialog() == true)
             {
                 ObservableModelData.Save(sfd.FileName, ref obj);
             }
         }
         else
         {
             MessageBox.Show("Data may be lost!", "Message");
         }
     }
 }
示例#7
0
        private void OpenExecuteHandler(object obj)
        {
            if (omd.Changed)
            {
                if (services.UISaveMessage())
                {
                    SaveExecuteHandler(obj);
                }
            }
            string str = "";

            if (services.UIChooseOpenLoc(ref str))
            {
                ObservableModelData tmp = new ObservableModelData();
                if (!ObservableModelData.Deserialize(str, ref tmp))
                {
                    services.UICustomMessage("Error", "Deserialization error occured");
                }
                else
                {
                    omd.TransitFrom(tmp);
                }
            }
        }
示例#8
0
        public ViewM(IUIServises uiServices)
        {
            this.uiServices = uiServices;

            drawCommand = new RelayCommand(_ => uiServices.CanDraw(), _ => ModelView.Draw(chart, uiServices.SelectedItems()));

            deleteCommand = new RelayCommand(_ => { foreach (ModelData model in uiServices.SelectedItems())
                                                    {
                                                        if (!ModelDataOb.Contains(model))
                                                        {
                                                            return(false);
                                                        }
                                                    }
                                                    return(true); },
                                             _ => { foreach (ModelData model in uiServices.SelectedItems())
                                                    {
                                                        ModelDataOb.Remove(model);
                                                    }
                                             }
                                             );

            saveCommand = new RelayCommand(_ => ModelDataOb.Change,
                                           _ => {
                string path = uiServices.SavePath();
                if (path != null)
                {
                    ModelDataOb.Change = false;
                    ObservableModelData.Save(new SerializeAdapter(File.Create(path)), ModelDataOb);
                }
            }
                                           );

            addCommand = new RelayCommand(_ => uiServices.CanAdd(),
                                          _ => ModelDataOb.Add(new ModelData(model.N, model.P))
                                          );

            newCommand = new RelayCommand(_ => true,
                                          _ => {
                if (ModelDataOb.Change && uiServices.WantToSave())
                {
                    saveCommand.Execute(null);
                }
                ModelDataOb.Clear();
                ModelDataOb.Change = false;
            }
                                          );

            openCommand = new RelayCommand(_ => true,
                                           _ => {
                if (ModelDataOb.Change && uiServices.WantToSave())
                {
                    saveCommand.Execute(null);
                }
                string path = uiServices.OpenPath();
                if (path != null)
                {
                    ObservableModelData sample = new ObservableModelData();
                    ObservableModelData.Load(new DeserializeAdapter(File.OpenRead(path)), ref sample);
                    ModelDataOb.copy(sample);
                }
            }
                                           );
        }
示例#9
0
 public MainWindow()
 {
     DataContext = new ObservableModelData();
     InitializeComponent();
     winFormsHost.Child = chart;
 }