public void SelectGardenEntry(GardenArea area) { string type = ""; if (area is Garden) { type = "garden"; } else if (area is Planting) { type = "planting"; } else { type = "method area"; } if (area != null) { AreaDeleteButton.Label = "Delete " + type + " '" + area.Name + "'"; ShowAreaSelectionInfo(area); } else { AreaDeleteButton.Label = "Delete"; ShowEmptyAreaSelectionInfo(); } }
protected virtual void SetValues(GardenArea area) { area.Name = this.NameEntry.Text; area.Description = this.DescrEntry.Text; area.SetCreated(CreatedDateBox.GetYear(), CreatedDateBox.GetMonth()); area.SetRemoved(RemovedDateBox.GetYear(), RemovedDateBox.GetMonth()); }
public void ShowAreaSelectionInfo(GardenArea area) { if (area == null) { ShowEmptyAreaSelectionInfo(); return; } AreaInfo.Buffer.Clear(); AreaInfo.AddEntry(area.Name, AreaInfo.tag_headline); AreaInfo.AddEntry(area.Description, AreaInfo.tag_italic); AreaInfo.AddEntry("Created: " + area.created.Month + "/" + area.created.Year); AreaInfo.AddEntry("Removed: " + area.removed.Month + "/" + area.removed.Year); AreaInfo.AddEntry($"Size: {area.AreaSize() / 10000f}m²"); if (area is Planting planting) { AreaInfo.AddEntry("Varieties:"); foreach (KeyValuePair <VarietyKeySeq, PlantingInfo> pair in planting.Varieties) { VarietyKeySeq seq = pair.Key; int count = pair.Value.Count; PlantVariety variety = GardenData.LoadedData.GetVariety(seq); Plant plant = GardenData.LoadedData.GetPlant(seq.FamilyKey, seq.PlantKey); AreaInfo.AddEntry(variety.Name + " (" + plant.Name + "): " + count); } } AreaInfo.ApplyTags(); }
protected override void SetValues(GardenArea area) { Planting planting = area as Planting; planting.Varieties = this.Varieties; //TODO change planting info here base.SetValues(area); }
protected void SetValuesForCreation(GardenArea area, List <Garden.GardenPoint> points) { area.Shape.AddPoints(points); area.Shape.FinishPoints(); area.SetCreated(CreatedDateBox.GetYear(), CreatedDateBox.GetMonth()); area.SetRemoved(RemovedDateBox.GetYear(), RemovedDateBox.GetMonth()); GardenData.unsaved = true; }
public void UndoSelection() { MainWindow win = MainWindow.GetInstance(); SelectedArea = null; win.PlantAddButton.Sensitive = false; win.AreaEditButton.Sensitive = false; Draw(); TooltipText = ""; win.ShowEmptyAreaSelectionInfo(); }
/// <summary> /// Checks if an area of the garden was selected by clicking the edge of that area. /// </summary> /// <returns><c>true</c>, if click selection was made, <c>false</c> otherwise.</returns> /// <param name="x">The x coordinate.</param> /// <param name="y">The y coordinate.</param> private bool CheckAreaClick(int x, int y) { GardenPoint clicked = new GardenPoint(x, y); int year = MainWindow.GetInstance().GetYear(); int month = MainWindow.GetInstance().GetMonth(); if (Garden.CheckDate(year, month)) { foreach (GardenArea area in Garden.MethodAreas.Values) { if (area.CheckDate(year, month) && area.ContainsPointOnEdge(clicked, XOffset(), YOffset(), Zoom)) { if (SelectedArea != null) { SelectedPoint = SelectedArea.GetPointInRange(clicked, 10, XOffset(), YOffset(), Zoom); } else { SelectedPoint = area.GetPointInRange(clicked, 10, XOffset(), YOffset(), Zoom); } SelectedArea = area; return(true); } } foreach (GardenArea area in Garden.Plantings.Values) { if (area.CheckDate(year, month) && area.ContainsPointOnEdge(clicked, XOffset(), YOffset(), Zoom)) { if (SelectedArea != null) { SelectedPoint = SelectedArea.GetPointInRange(clicked, 10, XOffset(), YOffset(), Zoom); } else { SelectedPoint = area.GetPointInRange(clicked, 10, XOffset(), YOffset(), Zoom); } SelectedArea = area; return(true); } } } if (Garden.ContainsPointOnEdge(clicked, XOffset(), YOffset(), Zoom)) { SelectedArea = Garden; SelectedPoint = Garden.GetPointInRange(clicked, 10, XOffset(), YOffset(), Zoom); return(true); } return(false); }
public static void ShowGardenAreaEditDialog(GardenArea area) { string title = "Edit method area '" + area.Name + "'"; if (area is Garden.Garden) { title = "Edit garden '" + area.Name + "'"; } else if (area is Planting) { title = "Edit planting '" + area.Name + "'"; } GardenAreaCreationDialog dialog = new GardenAreaCreationDialog(title); dialog.SetValuesForEdit(area); }
protected void SetValuesForEdit(GardenArea area) { CreateButton.Label = "Save"; NameEntry.Text = area.Name; DescrEntry.Text = area.Description; CreatedDateBox.SetDate(area.created); RemovedDateBox.SetDate(area.removed); CreateButton.Clicked += (object sender, System.EventArgs e) => { this.SetValues(area); GardenDrawingArea.ActiveInstance.MakeSelection(); GardenDrawingArea.ActiveInstance?.Draw(); MainWindow.GetInstance().ShowAreaSelectionInfo(area); this.Destroy(); GardenData.unsaved = true; }; }
public static GardenData TestData() { GardenData Data = new GardenData("testdata"); var zwiebelgewaechse = new PlantFamily("Zwiebelgewaechse", ""); Data.AddFamily("zwiebelgewaechse", zwiebelgewaechse); var knoblauch = new Plant("Knoblauch", ""); knoblauch.FeederType = FeederType.Medium; knoblauch.ScientificName = "allium sativum"; zwiebelgewaechse.AddPlant("knoblauch", knoblauch); var morado = new PlantVariety("Morado", "rotviolett, aus Spanien, geeignet für Herbstpflanzung, bildet Brutzwiebeln"); morado.SetColor(new Cairo.Color(0.9, 0.9, 0.9)); knoblauch.AddVariety("morado", morado); var vallelado = new PlantVariety("Vallelado", "bla"); vallelado.SetColor(new Cairo.Color(0.9, 0.9, 0.9)); knoblauch.AddVariety("vallelado", vallelado); var nachtschattengew = new PlantFamily("Nachtschattengewächse", ""); Data.AddFamily("nachtschattengewaechse", nachtschattengew); var kartoffeln = new Plant("Kartoffel", ""); kartoffeln.SetColor(new Cairo.Color(0.2, 0.8, 0.8)); nachtschattengew.AddPlant("kartoffel", kartoffeln); var bed1 = new Garden.Garden("Omas Garten", "Alte Garten von Oma", 2000, 1, 2000, 1); var bed2 = new Garden.Garden("Hauptstraßengarten", "Alte Garten von Oma", 2000, 1, 2000, 1); Data.AddGarden("oma_garten", bed1); Data.AddGarden("hptstr_garten", bed2); bed1.Shape.AddPoint(new GardenPoint(0, 0)); bed1.Shape.AddPoint(new GardenPoint(0, 200)); bed1.Shape.AddPoint(new GardenPoint(300, 200)); bed1.Shape.AddPoint(new GardenPoint(300, 0)); bed1.Shape.FinishPoints(); var compostArea = new GardenArea("Kompost", "hier wurde Kompost angewendet", 2000, 1, 2010, 6); compostArea.Shape.AddPoint(new GardenPoint(100, 100)); compostArea.Shape.AddPoint(new GardenPoint(300, 100)); compostArea.Shape.AddPoint(new GardenPoint(300, 200)); compostArea.Shape.AddPoint(new GardenPoint(100, 200)); compostArea.Shape.FinishPoints(); bed1.AddMethodArea("compost", compostArea); var plantingArea = new Planting("Planting", "hier wurde was gepflanzt", 2000, 1, 2010, 6); plantingArea.Shape.AddPoint(new GardenPoint(400, 400)); plantingArea.Shape.AddPoint(new GardenPoint(500, 400)); plantingArea.Shape.AddPoint(new GardenPoint(500, 500)); plantingArea.Shape.AddPoint(new GardenPoint(400, 500)); plantingArea.Shape.FinishPoints(); bed1.AddPlanting("planting", plantingArea); plantingArea.AddVariety(morado, new PlantingInfo() { Count = 3 }); plantingArea.AddVariety(vallelado, new PlantingInfo() { Count = 2 }); //string s = Newtonsoft.Json.JsonConvert.SerializeObject(Data, Newtonsoft.Json.Formatting.Indented); return(Data); }