/// <summary> /// Adds all markers of the current ExhibitSet to the specified map. /// </summary> /// <param name="mapView">MapView where the markers should be displayed.</param> private void SetAllMarkers(MapView mapView) { LocationOverlay = new MyLocationOverlay(Activity, mapView); MyScaleBarOverlay = new ScaleBarOverlay(Activity); var markerInfoWindow = new ViaPointInfoWindow(Resource.Layout.navigation_info_window, mapView, Activity); var mapMarkerIcon = ContextCompat.GetDrawable(Activity, Resource.Drawable.marker_blue); var setMarker = new SetMarker(mapView, markerInfoWindow); foreach (var e in ExhibitSet.ActiveSet) { //One Marker Object var geoPoint = new GeoPoint(e.Location.Latitude, e.Location.Longitude); var marker = setMarker.AddMarker(null, e.Name, e.Description, geoPoint, mapMarkerIcon, e.Id); mapView.OverlayManager.Add(marker); } userPosition = new Marker(mapView); userPosition.SetIcon(ResourcesCompat.GetDrawable(Resources, Resource.Drawable.ic_my_location, null)); userPosition.Position = new GeoPoint(GeoLocation.Latitude, GeoLocation.Longitude); userPosition.SetInfoWindow(null); mapView.OverlayManager.Add(userPosition); mapView.OverlayManager.Add(MyScaleBarOverlay); mapView.OverlayManager.Add(LocationOverlay); mapView.Invalidate(); }
private static void PasteMarker(int frameUnderMouse) { var m = copiedMarker.Clone(); m.Frame = frameUnderMouse; Document.Current.History.DoTransaction(() => { SetMarker.Perform(Document.Current.Container, m, true); }); }
public static void PasteMarkers() { Document.Current.History.DoTransaction(() => { foreach (var marker in copiedMarkers) { var m = marker.Clone(); SetMarker.Perform(Document.Current.Container, m, true); } }); }
/// <summary> /// Adds a set predicates; generally compares to a set of values of the same type (e.g. a set of integer values) /// </summary> /// <typeparam name="T">The type of the values in the set.</typeparam> /// <param name="path">Teh path of the object property to compare against value set.</param> /// <param name="marker">An equality or inequality marker.</param> /// <param name="values">A set of values of type <typeparamref name="T"/>.</param> /// <returns>Returns current group.</returns> public WhereGroup AddSetPredicate <T>(string path, SetMarker marker, T[] values) { SetPredicate <T> predicate; predicate = new SetPredicate <T>(path); predicate.Marker = marker; predicate.Values = values; _predicates.Add(predicate); return(this); }
private async Task SetProductsQuantityAsync(IEnumerable <CartItem> items, SetMarker setMarker) { foreach (var item in items) { var product = await _productsRepository.GetAsync(item.ProductId); product.NullCheck(ErrorCodes.product_not_found, item.ProductId); product.SetQuantity(product.Quantity + (int)setMarker * item.Quantity); await _productsRepository.UpdateAsync(product); } }
void DragMarker(Marker marker, int destColumn) { var markerToRemove = Document.Current.Animation.Markers.FirstOrDefault(m => m.Frame == destColumn); if (marker.Frame != destColumn && markerToRemove != null) { DeleteMarker.Perform(markerToRemove, false); } // Delete and add marker again, because we want to maintain the markers order. DeleteMarker.Perform(marker, false); SetProperty.Perform(marker, "Frame", destColumn); SetMarker.Perform(marker, true); }
private static void CreateMarker(MarkerAction action) { var timeline = Timeline.Instance; var nearestMarker = Document.Current.Animation.Markers.LastOrDefault( m => m.Frame < timeline.CurrentColumn && m.Action == MarkerAction.Play); string markerId = (action == MarkerAction.Play) ? GenerateMarkerId(Document.Current.Animation.Markers, "Start") : ""; var newMarker = new Marker( markerId, timeline.CurrentColumn, action, action == MarkerAction.Jump && nearestMarker != null ? nearestMarker.Id : "" ); SetMarker.Perform(newMarker, true); }
private void Stretch(IntRectangle boundaries, DragSide side, int newPos, bool stretchMarkers) { int length; if (side == DragSide.Left) { length = boundaries.Right - newPos - 1; } else { length = newPos - boundaries.Left - 1; } int oldLength = boundaries.Right - boundaries.Left - 1; var processed = new HashSet <IAnimator>(); foreach (var animable in GridSelection.EnumerateAnimators(boundaries)) { foreach (var animator in animable.Animators) { if (animator.AnimationId != Document.Current.AnimationId || processed.Contains(animator) || !savedKeyframes.ContainsKey(animator)) { continue; } processed.Add(animator); IEnumerable <IKeyframe> saved = savedKeyframes[animator]; if ( side == DragSide.Left && length < oldLength || side == DragSide.Right && length > oldLength ) { saved = saved.Reverse(); } foreach (var key in saved) { RemoveKeyframe.Perform(animator, key.Frame); } foreach (var key in saved) { double relpos = savedPositions[key]; int newFrame; if (side == DragSide.Left) { newFrame = (int)Math.Round(newPos + relpos * length); } else { newFrame = (int)Math.Round(boundaries.Left + relpos * length); } var newKey = key.Clone(); newKey.Frame = newFrame; SetAnimableProperty.Perform( animable.Host, animator.TargetPropertyPath, newKey.Value, createAnimatorIfNeeded: true, createInitialKeyframeForNewAnimator: false, newKey.Frame ); SetKeyframe.Perform(animable.Host, animator.TargetPropertyPath, Document.Current.AnimationId, newKey); } } } if (stretchMarkers) { foreach (var marker in savedMarkers) { DeleteMarker.Perform(marker, removeDependencies: false); } foreach (var marker in savedMarkers) { double relpos = savedMarkerPositions[marker]; int newFrame; if (side == DragSide.Left) { newFrame = (int)Math.Round(newPos + relpos * length); } else { newFrame = (int)Math.Round(boundaries.Left + relpos * length); } var newMarker = marker.Clone(); newMarker.Frame = newFrame; SetMarker.Perform(newMarker, removeDependencies: false); } } }
private void Stretch(Boundaries boundaries, DragSide side, int newPos, bool stretchMarkers) { int length; if (side == DragSide.Left) { length = boundaries.Right - newPos - 1; } else { length = newPos - boundaries.Left - 1; } int oldLength = boundaries.Right - boundaries.Left - 1; for (int i = boundaries.Top; i <= boundaries.Bottom; ++i) { if (!(Document.Current.Rows[i].Components.Get <NodeRow>()?.Node is IAnimationHost animable)) { continue; } foreach (var animator in animable.Animators.ToList()) { IEnumerable <IKeyframe> saved = savedKeyframes[animator]; if ( side == DragSide.Left && length < oldLength || side == DragSide.Right && length > oldLength ) { saved = saved.Reverse(); } foreach (var key in saved) { RemoveKeyframe.Perform(animator, key.Frame); } foreach (var key in saved) { double relpos = savedPositions[key]; int newFrame; if (side == DragSide.Left) { newFrame = (int)Math.Round(newPos + relpos * length); } else { newFrame = (int)Math.Round(boundaries.Left + relpos * length); } var newKey = key.Clone(); newKey.Frame = newFrame; SetAnimableProperty.Perform( animable, animator.TargetPropertyPath, newKey.Value, createAnimatorIfNeeded: true, createInitialKeyframeForNewAnimator: false, newKey.Frame ); SetKeyframe.Perform(animable, animator.TargetPropertyPath, Document.Current.AnimationId, newKey); } } } if (stretchMarkers) { foreach (var marker in savedMarkers) { DeleteMarker.Perform(Document.Current.Container, marker, removeDependencies: false); } foreach (var marker in savedMarkers) { double relpos = savedMarkerPositions[marker]; int newFrame; if (side == DragSide.Left) { newFrame = (int)Math.Round(newPos + relpos * length); } else { newFrame = (int)Math.Round(boundaries.Left + relpos * length); } var newMarker = marker.Clone(); newMarker.Frame = newFrame; SetMarker.Perform(Document.Current.Container, newMarker, removeDependencies: false); } } }