public FieldLocationScreen (Logg _logg, Action<FieldLocationScreen> callback) : base("FieldLocationScreen", null) { Title = "Posisjon"; _callback = callback; CurrentLogg = _logg; Latitude = CurrentLogg.Latitude; Longitude = CurrentLogg.Longitude; }
public FieldLocationScreen (Logg _logg, Action<FieldLocationScreen> callback) : base("FieldLocationScreen", null) { Title = Utils.Translate("position"); _callback = callback; CurrentLogg = _logg; Latitude = CurrentLogg.Latitude; Longitude = CurrentLogg.Longitude; }
public void Refresh() { logg = _tableSource.loggItem; JaktLoggApp.instance.SaveLoggItem(logg); _tableSource.loggItem = logg; if(logg.ID > 0){ Title = Utils.Translate("log"); NavigationItem.RightBarButtonItem = null; } TableView.ReloadData(); }
/*public void SaveArtItem(Art item){ var itemToUpdate = ArtList.Where(j=>j.ID == item.ID).FirstOrDefault(); if(itemToUpdate == null) { item.ID = ArtList.Count == 0 ? 1 : ArtList.Last().ID + 1; ArtList.Add(item); } else itemToUpdate = item; _repository.SaveArtList(ArtList); }*/ public void SaveLoggItem(Logg item){ LoggList = LoggList.OrderBy(o => o.ID).ToList<Logg>(); var itemToUpdate = LoggList.Where(j=>j.ID == item.ID).FirstOrDefault(); if(itemToUpdate == null) { item.ID = LoggList.Count == 0 ? 1 : LoggList.Last().ID + 1; LoggList.Add(item); } else itemToUpdate = item; _repository.SaveLoggList(LoggList); }
public HeaderLoggItem (Logg logg) : base("HeaderLoggItem", null) { _logg = logg; }
protected void AddLocation(Logg logg) { if(Filter != "") { if(Filter == "Treff" && logg.Treff == 0) return; if(Filter == "Bom" && (logg.Skudd == 0 || logg.Treff > 0)) return; if(Filter == "Obs" && (logg.Sett == 0 || logg.Skudd > 0 || logg.Treff > 0)) return; } var id = logg.ID; var lat = double.Parse(logg.Latitude); var lon = double.Parse(logg.Longitude); var title = logg.Dato.ToNorwegianDateString() + " kl." +logg.Dato.ToNorwegianTimeString(); var description = GetPinDescription(logg); var a = new MyAnnotation(new CLLocationCoordinate2D(lat,lon), title, description); a.CurrentLogg = logg; Pins.Add(id, a); mapView.AddAnnotation(a); }
private string GetPinDescription(Logg l){ var desc = ""; if(l.Skudd > 0) desc += l.Skudd + " skudd. " + l.Treff + " treff. "; if(l.Sett > 0) desc += l.Sett + " sett. "; if(l.ArtId > 0) desc += JaktLoggApp.instance.GetArt(l.ArtId).Navn + ". "; if(l.JegerId > 0) desc += "Av " + JaktLoggApp.instance.GetJeger(l.JegerId).Fornavn; return desc; }
public void DeleteLogg(Logg item) { DeleteFile(Utils.GetPath(item.ImagePath)); LoggList.Remove(item); _repository.SaveLoggList(LoggList); }
private string GenerateLoggItemHtml(Logg logg) { StringBuilder s = new StringBuilder(); s.Append("<tr>"); s.Append("<td>" + logg.Dato.ToNorwegianDateString()+" kl."+logg.Dato.ToNorwegianTimeString() + "</td>"); s.Append("<td>" + (logg.JegerId > 0 ? JaktLoggApp.instance.GetJeger(logg.JegerId).Fornavn : "") + "</td>"); s.Append("<td>" + (logg.ArtId == 0 ? "" : JaktLoggApp.instance.GetArt(logg.ArtId).Navn) + "</td>"); s.Append("<td>" + logg.Skudd + "</td>"); s.Append("<td>" + logg.Treff + "</td>"); s.Append("<td>" + logg.Sett + "</td>"); s.Append("<td>" + logg.Latitude + "</td>"); s.Append("<td>" + logg.Longitude + "</td>"); s.Append("<td>" + logg.Notes + "</td>"); foreach(var loggTypeId in JaktLoggApp.instance.SelectedLoggTypeIds) { var lt = JaktLoggApp.instance.LoggTypeList.Where(x => x.Key == loggTypeId).FirstOrDefault(); if(lt != null){ s.Append("<td>"+logg.GetType().GetProperty(lt.Key).GetValue(logg, null)+"</td>"); } } s.Append("</tr>"); //if(logg.ImagePath.Length > 0) //s.Append("<img style='padding:20px; border:ridge 10px #5272a7; -webkit-transform:rotate(7deg);width:200px' src='file://"+logg.ImagePath+"' />"); /*var mapstr = string.Format("http://maps.google.com/maps/api/staticmap?center={0},{1}&zoom=12&size=200x200&sensor=true&&markers=color:green%7Clabel:PONG%7C{0},{1}", logg.Latitude, logg.Longitude); s.Append("<img style='padding:10px;' src='"+mapstr+"' />");*/ return s.ToString(); }
public LoggItemScreen (Logg _logg, Action<LoggItemScreen> callback) : base("LoggItemScreen", null) { logg = _logg; _callback = callback; }
public LoggItemScreen (int jaktId, Action<LoggItemScreen> callback) : base("LoggItemScreen", null) { logg = new Logg(jaktId); _callback = callback; IsNewItem = true; }
public LoggItemTableSource(LoggItemScreen controller, Logg logg) { loggItem = logg; _controller = controller; //views CellDelete = new CellDeleteButton(HandleDeleteButtonTouchUpInside); NSBundle.MainBundle.LoadNib("CellDeleteButton", CellDelete, null); delcell = CellDelete.Cell; headerLoggItemView = new HeaderLoggItem(loggItem); headerLoggItemView.HandleButtonImageTouchUpInside = HandleButtonImageTouchUpInside; headerLoggItemView.HandleButtonDogTouchUpInside = HandleButtonDogTouchUpInside; headerLoggItemView.HandleButtonJegerTouchUpInside = HandleButtonJegerTouchUpInside; //Sections and cells var section1 = new SectionMapping("", ""); var section2 = new SectionMapping("", ""); var section3 = new SectionMapping("", ""); var sectionSlett = new SectionMapping("", ""); #region fields section1.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.results"), GetValue = () => { var lbl = ""; var art = JaktLoggApp.instance.GetArt(loggItem.ArtId); if(art != null) lbl = loggItem.Treff + " " + art.Navn + " / " + loggItem.Skudd + " " + Utils.Translate("shots"); else lbl = loggItem.Skudd + " "+ Utils.Translate("shots") +", " + loggItem.Treff + " "+ Utils.Translate("hits"); if(loggItem.Sett > 0) lbl += ", " + loggItem.Sett + " "+ Utils.Translate("seen") +" "; return lbl; }, RowSelected = () => { var fieldScreen = new FieldLoggCatch(Utils.Translate("log.header.results"), screen => { loggItem.ArtId = screen.CurrentArtId; loggItem.Treff = screen.CurrentHits; loggItem.Skudd = screen.CurrentShots; loggItem.Sett = screen.CurrentSeen; _controller.Refresh(); }); fieldScreen.CurrentArtId = loggItem.ArtId; fieldScreen.CurrentHits = loggItem.Treff; fieldScreen.CurrentShots = loggItem.Skudd; fieldScreen.CurrentSeen = loggItem.Sett; _controller.NavigationController.PushViewController(fieldScreen, true); }, ImageFile = "Images/Icons/target.png" }); section1.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.position"), GetValue = () => { return string.IsNullOrEmpty(loggItem.Latitude) ? "-" : Utils.Translate("log.viewinmap"); }, RowSelected = () => { var fieldScreen = new FieldLocationScreen(loggItem, screen => { loggItem.Latitude = screen.Latitude; loggItem.Longitude = screen.Longitude; _controller.Refresh(); }); fieldScreen.Latitude = loggItem.Latitude; fieldScreen.Longitude = loggItem.Longitude; _controller.NavigationController.PushViewController(fieldScreen, true); }, ImageFile = "Images/Icons/pin.png" }); /* * var jeger = new Jeger(); if(JaktLoggApp.instance.CurrentJakt.JegerIds.Count > 0) jeger = JaktLoggApp.instance.GetJeger(JaktLoggApp.instance.CurrentJakt.JegerIds[0]); * section1.Rows.Add(new RowItemMapping { Label = "Jeger", GetValue = () => { if(loggItem.JegerId == 0 && JaktLoggApp.instance.CurrentJakt.JegerIds.Count == 1){ loggItem.JegerId = jeger.ID; _controller.Refresh(); } else if(loggItem.JegerId == 0) return string.Empty; else jeger = JaktLoggApp.instance.GetJeger(loggItem.JegerId); return jeger.Navn; }, RowSelected = () => { ShowJegerView(); }, ImageFile = "Images/Icons/user.png" }); section1.Rows.Add(new RowItemMapping { Label = "Hund", GetValue = () => { if(loggItem.DogId == 0) return string.Empty; return JaktLoggApp.instance.GetDog(loggItem.DogId).Navn; }, RowSelected = () => { ShowDogView(); }, ImageFile = "Images/Icons/Tabs/dog-paw.png" }); */ section2.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.time"), GetValue = () => { return loggItem.Dato.ToLocalDateAndYearString(); }, RowSelected = () => { var fieldScreen = new FieldDatePickerScreen(screen => { loggItem.Dato = screen.Date; _controller.Refresh(); }); fieldScreen.Date = new DateTime(JaktLoggApp.instance.CurrentJakt.DatoFra.Year, loggItem.Dato.Month, loggItem.Dato.Day, loggItem.Dato.Hour, loggItem.Dato.Minute, loggItem.Dato.Second); fieldScreen.Mode = UIDatePickerMode.DateAndTime; fieldScreen.Title = Utils.Translate("log.header.time"); _controller.NavigationController.PushViewController(fieldScreen, true); }, ImageFile = "Images/Icons/calendar.png" }); section2.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.notes"), GetValue = () => { return loggItem.Notes; }, RowSelected = () => { var fieldScreen = new FieldNotesScreen(Utils.Translate("log.header.notes"), screen => { loggItem.Notes = screen.Value; _controller.Refresh(); }); fieldScreen.Value = loggItem.Notes; _controller.NavigationController.PushViewController(fieldScreen, true); }, ImageFile = "Images/Icons/notepad.png" }); /* section2.Rows.Add(new RowItemMapping { Label = "Bilde", GetValue = () => { return loggItem != null && loggItem.ImagePath.Length > 0 ? "Vis / endre" : "Legg til"; }, RowSelected = () => { ShowImageView(); }, ImageFile = "Images/Icons/camera.png" }); */ /*section3.Rows.Add(new RowItemMapping { Label = "Værforhold", GetValue = () => { return loggItem.Weather; }, RowSelected = () => { var options = new List<SingleSelectRowItem>(); options.Add(new SingleSelectRowItem(){ Key = "Sol", TextLabel = "Soll" }); options.Add(new SingleSelectRowItem(){ Key = "Overskyet", TextLabel = "Overskyet" }); options.Add(new SingleSelectRowItem(){ Key = "Regn", TextLabel = "Regn" }); var fieldScreen = new FieldSingleChoiceListScreen("Værforhold", options, screen => { loggItem.Weather = screen.SelectedKey; _controller.Refresh(); }); _controller.NavigationController.PushViewController(fieldScreen, true); } });*/ foreach(var selectedLoggTypeId in JaktLoggApp.instance.SelectedLoggTypeIds) { var item = JaktLoggApp.instance.LoggTypeList.SingleOrDefault(i => i.Key == selectedLoggTypeId); if(item == null) continue; switch(item.Key){ case "Weather": section3.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.weather"), GetValue = () => { return loggItem.Weather; }, RowSelected = () => { var fieldScreen = new FieldStringScreen(Utils.Translate("log.header.weather"), screen => { loggItem.Weather = screen.Value; _controller.Refresh(); }); fieldScreen.Placeholder = Utils.Translate("log.header.weather"); fieldScreen.Value = loggItem.Weather; //autosuggest: var autoitems = (from x in JaktLoggApp.instance.LoggList where x.Weather != string.Empty select x.Weather.ToUpper()).Distinct(); var autosuggests = new List<ItemCount>(); foreach(var autoitem in autoitems){ autosuggests.Add(new ItemCount{ Name = autoitem, Count = JaktLoggApp.instance.LoggList.Where(y => y.Weather.ToUpper() == autoitem).Count() }); } fieldScreen.AutoSuggestions = autosuggests.OrderByDescending( o => o.Count ).Take(15).ToList(); _controller.NavigationController.PushViewController(fieldScreen, true); } }); break; case "Gender": section3.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.gender"), GetValue = () => { return loggItem.Gender; }, RowSelected = () => { var options = new List<SingleSelectRowItem>(); options.Add(new SingleSelectRowItem(){ Key = Utils.Translate("log.gender.male"), TextLabel = Utils.Translate("log.gender.male") }); options.Add(new SingleSelectRowItem(){ Key = Utils.Translate("log.gender.female"), TextLabel = Utils.Translate("log.gender.female") }); var fieldScreen = new FieldSingleChoiceListScreen(Utils.Translate("log.header.gender"), options, screen => { loggItem.Gender = screen.SelectedKey; _controller.Refresh(); }); fieldScreen.SelectedKey = loggItem.Gender; _controller.NavigationController.PushViewController(fieldScreen, true); } }); break; case "Tags": section3.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.tags"), GetValue = () => { return loggItem.Tags == 0 ? "" : loggItem.Tags.ToString(); }, RowSelected = () => { var fieldScreen = new FieldNumberPickerScreen(screen => { loggItem.Tags = Int32.Parse(screen.Value); _controller.Refresh(); }); fieldScreen.Value = loggItem.Tags.ToString(); fieldScreen.Title = Utils.Translate("log.header.tags"); fieldScreen.LabelExtension = " " + Utils.Translate("log.tags"); _controller.NavigationController.PushViewController(fieldScreen, true); } }); break; case "Age": section3.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.largeage"), GetValue = () => { return loggItem.Age; }, RowSelected = () => { var options = new List<SingleSelectRowItem>(); options.Add(new SingleSelectRowItem(){ Key = Utils.Translate("log.kalv.name"), TextLabel = Utils.Translate("log.kalv.name") }); options.Add(new SingleSelectRowItem(){ Key = Utils.Translate("log.kalv.age1"), TextLabel = Utils.Translate("log.kalv.age1") }); options.Add(new SingleSelectRowItem(){ Key = Utils.Translate("log.kalv.age2"), TextLabel = Utils.Translate("log.kalv.age2") }); var fieldScreen = new FieldSingleChoiceListScreen(Utils.Translate("log.header.largeage"), options, screen => { loggItem.Age = screen.SelectedKey; _controller.Refresh(); }); fieldScreen.SelectedKey = loggItem.Age; controller.NavigationController.PushViewController(fieldScreen, true); } }); break; case "Weight": section3.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.weight"), GetValue = () => { return loggItem.Weight == 0 ? "" : loggItem.Weight + " kg"; }, RowSelected = () => { var fieldScreen = new FieldNumberPickerScreen(screen => { loggItem.Weight = Int32.Parse(screen.Value); _controller.Refresh(); }); fieldScreen.Value = loggItem.Weight.ToString(); fieldScreen.Title = Utils.Translate("log.header.weight"); fieldScreen.LabelExtension = " kg"; _controller.NavigationController.PushViewController(fieldScreen, true); } }); break; case "ButchWeight": section3.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.butchweight"), GetValue = () => { return loggItem.ButchWeight == 0 ? "" : loggItem.ButchWeight + " kg"; }, RowSelected = () => { var fieldScreen = new FieldNumberPickerScreen(screen => { loggItem.ButchWeight = Int32.Parse(screen.Value); _controller.Refresh(); }); fieldScreen.Value = loggItem.ButchWeight.ToString(); fieldScreen.Title = Utils.Translate("log.header.butchweight"); fieldScreen.LabelExtension = " kg"; _controller.NavigationController.PushViewController(fieldScreen, true); } }); break; case "WeaponType": section3.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.header.weapontype"), GetValue = () => { return loggItem.WeaponType; }, RowSelected = () => { var fieldScreen = new FieldStringScreen(Utils.Translate("log.header.weapontype"), screen => { loggItem.WeaponType = screen.Value; _controller.Refresh(); }); fieldScreen.Placeholder = Utils.Translate("log.writeweapontype"); fieldScreen.Value = loggItem.WeaponType; //autosuggest: var autoitems = (from x in JaktLoggApp.instance.LoggList where x.WeaponType != string.Empty select x.WeaponType.ToUpper()).Distinct(); var autosuggests = new List<ItemCount>(); foreach(var autoitem in autoitems){ autosuggests.Add(new ItemCount{ Name = autoitem, Count = JaktLoggApp.instance.LoggList.Where(y => y.WeaponType.ToUpper() == autoitem).Count() }); } fieldScreen.AutoSuggestions = autosuggests.OrderByDescending( o => o.Count ).ToList(); _controller.NavigationController.PushViewController(fieldScreen, true); }, ImageFile = "" }); break; } } #endregion if(!_controller.IsNewItem){ sectionSlett.Rows.Add(new RowItemMapping { Label = Utils.Translate("log.delete"), GetValue = () => { return ""; } }); } sections.Add(section1); sections.Add(section2); if(section3.Rows.Count > 0) sections.Add(section3); sections.Add(sectionSlett); foreach(var s in sections){ headers.Add(new HeaderTableSection(s.Header)); } }
public void DeleteLogg(Logg item) { DeleteFile(Utils.GetPath("jaktlogg_" + item.ID + ".jpg")); LoggList.Remove(item); _repository.SaveLoggList(LoggList); }