/// <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;
        }
Ejemplo n.º 2
0
        /// <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();
                }
            }
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 7
0
 /// <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;
            }
        }
Ejemplo n.º 9
0
        /// <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);
            }
        }
Ejemplo n.º 12
0
        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();
        }
Ejemplo n.º 13
0
 /// <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();
        }