public override DiagramShape Pick(PointF p, bool selectableOnly) { if (this.CanView()) { if (!DiagramShape.ContainsRect(this.Bounds, p)) { return(null); } foreach (DiagramShape obj1 in base.Backwards) { DiagramShape obj2 = obj1.Pick(p, selectableOnly); if (obj2 != null) { return(obj2); } } if (!selectableOnly) { return(this); } if (this.CanSelect()) { return(this); } } return(null); }
private void CalculatePaintBounds(DiagramView view) { base.InternalFlags &= -1048577; RectangleF ef1 = this.Bounds; float single1 = ef1.X; float single2 = ef1.Y; float single3 = single1 + ef1.Width; float single4 = single2 + ef1.Height; GroupEnumerator enumerator2 = this.GetEnumerator(); GroupEnumerator enumerator1 = enumerator2.GetEnumerator(); while (enumerator1.MoveNext()) { DiagramShape obj1 = enumerator1.Current; RectangleF ef2 = obj1.Bounds; ef2 = obj1.ExpandPaintBounds(ef2, view); single1 = System.Math.Min(single1, ef2.X); single2 = System.Math.Min(single2, ef2.Y); single3 = System.Math.Max(single3, (float)(ef2.X + ef2.Width)); single4 = System.Math.Max(single4, (float)(ef2.Y + ef2.Height)); } if (view != null) { this.myPaintBoundsShadowOffset = this.GetShadowOffset(view); } this.myLeft = ef1.X - single1; this.myTop = ef1.Y - single2; this.myRight = single3 - (ef1.X + ef1.Width); this.myBottom = single4 - (ef1.Y + ef1.Height); }
internal static void setAllNoClear(DiagramShape obj, bool b) { DiagramPort port1 = obj as DiagramPort; if (port1 != null) { port1.NoClearLinks = b; } else { LineGraph link1 = obj as LineGraph; if (link1 != null) { link1.NoClearPorts = b; } else { GroupShape group1 = obj as GroupShape; if (group1 != null) { GroupEnumerator enumerator1 = group1.GetEnumerator(); while (enumerator1.MoveNext()) { GroupShape.setAllNoClear(enumerator1.Current, b); } } } } }
public override void Paint(Graphics g, DiagramView view) { bool flag1 = view.IsPrinting; RectangleF ef1 = g.ClipBounds; bool flag2 = DiagramShape.ContainsRect(ef1, this.Bounds); GroupEnumerator enumerator2 = this.GetEnumerator(); GroupEnumerator enumerator1 = enumerator2.GetEnumerator(); while (enumerator1.MoveNext()) { DiagramShape obj1 = enumerator1.Current; if (flag1 ? obj1.CanPrint() : obj1.CanView()) { bool flag3 = flag2; if (!flag3) { RectangleF ef2 = obj1.Bounds; ef2 = obj1.ExpandPaintBounds(ef2, view); flag3 = DiagramShape.IntersectsRect(ef2, ef1); } if (flag3) { obj1.Paint(g, view); } } } }
public virtual void InsertPoint(int i, PointF p) { if (i < 0) { throw new ArgumentException("GoPolygon.InsertPoint given an invalid index, less than zero"); } if (i > this.myPointsCount) { i = this.myPointsCount; } base.ResetPath(); int num1 = this.myPoints.Length; if (this.myPointsCount >= num1) { PointF[] tfArray1 = new PointF[System.Math.Max((int)(num1 * 2), (int)(this.myPointsCount + 1))]; Array.Copy(this.myPoints, 0, tfArray1, 0, num1); this.myPoints = tfArray1; } if (this.myPointsCount > i) { Array.Copy(this.myPoints, i, this.myPoints, (int)(i + 1), (int)(this.myPointsCount - i)); } this.myPointsCount++; this.myPoints[i] = p; base.InvalidBounds = true; this.Changed(0x579, i, null, DiagramShape.MakeRect(p), i, null, DiagramShape.MakeRect(p)); }
public override RectangleF ExpandPaintBounds(RectangleF rect, DiagramView view) { if (this.Pen != null) { float single1 = System.Math.Max(System.Math.Max(this.InternalPenWidth, (float)1f), (float)(this.PenInfo.MiterLimit + 1f)); DiagramShape.InflateRect(ref rect, single1, single1); } if (this.Shadowed) { SizeF ef1 = this.GetShadowOffset(view); if (ef1.Width < 0f) { rect.X += ef1.Width; rect.Width -= ef1.Width; } else { rect.Width += ef1.Width; } if (ef1.Height < 0f) { rect.Y += ef1.Height; rect.Height -= ef1.Height; return(rect); } rect.Height += ef1.Height; } return(rect); }
/// <summary> /// Removes the object from the model. /// </summary> public void Remove() { try { if (_entityTypeElement.ParentNode != null) { if (DiagramShape != null) { DiagramShape.Remove(); } _entityTypeElement.ParentNode.RemoveChild(_entityTypeElement); if (Removed != null) { Removed(this, new EventArgs()); } } } catch (Exception ex) { try { ExceptionTools.AddExceptionData(ex, this); } catch { } throw; } }
private void moveTo(int newidx, DiagramShape obj, int oldidx) { RectangleF ef1 = obj.Bounds; this.myObjects.Insert(newidx, obj); this.Changed(0x41d, oldidx, obj, ef1, newidx, obj, ef1); }
public override void AddSelectionHandles(DiagramSelection sel, DiagramShape selectedObj) { base.AddSelectionHandles(sel, selectedObj); if (this.CanReshape() && this.ResizableRadius) { RectangleF ef1 = this.Bounds; PointF tf1 = new PointF(); float single1 = this.MinorRadius; if (this.Orientation == System.Windows.Forms.Orientation.Vertical) { if ((this.Perspective == Perspective.TopLeft) || (this.Perspective == Perspective.TopRight)) { tf1 = new PointF(ef1.X + (ef1.Width / 2f), ef1.Y + (2f * single1)); } else { tf1 = new PointF(ef1.X + (ef1.Width / 2f), (ef1.Y + ef1.Height) - (2f * single1)); } } else if ((this.Perspective == Perspective.TopLeft) || (this.Perspective == Perspective.BottomLeft)) { tf1 = new PointF(ef1.X + (2f * single1), ef1.Y + (ef1.Height / 2f)); } else { tf1 = new PointF((ef1.X + ef1.Width) - (2f * single1), ef1.Y + (ef1.Height / 2f)); } IShapeHandle handle1 = sel.CreateResizeHandle(this, selectedObj, tf1, 0x408, true); base.MakeDiamondResizeHandle(handle1, (this.Orientation == System.Windows.Forms.Orientation.Horizontal) ? 0x40 : 0x80); } }
public override void LayoutChildren(DiagramShape childchanged) { if (!base.Initializing) { DiagramShape obj1 = this.Icon; if (obj1 != null) { DiagramText text1 = this.Label; if (text1 != null) { if (this.DraggableLabel && (childchanged == text1)) { this.myLabelOffset = new SizeF(text1.Left - obj1.Left, text1.Top - obj1.Top); return; } if (this.myLabelOffset.Width > -99999f) { text1.Position = new PointF(obj1.Left + this.myLabelOffset.Width, obj1.Top + this.myLabelOffset.Height); } else { text1.SetSpotLocation(0x20, obj1, 0x80); } } if (this.Port != null) { this.Port.SetSpotLocation(1, obj1, 1); } } } }
public override void Remove(DiagramShape obj) { base.Remove(obj); if (obj == this.myBack) { this.myBack = null; } else if (obj == this.myLabel) { this.myLabel = null; } else if (obj == this.myTopPort) { this.myTopPort = null; } else if (obj == this.myRightPort) { this.myRightPort = null; } else if (obj == this.myBottomPort) { this.myBottomPort = null; } else if (obj == this.myLeftPort) { this.myLeftPort = null; } }
internal static DiagramText FindLabel(DiagramShape obj) { DiagramText text1 = obj as DiagramText; if (text1 != null) { return(text1); } GroupShape group1 = obj as GroupShape; if (group1 != null) { GroupEnumerator enumerator2 = group1.GetEnumerator(); GroupEnumerator enumerator1 = enumerator2.GetEnumerator(); while (enumerator1.MoveNext()) { DiagramText text2 = DiagramNode.FindLabel(enumerator1.Current); if (text2 != null) { return(text2); } } } return(null); }
/// <summary> /// 新增流程图状态节点 /// </summary> /// <param name="dShape">状态节点的实例</param> /// <param name="autoIdInt">流程图Id</param> private int InsertWorkFlowsNode(SqlCommand cmd, DiagramShape dShape, int autoIdInt) { cmd.CommandText = string.Format("insert into BS_WorkFlowsNode (WorkFlowsId, NodeText, Creator, GetTime, PositionX, PositionY, Width, Height, BackColor, ForeColor, FontName, FontSize) values ({0}, '{1}', {2}, getdate(), {3}, {4}, {5}, {6}, '{7}', '{8}', '{9}', {10})", autoIdInt, dShape.Content, SystemInfo.user.AutoId, dShape.Position.X, dShape.Position.Y, dShape.Width, dShape.Height, DataTypeConvert.ColorToString(dShape.Appearance.BackColor), DataTypeConvert.ColorToString(dShape.Appearance.ForeColor), dShape.Appearance.Font.Name, DataTypeConvert.GetInt(dShape.Appearance.Font.Size)); cmd.ExecuteNonQuery(); cmd.CommandText = "select @@IDENTITY"; return(DataTypeConvert.GetInt(cmd.ExecuteScalar())); }
public virtual void Remove(DiagramShape obj) { if (obj != null) { DiagramShapeCollection.fastRemove(this.myObjects, obj); } }
public virtual void Add(DiagramShape obj) { if ((obj != null) && !this.Contains(obj)) { this.myObjects.Add(obj); } }
private DiagramShape _OverlayShape; // What is it that we're using to show where the shape will end up? public SimpleShapeDragger(DiagramSurface surface, MainWindow window, Point startPoint, DiagramShape originalShape) : base(surface, window, startPoint) { _OriginalShape = originalShape; SetupMouse(); }
/// <summary> /// 设置流程图里面所有项目的状态 /// </summary> private void diagramMainState(bool state) { foreach (DiagramItem item in diagramMain.Items) { switch (item.GetType().ToString()) { case "DevExpress.XtraDiagram.DiagramConnector": DiagramConnector dConn = (DiagramConnector)item; dConn.CanSelect = state; break; case "DevExpress.XtraDiagram.DiagramShape": DiagramShape dShape = (DiagramShape)item; dShape.CanCopy = state; dShape.CanDelete = state; dShape.CanMove = state; dShape.CanResize = state; break; } } if (!state) { diagramPointerToolBarItem1.Checked = true; } diagramDocumentRibbonPageGroup1.Enabled = state; diagramClipboardRibbonPageGroup1.Enabled = state; diagramFontRibbonPageGroup1.Enabled = state; diagramConnectorToolBarItem1.Enabled = state; diagramShapeToolSelectionBarItem1.Enabled = state; }
public virtual bool Contains(DiagramShape obj) { if (obj == null) { return(false); } return(this.myObjects.Contains(obj)); }
public virtual void Clear() { for (int num1 = this.myObjects.Count; num1 > 0; num1 = System.Math.Min(num1, this.myObjects.Count)) { DiagramShape obj1 = (DiagramShape)this.myObjects[--num1]; this.Remove(obj1); } }
public override void CopyObjectDelayed(CopyDictionary env, DiagramShape newobj) { base.CopyObjectDelayed(env, newobj); Balloon balloon1 = (Balloon)newobj; balloon1.myAnchor = env[this.myAnchor] as DiagramShape; balloon1.LayoutChildren(null); }
public virtual DiagramShapeBuilder Add() { var item = new DiagramShape(); container.Add(item); return(new DiagramShapeBuilder(item)); }
public override bool GetNearestIntersectionPoint(PointF p1, PointF p2, out PointF result) { RectangleF ef1 = this.Bounds; float single1 = base.InternalPenWidth / 2f; DiagramShape.InflateRect(ref ef1, single1, single1); return(EllipseGraph.NearestIntersectionOnEllipse(ef1, p1, p2, out result)); }
private void ClearPrimaryShape() { if (selectedShape != null) { selectedShape.IsSelected = false; } selectedShape = null; }
public override bool ContainsPoint(PointF p) { RectangleF ef1 = this.Bounds; float single1 = this.InternalPenWidth; DiagramShape.InflateRect(ref ef1, single1 / 2f, single1 / 2f); return(DiagramShape.ContainsRect(ef1, p)); }
public virtual DiagramShapeBuilder Add() { var item = new DiagramShape(); container.Add(item); return new DiagramShapeBuilder(item); }
protected override void OnObservedChanged(DiagramShape observed, int subhint, int oldI, object oldVal, RectangleF oldRect, int newI, object newVal, RectangleF newRect) { base.OnObservedChanged(observed, subhint, oldI, oldVal, oldRect, newI, newVal, newRect); if ((subhint == 0x5dd) && (observed == this.Label)) { this.Text = (string)newVal; } }
public override bool GetNearestIntersectionPoint(PointF p1, PointF p2, out PointF result) { RectangleF ef1 = this.Bounds; float single1 = this.InternalPenWidth; DiagramShape.InflateRect(ref ef1, single1 / 2f, single1 / 2f); return(DiagramShape.GetNearestIntersectionPoint(ef1, p1, p2, out result)); }
public static void TidyAllConnections_AndConnectedShapes(DiagramShape shape) { TidyAllConnections(shape); foreach (var s in shape.ConnectedShapes) { TidyAllConnections(s); } }
public virtual bool Contains(DiagramShape obj) { if (obj != null) { return(obj.Parent == this); } return(false); }
protected override void OnObservedChanged(DiagramShape observed, int subhint, int oldI, object oldVal, RectangleF oldRect, int newI, object newVal, RectangleF newRect) { base.OnObservedChanged(observed, subhint, oldI, oldVal, oldRect, newI, newVal, newRect); if ((subhint == 0x3e9) && (observed == this.Anchor)) { this.LayoutChildren(null); } }
protected override RectangleF ComputeBounds() { GroupEnumerator enumerator1; RectangleF ef1 = this.Bounds; SizeF ef2 = this.TopLeftMargin; SizeF ef3 = this.BottomRightMargin; float single1 = 0f; float single2 = 0f; float single3 = this.Spacing; if (this.LinePenInfo != null) { single3 = System.Math.Max(this.LinePenInfo.Width, single3); } if (this.Orientation == System.Windows.Forms.Orientation.Vertical) { enumerator1 = base.GetEnumerator(); while (enumerator1.MoveNext()) { DiagramShape obj1 = enumerator1.Current; if (obj1 != null) { single1 = System.Math.Max(single1, obj1.Width); if (obj1.CanView()) { if (single2 > 0f) { single2 += single3; } single2 += obj1.Height; } } } } else { enumerator1 = base.GetEnumerator(); while (enumerator1.MoveNext()) { DiagramShape obj2 = enumerator1.Current; if (obj2 != null) { single2 = System.Math.Max(single2, obj2.Height); if (obj2.CanView()) { if (single1 > 0f) { single1 += single3; } single1 += obj2.Width; } } } } ef1.Width = (single1 + ef2.Width) + ef3.Width; ef1.Height = (single2 + ef2.Height) + ef3.Height; return(ef1); }
public DiagramShapeBuilder(DiagramShape settings) { container = settings; }
private ShowNodesEventParameter CreateShowNodesEventParameter(PointFloat pnt,bool singleSelect,DiagramShape currentShape) { var para = new ShowNodesEventParameter(); para.MouseClickPoint = pnt; para.Application = Application; para.CreateShape = (x) => { var rst = new DiagramShapeEx(SDLDiagramShapes.Procedure, x.X, x.Y, x.Width, x.Height); rst.Image = x.GetImage(); _diagram.Items.Add(rst); _diagram.SelectItem(rst); return rst; }; para.ObjectSpace = _os; para.SelectedForms = _diagram.Items.OfType<DiagramShape>().Select(x => (x.Tag as IFlowNode)).ToArray(); para.Shape = currentShape; para.SingleSelect = singleSelect; para.UpdateShape = (node, shape) => { var s = shape as DiagramShape; s.Content = node.Caption; s.Tag = node; }; para.DoShowNavigationItem = (x) => { var snc = Application.MainWindow.GetController<SubSystemNavigationController>(); var sname = x.Split('/'); if (sname.Length > 3) snc.NavigationToSystem(sname[3]); var ctrl = Application.MainWindow.GetController<ShowNavigationItemController>().ShowNavigationItemAction; var toItem = FindChoiceActionItemByModelPath(ctrl.Items, x); ctrl.SelectedItem = toItem; ctrl.DoExecute(toItem); //ctrl.FindItemByIdPath() }; if (currentShape != null) para.SelectedNode = currentShape.Tag as IFlowNode; para.DeletSelectedNode = () => { _diagram.DeleteSelectedItems(); }; para.ViewParameter = new ShowViewParameters(); Flow.ShowNodesView(para); return para; }
private void _diagram_DeleteShape(object sender, DiagramShape e) { if (!_isRefreshing) { var t = e.Tag as IFlowNode; if (t != null) { Flow.RemoveNode(t); t.Delete(); } } }
private void _diagram_EditShape(object sender, DiagramShape e) { var para = CreateShowNodesEventParameter(new PointFloat(0, 0), true, e); Application.ShowViewStrategy.ShowView(para.ViewParameter, new ShowViewSource(null,null)); }