Esempio n. 1
0
        public override void OnReadFromXmlNode(IXmlCodeReader reader, XmlNode node)
        {
            _classId  = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ClassID);
            _memberId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ComponentID);
            XmlNode pn = node.SelectSingleNode(XML_Location);

            if (pn != null)
            {
                this.Location = reader.ReadValue <Point>(pn, this);
            }
            if (UseLabel)
            {
                object v;
                if (XmlSerialization.ReadValueFromChildNode(node, XML_RelativePosition, out v))
                {
                    if (_label == null)
                    {
                        _label = new DrawingLabel(this);
                    }
                    _label.RelativePosition.Location = (Point)v;
                    XmlNode nd = node.SelectSingleNode(XML_RelativePosition);
                    _label.RelativePosition.IsXto0 = XmlSerialization.GetAttributeBool(nd, "xTo0", true);
                    _label.RelativePosition.IsYto0 = XmlSerialization.GetAttributeBool(nd, "yTo0", true);
                }
            }
        }
Esempio n. 2
0
 private void init()
 {
     this.Size = new System.Drawing.Size(ICONSIZE, ICONSIZE);
     _label    = new DrawingLabel(this);
     _label.RelativePosition.IsXto0 = true;
     this.Cursor   = System.Windows.Forms.Cursors.Hand;
     _label.Cursor = System.Windows.Forms.Cursors.Hand;
 }
 public override void OnReadFromXmlNode(IXmlCodeReader serializer, XmlNode node)
 {
     base.OnReadFromXmlNode(serializer, node);
     //it will also set the owner for _label
     _label = (DrawingLabel)XmlSerialization.ReadFromChildXmlNode(serializer, node, XML_LABEL, this);
     if (_label != null)
     {
         _label.Move += new EventHandler(_label_Move);
     }
 }
 public void SetLabelText(string text)
 {
     if (_label == null)
     {
         _label = new DrawingLabel(this);
         _label.RelativePosition = new RelativePosition(_label, this.Width, this.Height + 2, true, true);
         _label.Move            += new EventHandler(_label_Move);
         if (this.Parent != null)
         {
             this.Parent.Controls.Add(_label);
         }
     }
     _label.Text = text;
 }
Esempio n. 5
0
        public ComponentIcon()
        {
            this.Size   = new Size(ICONSIZE, ICONSIZE);
            this.Cursor = System.Windows.Forms.Cursors.Hand;

            if (UseLabel)
            {
                _label = new DrawingLabel(this);
                _label.RelativePosition.IsXto0 = true;
                _label.Cursor = Cursors.Hand;
            }
            _img          = Resources._void;
            propertyNames = new StringCollection();
            propertyNames.Add("Name");
        }
Esempio n. 6
0
        public void ReadFromXmlNode(XmlObjectReader reader, XmlNode node)
        {
            XmlNode nd;
            object  v;

            if (_label == null)
            {
                _label = new DrawingLabel(this);
            }
            if (XmlSerialization.ReadValueFromChildNode(node, XML_RelativePosition, out v))
            {
                _label.RelativePosition.Location = (Point)v;
                nd = node.SelectSingleNode(XML_RelativePosition);
                _label.RelativePosition.IsXto0 = XmlSerialization.GetAttributeBool(nd, "xTo0", true);
                _label.RelativePosition.IsYto0 = XmlSerialization.GetAttributeBool(nd, "yTo0", true);
            }
            //
            XmlNode eNode = node.SelectSingleNode(XML_Event);

            try
            {
                _event      = (IEvent)reader.ReadObject(eNode, null);
                _label.Text = _event.ShortDisplayName;
            }
            catch (Exception err)
            {
                MathNode.Log(TraceLogClass.MainForm, err);
            }
            //
            XmlNode ndPos = node.SelectSingleNode(XML_Position);

            if (ndPos != null)
            {
                if (XmlSerialization.ReadValueFromChildNode(ndPos, XML_RelativePosition, out v))
                {
                    RelativePosition.Location = (Point)v;
                    nd = ndPos.SelectSingleNode(XML_RelativePosition);
                    RelativePosition.IsXto0 = XmlSerialization.GetAttributeBool(nd, "xTo0", true);
                    RelativePosition.IsYto0 = XmlSerialization.GetAttributeBool(nd, "yTo0", true);
                }
            }
            //
            _outPortList = new List <EventPortOut>();
            XmlNodeList nds = node.SelectNodes(string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}/{1}", XML_OutPorts, XmlTags.XML_Item));

            foreach (XmlNode n in nds)
            {
                Type         t  = XmlUtil.GetLibTypeAttribute(n);
                EventPortOut po = (EventPortOut)Activator.CreateInstance(t, this);
                po.Event = this.Event;
                po.OnReadFromXmlNode(reader, n);
                _outPortList.Add(po);
            }
            nds = node.SelectNodes(string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}/{1}", XML_InPorts, XmlTags.XML_Item));
            if (nds != null && nds.Count > 0)
            {
                _inPortList = new List <EventPortIn>();
                foreach (XmlNode n in nds)
                {
                    Type        t  = XmlUtil.GetLibTypeAttribute(n);
                    EventPortIn po = (EventPortIn)Activator.CreateInstance(t, this);
                    po.Event = this.Event;
                    po.OnReadFromXmlNode(reader, n);
                    _inPortList.Add(po);
                }
            }
        }
