public static void Load() { if (File.Exists(path)) { TextReader treader = new StreamReader(path); JsonReader reader = new JsonTextReader(treader); instance = JsonConvert.DeserializeObject<GardenPlannerSettings>(treader.ReadToEnd()); if (instance == null) instance = new GardenPlannerSettings(); reader.Close(); } }
public static void Main(string[] args) { //System.IO.StreamWriter streamWriter = new System.IO.StreamWriter("/tmp/gplanner.json"); //string ser = Newtonsoft.Json.JsonConvert.SerializeObject(translation); //System.Console.WriteLine(ser); //streamWriter.Write(ser); //streamWriter.Flush(); GardenPlannerSettings.Load(); Application.Init(); MainWindow win = MainWindow.GetInstance(); win.Show(); Application.Run(); }
public EditPlantingInfoWindow(PlantingInfo plantingInfo, System.Action <PlantingInfo> okAction) : base("Edit planting information") { GardenPlannerSettings settings = GardenPlannerSettings.GetSettings(); AddControlButton("cancel", () => { this.Destroy(); }); AddControlButton("ok", () => { plantingInfo.Count = numberPlantsSpinButton.ValueAsInt; plantingInfo.PlannedPlantingDate = plannedDateBox.GetDate(); plantingInfo.AlreadyPlanted = alreadyPlantedButton.Active; plantingInfo.PlantingDate = actualDateBox.GetDate(); this.Destroy(); okAction.Invoke(plantingInfo); }); numberPlantsSpinButton = new SpinButton(1, settings.MaxPlantingCount, 1); numberPlantsSpinButton.Value = plantingInfo.Count; AddLabeledEntry("Number of plants", numberPlantsSpinButton); plannedDateBox = new DateEntryBox("planned planting date", DateEntryType.MiddleMonthDateEntry); plannedDateBox.SetDate(plantingInfo.PlannedPlantingDate); AddEntry(plannedDateBox); alreadyPlantedButton = new CheckButton("already planted") { Active = plantingInfo.AlreadyPlanted }; alreadyPlantedButton.Clicked += (sender, e) => { actualDateBox.Sensitive = alreadyPlantedButton.Active; }; AddEntry(alreadyPlantedButton); actualDateBox = new DateEntryBox("planted on", DateEntryType.DayDateEntry) { Sensitive = alreadyPlantedButton.Active }; actualDateBox.SetDate(plantingInfo.PlantingDate); AddEntry(actualDateBox); }
public DateEntryBox(string label, DateEntryType dateEntryType = DateEntryType.MonthDateEntry) : base(label) { GardenPlannerSettings settings = GardenPlannerSettings.GetSettings(); VBox mainVBox = new VBox(); Label labelYear = new Label("Year"); spinButtonYear = new SpinButton(settings.MinYear, settings.MaxYear, 1); HBox hBoxYear = new HBox { labelYear, spinButtonYear }; mainVBox.Add(hBoxYear); Label labelDay = new Label("Day"); spinButtonDay = new SpinButton(1, 31, 1); HBox hBoxDay = new HBox { labelDay, spinButtonDay }; Label labelMonth = new Label("Month"); spinButtonMonth = new SpinButton(1, 12, 1); HBox hBoxMonth = new HBox { labelMonth, spinButtonMonth }; mainVBox.Add(hBoxMonth); radioMiddle = new RadioButton("middle"); radioBeginning = new RadioButton(radioMiddle, "beginning"); switch (dateEntryType) { case DateEntryType.MonthDateEntry: break; case DateEntryType.MiddleMonthDateEntry: Label labelMiddleMonth = new Label("Time of month"); HBox hBoxRadios = new HBox { radioMiddle, radioBeginning }; HBox hBoxMiddleMonth = new HBox { labelMiddleMonth, hBoxRadios }; mainVBox.Add(hBoxMiddleMonth); break; case DateEntryType.DayDateEntry: mainVBox.Add(hBoxDay); break; } this.Add(mainVBox); }
public MainWindowMenuBar() { GardenPlannerSettings settings = GardenPlannerSettings.GetSettings(); FileItem.Submenu = FileMenu; FileMenu.Add(MenuItemNew); FileMenu.Add(MenuItemLoad); FileMenu.Add(MenuItemSave); FileMenu.Add(MenuItemImportFamilies); FileMenu.Add(MenuItemClose); Append(FileItem); MenuItemClose.Activated += CloseAction; MenuItemNew.Activated += NewAction; MenuItemSave.Activated += SaveAction; MenuItemLoad.Activated += LoadAction; MenuItemImportFamilies.Activated += ImportFamiliesAction; SettingsItem.Submenu = SettingsMenu; SettingsMenu.Add(LanguageItem); LanguageItem.Submenu = LanguageMenu; RadioMenuItem group = null; bool init = true; foreach (KeyValuePair <string, Translation> pair in Translation.BuiltIn) { RadioMenuItem radioItem = group == null ? new RadioMenuItem(pair.Key) : new RadioMenuItem(group, pair.Key); group = radioItem; radioItem.Active = settings.Language.Equals(pair.Key); radioItem.Activated += (sender, e) => { if (init)//during program initialization this should not be executed { return; } settings.Language = pair.Key; Translation.GetTranslation(pair.Key); MainWindow.GetInstance().ResetForNewData(); }; LanguageMenu.Append(radioItem); } init = false; ShowAreaImagesItem.Active = settings.ShowAreaImages; ShowAreaImagesItem.Activated += (sender, e) => { settings.ShowAreaImages = ShowAreaImagesItem.Active; GardenDrawingArea.ActiveInstance?.Draw(); }; SettingsMenu.Append(ShowAreaImagesItem); ShowPlantNames.Active = settings.ShowPlantNames; ShowPlantNames.Activated += (sender, e) => { settings.ShowPlantNames = ShowPlantNames.Active; GardenDrawingArea.ActiveInstance?.Draw(); }; SettingsMenu.Append(ShowPlantNames); ShowVarietyNames.Active = settings.ShowVarietyNames; ShowVarietyNames.Activated += (sender, e) => { settings.ShowVarietyNames = ShowVarietyNames.Active; GardenDrawingArea.ActiveInstance?.Draw(); }; SettingsMenu.Append(ShowVarietyNames); Append(SettingsItem); ToolItem.Submenu = ToolMenu; ToolMenu.Add(ToolMenuShowCropRotation); Append(ToolItem); ToolMenuShowCropRotation.Activated += ViewMenuShowCropRotation_Activated; HelpItem.Submenu = HelpMenu; HelpMenu.Add(MenuItemAbout); Append(HelpItem); MenuItemAbout.Activated += ShowAboutDialog; f = new FileFilter(); f.AddPattern("*.gdata"); f.Name = "Garden data"; }