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); } } }
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; }
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"); }
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); } } }
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); }