Esempio n. 7
0
        private void Label_box_LostFocus(object sender, RoutedEventArgs e)
        {
            var editingObj = _graphViewer.LayoutEditor.EditingObject;

            if (editingObj == null)
            {
                return;
            }
            var obj = editingObj.DrawingObject as DrawingObject2;

            if (obj == null)
            {
                return;
            }

            if (obj.Label == null)
            {
                if (label_box.Text == "")
                {
                    return;
                }
            }
            else if (obj.Label.Text == label_box.Text)
            {
                return;
            }

            var node = obj as Node;

            if (node != null)
            {
                _graphViewer.updateVNodeLabelText(editingObj as VNode, label_box.Text);
                //var sz = Common.MeasureLabel(label);
                //node.GeometryNode.BoundaryCurve = NodeBoundaryCurves.GetNodeBoundaryCurve(node,sz.Width,sz.Height );
                //(editingObj as VNode).Invalidate();
            }
            else
            {
                var edge = obj as Edge;
                if (edge == null)
                {
                    return;
                }
                var vedge = editingObj as VEdge;
                var label = edge.Label;
                if (label == null)
                {
                    label       = new DrawingLabel(label_box.Text);
                    edge.Label  = label;
                    label.Owner = edge;
                    //var sz = Common.MeasureLabel(label);
                    //edge.GeometryEdge.Label = new Microsoft.Msagl.Core.Layout.Label(sz.Width, sz.Height, edge.GeometryEdge);
                    var llabel = new LLabel();
                    edge.GeometryEdge.Label = llabel;
                    llabel.GeometryParent   = edge.GeometryEdge;
                    label.GeometryLabel     = llabel;

                    //edge.GeometryEdge.Label.UserData = edge.Label;
                    //var fe = _graphViewer.CreateDefaultFrameworkElementForDrawingObject(edge);
                    //var vlabel = new VLabel(edge, fe);
                    //fe.Tag = vlabel;
                    //(editingObj as VEdge).VLabel = vlabel;

                    _graphViewer.SetVEdgeLabel(edge, vedge, _graphViewer.ZIndexOfEdge(edge));
                    _graphViewer.LayoutEditor.AttachLayoutChangeEvent(vedge.VLabel);
                }
                else
                {
                    label.Text = label_box.Text;
                    var textBlock = _graphViewer.drawingObjectsToFrameworkElements[edge] as TextBlock;
                    textBlock.Text = label.Text;
                    //textBlock.InvalidateMeasure();
                    textBlock.Width = Double.NaN;
                    textBlock.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
                    textBlock.Width = textBlock.DesiredSize.Width;
                    //textBlock.Height = textBlock.DesiredSize.Height;
                    //label.GeometryLabel.Width
                }
                //var vedge = _graphViewer.GetIViewerObject(edge) as VEdge;
                //_graphViewer.SetVEdgeLabel(edge, vedge, _graphViewer.ZIndexOfEdge(edge));
                _graphViewer.AssignLabelWidthHeight(edge.GeometryEdge, edge);
                //_graphViewer.LayoutEditor.AttachLayoutChangeEvent(vedge.VLabel);

                //var labelCol = new List<LLabel>();
                //labelCol.Add(label.GeometryLabel);
                //EdgeLabelPlacement lp = new EdgeLabelPlacement(_graphViewer.Graph.GeometryGraph,labelCol);//,label.GeometryLabel)
                //var lp=new EdgeLabelPlacement(_graphViewer.Graph.GeometryGraph, new List<LLabel> { label.GeometryLabel});
                var lp = new EdgeLabelPlacement(_graphViewer.Graph.GeometryGraph, new [] { label.GeometryLabel });
                lp.Run();
                vedge.Invalidate();
                //edge.LabelText = label_box.Text;
                //var vedge = _graphViewer.GetIViewerObject(edge) as VEdge;
                //_graphViewer.SetVEdgeLabel(edge, vedge, _graphViewer.ZIndexOfEdge(edge));
                //vedge.Invalidate();
            }


            //if (label.Text == label_box.Text)
            //    return;
            //label.Text = label_box.Text;
            //obj.Label = label;
        }
 /// <summary>
 /// for clone
 /// </summary>
 /// <param name="label"></param>
 public void SetLabel(DrawingLabel label)
 {
     _label       = label;
     _label.Move += new EventHandler(_label_Move);
 }