/// <summary> /// /// </summary> public void MakeCanvas() { // Crea y agrega el canvas a la ventana Canvas canvas = Utilities.CanvasFromXaml(this.canvasPath); parent.Children.Add(canvas); // Cambiar el rectangulo de activacion escondido, asi cubre todo el formulario. FrameworkElement activationRectangle = (FrameworkElement)canvas.FindName("activationRectangle"); IDrawAbleWpf baseFormAsIDrawableWpf = (BaseForm as IDrawAbleWpf); activationRectangle.Height = baseFormAsIDrawableWpf.MyCanvas.Height; activationRectangle.Width = baseFormAsIDrawableWpf.MyCanvas.Width; // Obtiene el ancho del viewerCanvas, es el maximo valor. Canvas viewerCanvas = (Canvas)canvas.FindName("viewerCanvas"); double maxWidth = viewerCanvas.Width; // Posicion del rectangulo de activacion oculto justo encima del formulario base. XCoordinateRelativeToParent = BaseForm.XCoordinateRelativeToParent - (maxWidth - activationRectangle.Width) / 2; YCoordinateRelativeToParent = BaseForm.YCoordinateRelativeToParent; Canvas.SetLeft(canvas, XCoordinateRelativeToParent); Canvas.SetTop(canvas, YCoordinateRelativeToParent); this.myCanvas = canvas; }
/// <summary> /// Función llamada cuando se presiono una tabla. Si es una acción 'make connection' se establece a esta tabla como parte de la conexión. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void table_WidgetClick(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (IsMakeConnectionAction) { TableWpf tableWPF = sender as TableWpf; // Un origen de datos no puede ser parte de una relación. Error error = DataModel.CheckConnectionWithStorage(tableWPF as Table); if (error != null) { Util.ShowErrorDialog(error.Description); return; } IDrawAbleWpf tempWidget = sender as IDrawAbleWpf; if (connectionWidgetFrom == null) { connectionWidgetFrom = tempWidget; windowsDataModelDesigner.textBlockStatusBar.Text = UtnEmall.ServerManager.Properties.Resources.SelectTableTargetConnection; return; } else { connectionWidgetTarget = tempWidget; FinalizeConnection(); } } }
/// <summary> /// Función que crea una conexión /// </summary> /// <param name="from">IDrawAbleWpf origen de la conexón.</param> /// <param name="target">IDrawAbleWpf destino de la conexión.</param> /// <param name="relationType">Tipo de relación que se creará.</param> private void CreateConnection(IDrawAbleWpf from, IDrawAbleWpf target, RelationType relationType) { if (from == null) { throw new ArgumentNullException("from", "from can not be null"); } if (target == null) { throw new ArgumentNullException("target", "target can not be null"); } Widget widgetTarget = target as Widget; Widget widgetFrom = from as Widget; Error error = myDataModel.CheckDuplicatedConnection(widgetFrom as Table, widgetTarget as Table); if (error != null) { Util.ShowErrorDialog(error.Description); windowsDataModelDesigner.textBlockStatusBar.Text = String.Empty; return; } RelationWpf newRelation = new RelationWpf(widgetFrom as TableWpf, widgetTarget as TableWpf, relationType); this.AddRelation(newRelation); RedrawConnections(); }
/// <summary> /// Función que elimina un componente del documento del servicio /// </summary> /// <param name="widget">Componente a agregar</param> public override void RemoveWidget(Widget widget) { base.RemoveWidget(widget); IDrawAbleWpf drawable = widget as IDrawAbleWpf; this.DrawArea.Children.Remove(drawable.UIElement); RedrawConnections(); }
private void myWidget_PreviewMouseUp(object sender, MouseButtonEventArgs e) { if (isDragDropAction == true) { isDragDropAction = false; Widget senderAsWidget = sender as Widget; IDrawAbleWpf senderAsIDrawAble = sender as IDrawAbleWpf; senderAsWidget.XCoordinateRelativeToParent = Canvas.GetLeft(senderAsIDrawAble.UIElement); senderAsWidget.YCoordinateRelativeToParent = Canvas.GetTop(senderAsIDrawAble.UIElement); } }
/// <summary> /// Constructor /// </summary> /// <param name="formEntity">ComponentEntity</param> /// <param name="form">Formulario involucrado</param> /// <param name="session">Identificador de sesión</param> /// <param name="parent">Canvas padre</param> public StatisticsWpf(ComponentEntity formEntity, IDrawAbleWpf form, string session, Canvas parent) : base() { this.form = form; this.formEntity = formEntity; this.canvasPath = "CanvasStatistics.xaml"; this.parent = parent; this.MakeCanvas(); ((TextBlock)myCanvas.FindName("textBlockComment")).Text = GenerateStatisticSummary(formEntity, session); }
/// <summary> /// Constructor /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void table_WidgetPreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (isDragDropAction) { isDragDropAction = false; Widget senderAsWidget = sender as Widget; IDrawAbleWpf senderAsIDrawAble = sender as IDrawAbleWpf; senderAsWidget.XCoordinateRelativeToParent = Canvas.GetLeft(senderAsIDrawAble.UIElement); senderAsWidget.YCoordinateRelativeToParent = Canvas.GetTop(senderAsIDrawAble.UIElement); } }
private void myWidget_PreviewMouseDown(object sender, MouseButtonEventArgs e) { if (isDragDropAction == false) { IDrawAbleWpf widget = sender as IDrawAbleWpf; // -- isDragDropAction = true; currentElement = widget.UIElement; mousePosition.X = e.GetPosition(widget.UIElement).X; mousePosition.Y = e.GetPosition(widget.UIElement).Y; } }
/// <summary> /// Constructor /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void table_WidgetPreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (!isDragDropAction) { isDragDropAction = true; IDrawAbleWpf widget = sender as IDrawAbleWpf; currentElement = widget.UIElement; mousePosition.X = e.GetPosition(widget.UIElement).X; mousePosition.Y = e.GetPosition(widget.UIElement).Y; } }
private void templateListItemWpf_ComponentPreviewImageMouseDown(object sender, MouseButtonEventArgs e) { if (!IsResizeAction) { IsDragDropAction = false; IsResizeAction = true; IDrawAbleWpf widget = sender as IDrawAbleWpf; CurrentElement = widget.UIElement; mousePosition.X = e.GetPosition(widget.UIElement).X; mousePosition.Y = e.GetPosition(widget.UIElement).Y; CurrentComponent = sender as Component; } }
/// <summary> /// Agrega un nuevo componente a la lista de componentes del servicio /// </summary> /// <param name="widget">Componente a agregar</param> public override void AddWidget(Widget widget) { base.AddWidget(widget); this.AttachWidgetEvents(widget); IDrawAbleWpf drawable = widget as IDrawAbleWpf; this.DrawArea.Children.Add(drawable.UIElement); if (widget.XCoordinateRelativeToParent == 0 && widget.YCoordinateRelativeToParent == 0) { Point centralDrawAreaPoint = new Point(DrawArea.ActualWidth / 2, DrawArea.ActualHeight / 2); Canvas.SetLeft(drawable.UIElement, widget.XCoordinateRelativeToParent = centralDrawAreaPoint.X); Canvas.SetTop(drawable.UIElement, widget.YCoordinateRelativeToParent = centralDrawAreaPoint.Y); } }
public override void RedrawDocument() { DrawArea.Children.Clear(); foreach (Widget widget in Components) { IDrawAbleWpf drawableWPF = widget as IDrawAbleWpf; DrawArea.Children.Add(drawableWPF.GetUIElement()); drawableWPF.MyCanvas.ContextMenu = null; Canvas.SetLeft(drawableWPF.GetUIElement(), widget.XCoordinateRelativeToParent); Canvas.SetTop(drawableWPF.GetUIElement(), widget.YCoordinateRelativeToParent); } DrawArea.UpdateLayout(); RedrawConnections(); }
/// <summary> /// Función que refrezca la visualización del documento. /// </summary> private void ReDrawDataModel() { this.canvasDraw.Children.RemoveRange(0, canvasDraw.Children.Count); foreach (TableWpf tableWpf in this.MyDataModel.Tables) { this.AttachWidgetEvent(tableWpf); IDrawAbleWpf tableDrawable = tableWpf as IDrawAbleWpf; TextBlock textBlockTableName = (tableWpf.UIElement as Canvas).FindName("textBlockTableName") as TextBlock; textBlockTableName.Text = tableWpf.Name; canvasDraw.Children.Add(tableDrawable.UIElement); Canvas.SetLeft(tableDrawable.UIElement, tableWpf.XCoordinateRelativeToParent); Canvas.SetTop(tableDrawable.UIElement, tableWpf.YCoordinateRelativeToParent); } RedrawConnections(); }
public override void RedrawDocument() { DrawArea.Children.Clear(); foreach (Widget widget in Components) { // Agregar el elemento al área de dibujo, y borrar su menú de contexto IDrawAbleWpf drawableWPF = widget as IDrawAbleWpf; DrawArea.Children.Add(drawableWPF.UIElement); drawableWPF.MyCanvas.ContextMenu = null; // Reposicionar el lienzo Canvas.SetLeft(drawableWPF.UIElement, widget.XCoordinateRelativeToParent); Canvas.SetTop(drawableWPF.UIElement, widget.YCoordinateRelativeToParent); } // Actualizar y redibujar el área de dibujo DrawArea.UpdateLayout(); RedrawConnections(); }
/// <summary> /// Redibuja el documento del servicio en wpf, sus componentes y conexiones entre ellos. /// </summary> /// <param name="attachWidgetEvents">Indica si se agregan los eventos</param> public void RedrawDocument(bool attachWidgetEvents) { this.drawArea.Children.RemoveRange(0, drawArea.Children.Count); foreach (Widget widget in Components) { MenuFormWpf menuFormWpf = widget as MenuFormWpf; if (menuFormWpf != null) { menuFormWpf.MakeCanvas(); } IDrawAbleWpf drawableWPF = widget as IDrawAbleWpf; if (attachWidgetEvents) { this.AttachWidgetEvents(drawableWPF as Widget); } drawArea.Children.Add(drawableWPF.UIElement); Canvas.SetLeft(drawableWPF.UIElement, widget.XCoordinateRelativeToParent); Canvas.SetTop(drawableWPF.UIElement, widget.YCoordinateRelativeToParent); } this.DrawArea.UpdateLayout(); RedrawConnections(); }