/// <summary> /// Creates Painter for specified Primitive. /// </summary> /// <param name="canvas">Canvase to create Painter for.</param> /// <param name="element">Element to create Painter for.</param> /// <returns>Created Painter Instance.</returns> public static IPainter CreatePainter(CommonDesignerCanvas canvas, ElementBase element) { if (canvas == null) throw new ArgumentNullException("canvas"); if (element == null) throw new ArgumentNullException("element"); IPrimitive primitive = element as IPrimitive; if (primitive == null) throw new ArgumentException("Element must be a Primitive", "element"); Func<CommonDesignerCanvas, ElementBase, IPainter> factoryMethod = null; if (factoryMethods.TryGetValue(primitive.Primitive, out factoryMethod)) { // The following Object contains a Tooltip Flag to be copied from Source Element to determine Visibility: ToolTipFlagContainer tooltipFlag = new ToolTipFlagContainer(); ElementBase.Copy(element, tooltipFlag); IPainter wrappedPainter = factoryMethod(canvas, element); PrimitiveToolTipViewModel tooltip = new PrimitiveToolTipViewModel() { Name = element.PresentationName, }; return new PrimitivePainter(wrappedPainter) { ToolTip = tooltipFlag.ShowTooltip ? tooltip : null, }; } else throw new InvalidOperationException("Unknown Primitive Type"); }
public PresenterItem CreatePresenterItem(ElementBase elementBase) { var presenterItem = new PresenterItem(elementBase); Add(presenterItem); presenterItem.CreatePainter(); return presenterItem; }
public DesignerItemRectangleSubPlan(ElementBase element) : base(element) { Title = Helper.GetSubPlanTitle((IElementSubPlan)Element); Group = Helper.SubPlanAlias; IconSource = "/Controls;component/Images/CMap.png"; }
public static PointCollection GetRealPoints(ElementBase element) { if (element is ElementBaseShape) return ((ElementBaseShape)element).Points; else if (element is ElementBaseRectangle) return GetPoints(((ElementBaseRectangle)element).GetRectangle()); return new PointCollection(); }
public DesignerItemBase(ElementBase element) : base(element) { _contextMenu = null; ShowPropertiesCommand = new RelayCommand(OnShowProperties); DeleteCommand = new RelayCommand(OnDelete); DeleteCurrentCommand = new RelayCommand(OnDeleteCurrent); }
public PresenterItem(ElementBase element) : base(element) { Cursor = null; ShowBorderOnMouseOver = false; IsEnabled = true; IsPoint = false; IsVisibleLayout = !element.IsHidden; }
public static PointCollection GetPoints(ElementBase element) { return element is ElementBaseShape ? Normalize(((ElementBaseShape)element).GetRectangle().TopLeft, ((ElementBaseShape)element).Points, element.BorderThickness) : element is ElementBaseRectangle ? Normalize(((ElementBaseRectangle)element).GetRectangle(), element.BorderThickness) : new PointCollection(); }
public PositionSettingsViewModel(ElementBase element, CommonDesignerCanvas designerCanvas) { ElementBase = element; DesignerCanvas = designerCanvas; var rectangle = ElementBase.GetRectangle(); Left = Math.Round(rectangle.X, 3).ToString(); Top = Math.Round(rectangle.Y, 3).ToString(); ElementWidth = rectangle.Width; ElementHeight = rectangle.Height; }
public static IPainter Create(CommonDesignerCanvas designerCanvas, ElementBase element) { Type type = element.GetType(); var primitive = element as IPrimitive; if (primitive != null && primitive.Primitive != Primitive.NotPrimitive) return (IPainter)Activator.CreateInstance(_painters[primitive.Primitive], designerCanvas, element); var args = new PainterFactoryEventArgs(designerCanvas, element); EventService.EventAggregator.GetEvent<PainterFactoryEvent>().Publish(args); return args.Painter ?? new DefaultPainter(designerCanvas, element); }
ElementError CreateElementError(Guid planUid, ElementBase element) { return new ElementError() { PlanUID = planUid, Error = "Несвязанная ссылка на план", Element = element, IsCritical = false, ImageSource = "/Controls;component/Images/CMap.png" }; }
public DesignerItemRectangle(ElementBase element) : base(element) { SetResizeChrome(new ResizeChromeRectangle(this)); if (Element.IsExactly<ElementRectangle>() || Element.IsExactly<ElementEllipse>() || Element.IsExactly<ElementTextBlock>()) { Title = element.PresentationName; Group = LayerGroupService.ElementAlias; ClassName = Element.IsExactly<ElementRectangle>() ? "Прямоугольник" : (Element.IsExactly<ElementEllipse>() ? "Эллипс" : "Надпись"); } }
public DesignerItemShape(ElementBase element) : base(element) { SetResizeChrome(new ResizeChromeShape(this)); if (Element.IsExactly<ElementPolygon>() || Element.IsExactly<ElementPolyline>()) { Title = Element.PresentationName; Group = LayerGroupService.ElementAlias; ClassName = Element.IsExactly<ElementPolygon>() ? "Многоугольник" : "Линия"; } }
protected override void RemoveElement(ElementBase elementBase) { if (elementBase is ElementPassCardImageProperty) PassCardTemplate.ElementImageProperties.Remove(elementBase as ElementPassCardImageProperty); else if (elementBase is ElementPassCardTextProperty) PassCardTemplate.ElementTextProperties.Remove(elementBase as ElementPassCardTextProperty); else if (elementBase is ElementRectangle) PassCardTemplate.ElementRectangles.Remove(elementBase as ElementRectangle); else if (elementBase is ElementEllipse) PassCardTemplate.ElementEllipses.Remove(elementBase as ElementEllipse); else if (elementBase is ElementPolygon) PassCardTemplate.ElementPolygons.Remove(elementBase as ElementPolygon); else if (elementBase is ElementPolyline) PassCardTemplate.ElementPolylines.Remove(elementBase as ElementPolyline); else if (elementBase is ElementTextBlock) PassCardTemplate.ElementTextBlocks.Remove(elementBase as ElementTextBlock); }
protected override DesignerItem AddElement(ElementBase elementBase) { if (elementBase is ElementPassCardImageProperty) PassCardTemplate.ElementImageProperties.Add(elementBase as ElementPassCardImageProperty); else if (elementBase is ElementPassCardTextProperty) PassCardTemplate.ElementTextProperties.Add(elementBase as ElementPassCardTextProperty); else if (elementBase is ElementRectangle) PassCardTemplate.ElementRectangles.Add(elementBase as ElementRectangle); else if (elementBase is ElementEllipse) PassCardTemplate.ElementEllipses.Add(elementBase as ElementEllipse); else if (elementBase is ElementPolygon) PassCardTemplate.ElementPolygons.Add(elementBase as ElementPolygon); else if (elementBase is ElementPolyline) PassCardTemplate.ElementPolylines.Add(elementBase as ElementPolyline); else if (elementBase is ElementTextBlock) PassCardTemplate.ElementTextBlocks.Add(elementBase as ElementTextBlock); return Create(elementBase); }
public PolygonZonePainter(CommonDesignerCanvas designerCanvas, ElementBase element) : base(designerCanvas, element) { _toolTip = new ImageTextTooltipViewModel(); if (element is ElementPolygonGKZone) _toolTip.ImageSource = "/Controls;component/Images/Zone.png"; else if (element is ElementPolygonGKSKDZone) _toolTip.ImageSource = "/Controls;component/Images/SKDZone.png"; else if (element is ElementPolygonGKGuardZone) _toolTip.ImageSource = "/Controls;component/Images/GuardZone.png"; else if (element is ElementPolygonGKDirection) _toolTip.ImageSource = "/Controls;component/Images/BDirection.png"; else if (element is ElementPolygonGKMPT) _toolTip.ImageSource = "/Controls;component/Images/BMPT.png"; else if (element is ElementPolygonGKPumpStation) _toolTip.ImageSource = "/Controls;component/Images/BPumpStation.png"; else if (element is ElementPolygonGKDelay) _toolTip.ImageSource = "/Controls;component/Images/Delay.png"; }
protected override void RemoveElement(ElementBase elementBase) { if (elementBase is ElementRectangle) Plan.ElementRectangles.Remove(elementBase as ElementRectangle); else if (elementBase is ElementEllipse) Plan.ElementEllipses.Remove(elementBase as ElementEllipse); else if (elementBase is ElementPolygon) Plan.ElementPolygons.Remove(elementBase as ElementPolygon); else if (elementBase is ElementPolyline) Plan.ElementPolylines.Remove(elementBase as ElementPolyline); else if (elementBase is ElementTextBlock) Plan.ElementTextBlocks.Remove(elementBase as ElementTextBlock); else if (elementBase is ElementTextBox) Plan.ElementTextBoxes.Remove(elementBase as ElementTextBox); else if (elementBase is ElementRectangleSubPlan) Plan.ElementRectangleSubPlans.Remove(elementBase as ElementRectangleSubPlan); else if (elementBase is ElementPolygonSubPlan) Plan.ElementPolygonSubPlans.Remove(elementBase as ElementPolygonSubPlan); else ((PlanDesignerViewModel)PlanDesignerViewModel).PlansViewModel.ElementRemoved(elementBase); }
public static DesignerItem Create(ElementBase element) { var args = new DesignerItemFactoryEventArgs(element); ServiceFactoryBase.Events.GetEvent<DesignerItemFactoryEvent>().Publish(args); if (args.DesignerItem == null) switch (element.Type) { case ElementType.Point: args.DesignerItem = new DesignerItemPoint(element); break; case ElementType.Rectangle: args.DesignerItem = new DesignerItemRectangle(element); break; case ElementType.Polygon: case ElementType.Polyline: args.DesignerItem = new DesignerItemShape(element); break; } if (args.DesignerItem == null) args.DesignerItem = new DesignerItemBase(element); return args.DesignerItem; }
protected override DesignerItem AddElement(ElementBase elementBase) { if (elementBase is ElementRectangle) Plan.ElementRectangles.Add(elementBase as ElementRectangle); else if (elementBase is ElementEllipse) Plan.ElementEllipses.Add(elementBase as ElementEllipse); else if (elementBase is ElementPolygon) Plan.ElementPolygons.Add(elementBase as ElementPolygon); else if (elementBase is ElementPolyline) Plan.ElementPolylines.Add(elementBase as ElementPolyline); else if (elementBase is ElementTextBlock) Plan.ElementTextBlocks.Add(elementBase as ElementTextBlock); else if (elementBase is ElementTextBox) Plan.ElementTextBoxes.Add(elementBase as ElementTextBox); else if (elementBase is ElementRectangleSubPlan) Plan.ElementRectangleSubPlans.Add(elementBase as ElementRectangleSubPlan); else if (elementBase is ElementPolygonSubPlan) Plan.ElementPolygonSubPlans.Add(elementBase as ElementPolygonSubPlan); else ((PlanDesignerViewModel)PlanDesignerViewModel).PlansViewModel.ElementAdded(elementBase); return Create(elementBase); }
public void ElementRemoved(ElementBase element) { foreach (var planExtension in _planExtensions) if (planExtension.ElementRemoved(SelectedPlan.Plan, element)) break; }
public MonitorPolygonSubPlanPresenterItem(ElementBase element) : base(element) { ; }
public ProcedurePainter(CommonDesignerCanvas designerCanvas, ElementBase element) : base(designerCanvas, element) { _toolTip = new ImageTextTooltipViewModel(); _toolTip.ImageSource = "/Controls;component/Images/ProcedureYellow.png"; }
public PlanLinkViewModel(RubezhAPI.Models.Plan plan, ElementBase elementBase) { PlanUID = plan.UID; ElementUID = elementBase.UID; Name = plan.Caption; }
public ElementViewModel(ElementBase elementBase) { ElementBase = elementBase; ElementType = ElementBase.GetType(); }
void OnElementSelected(ElementBase element) { Select(element.UID); }
public override void CreateDesignerItem(ElementBase element) { CreatePresenterItem(element); }
public TextBlockPainter(CommonDesignerCanvas designerCanvas, ElementBase element) : base(designerCanvas, element) { _textDrawing = new GeometryDrawing(null, null, null); }
private bool AllowPaste(ElementBase element) { var vizualizationElement = element as IMultipleVizualization; if (vizualizationElement != null && !vizualizationElement.AllowMultipleVizualization && this.clipboard.SourceAction == ClipboardSourceAction.Copy) return false; return true; }
public DesignerItemPoint(ElementBase element) : base(element) { SetResizeChrome(new ResizeChromePoint(this)); }
public PointPainter(CommonDesignerCanvas designerCanvas, ElementBase element) : base(designerCanvas, element) { }
public void ResetElement(ElementBase element) { this.primitivePainter.ResetElement(element); }