public void AddEqualRelation(object arg) { IsAddingRelation = true; var line = arg as Line; if (relatedLine != null) { if (relation != Relation.EQUALS) { return; } relatedLine.RelatedLine = line; line.RelatedLine = relatedLine; IsAddingRelation = false; relatedLine = null; relation = Relation.NONE; Debug.WriteLine("Adding old relation. Line:" + line.First.X + " " + line.Second.X); } else { if (relation != Relation.NONE) { return; } Debug.WriteLine("Adding new relation. Line:" + line.First.X + " " + line.Second.X); IsAddingRelation = true; relatedLine = line; relation = Relation.EQUALS; } line.Relation = Relation.EQUALS; if (SelectedPolygon != null) { SelectedPolygon.RenderBitmap(); } }
public void DeletePoint(object arg) { var point = arg as DragablePoint; if (point == null) { return; } if (SelectedPolygon == null) { return; } if (SelectedPolygon.Points.Count <= 3) { var toDel = SelectedPolygon; Polygons.Remove(toDel); SelectedPolygon = null; } else { SelectedPolygon.DeletePoint(point); SelectedPolygon.RenderBitmap(); } }
private void RefreshPolygonUsers() { if (SelectedPolygon != null) { if (SelectedPolygon.PolygonTagTypeEquals(PolygonTagType.Hexagon)) { var friends = _layerService.UsersInsidePolygonTagBrief(SelectedPolygon.ExtractPolygonTag().Tag); SelectedUsers = new ObservableCollection <UserInfoBriefViewCellModel>(friends); } else if (SelectedPolygon.PolygonTagTypeEquals(PolygonTagType.Zone)) { //TODO: read friends inside of Zone from webapi var friends = _layerService.UsersInsideZone(SelectedPolygon.ExtractPolygonTag().Tag); SelectedUsers = new ObservableCollection <UserInfoBriefViewCellModel>(friends); } else { SelectedUsers.Clear(); } PolygonUsersVisible = SelectedUsers.Count > 0; } else { SelectedUsers.Clear(); PolygonUsersVisible = false; } }
public void DeleteRelation(object line) { var line1 = line as Line; line1.RemoveRelation(); if (SelectedPolygon != null) { SelectedPolygon.RenderBitmap(); } }
public void ChangeBlockStatus(object arg) { var point = arg as DragablePoint; if (point == null) { return; } point.IsBlocked = !point.IsBlocked; if (SelectedPolygon != null) { SelectedPolygon.RenderBitmap(); } }
private void Polygon_Clicked(object sender, EventArgs e) { if (sender is Polygon sp) { if (SelectedPolygon != null && SelectedPolygon.PolygonTagEquals(sp)) { SelectedPolygon = null; PolygonUsersVisible = false; } else { SelectedPolygon = sp; RefreshPolygonUsers(); } } }
public void AddMiddlePoint(object arg) { var line = arg as Line; if (line == null) { return; } if (SelectedPolygon == null) { return; } line.RemoveRelation(); var index = SelectedPolygon.Lines.IndexOf(line); var toAdd = new DragablePoint((line.First.X + line.Second.X) / 2, (line.First.Y + line.Second.Y) / 2); SelectedPolygon.AddPoint(toAdd, index); SelectedPolygon.RenderBitmap(); }