Ejemplo n.º 1
0
 private void graphicPropertyGrid_NodeChanged(GraphicNode graphicNode)
 {
   SysCAD.Protocol.Action action = new SysCAD.Protocol.Action();
   action.Modify.Add(graphicNode);
   frmFlowChart.AddAction(action);
 }
Ejemplo n.º 2
0
    private void fcFlowChart_ArrowModified(object sender, ArrowMouseArgs e)
    {
      {
        int i = 2;

        while ((oldControlPoints.Count > 3) && (i < oldControlPoints.Count - 1))
        {

          if (MergePoints(oldControlPoints[i - 1], oldControlPoints[i]))
          {
            oldControlPoints.RemoveAt(i - 1);
            oldControlPoints.RemoveAt(i - 1);

            // Deal with the adjacent points being slightly out of algnment.
            if (Math.Abs(oldControlPoints[i - 1].X - oldControlPoints[i - 2].X) < Math.Abs(oldControlPoints[i - 1].Y - oldControlPoints[i - 2].Y))
            {
              oldControlPoints[i - 1].X = oldControlPoints[i - 2].X;
            }
            else
            {
              oldControlPoints[i - 1].Y = oldControlPoints[i - 2].Y;
            }
            i = 2;
          }

          else
          {
            i++;
          }
        }
      }

      if (MergePoints(oldControlPoints[0], oldControlPoints[1]))
      {
        oldControlPoints.RemoveAt(0);

        if (e.Arrow.CascadeOrientation == MindFusion.FlowChartX.Orientation.Horizontal)
          e.Arrow.CascadeOrientation = MindFusion.FlowChartX.Orientation.Vertical;

        else
          e.Arrow.CascadeOrientation = MindFusion.FlowChartX.Orientation.Horizontal;
      }

      if (MergePoints(oldControlPoints[oldControlPoints.Count - 1], oldControlPoints[oldControlPoints.Count - 2]))
      {
        oldControlPoints.RemoveAt(oldControlPoints.Count - 1);
      }

      form1.ToolStripStatusLabel.Text = "";

      //arrowBeingModified.CustomDraw = CustomDraw.None;
      arrowBeingModifiedSelectionHandle = -1;
      arrowBeingModified = null;
      originAnchorChosen = null;
      destinationAnchorChosen = null;

      GraphicLink graphicLink = (e.Arrow.Tag as EditorLink).GraphicLink as GraphicLink;

      if (oldOriginBox != null)
      {
        (e.Arrow.Tag as EditorLink).GraphicLink.Origin = oldOriginGuid;
        e.Arrow.Origin = oldOriginBox;
        e.Arrow.OrgnAnchor = oldOriginAnchor;
      }

      else if (newOriginBox != null)
      {
        (e.Arrow.Tag as EditorLink).GraphicLink.Origin = newOriginGuid;
        e.Arrow.Origin = newOriginBox;
        e.Arrow.OrgnAnchor = newOriginAnchor;
      }

      if (oldDestinationBox != null)
      {
        (e.Arrow.Tag as EditorLink).GraphicLink.Destination = oldDestinationGuid;
        e.Arrow.Destination = oldDestinationBox;
        e.Arrow.DestAnchor = oldDestinationAnchor;
      }

      else if (newDestinationBox != null)
      {
        (e.Arrow.Tag as EditorLink).GraphicLink.Destination = newDestinationGuid;
        e.Arrow.Destination = newDestinationBox;
        e.Arrow.DestAnchor = newDestinationAnchor;
      }

      State.SetControlPoints(e.Arrow, oldControlPoints);

      EditorNode originItem = e.Arrow.Origin.Tag as EditorNode;
      EditorNode destinationItem = e.Arrow.Destination.Tag as EditorNode;

      //Guid originGuid = Guid.Empty;
      //Guid destinationGuid = Guid.Empty;

      //if (originItem != null)
      //  originGuid = originItem.Guid;

      //if (destinationItem != null)
      //  destinationGuid = destinationItem.Guid;

      String originFullAnchor = null;
      String destinationFullAnchor = null;
      String originAnchorName = null;
      String destinationAnchorName = null;

      originItem.anchorIntToTag.TryGetValue(e.Arrow.OrgnAnchor, out originFullAnchor);

      if (originFullAnchor != null)
      {
        originAnchorName = originFullAnchor.TrimEnd(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' });
        graphicLink.OriginPortID = Convert.ToInt16(originFullAnchor.Substring(originAnchorName.Length), CultureInfo.InvariantCulture);
      }

      destinationItem.anchorIntToTag.TryGetValue(e.Arrow.DestAnchor, out destinationFullAnchor);

      if (destinationFullAnchor != null)
      {
        destinationAnchorName = destinationFullAnchor.TrimEnd(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' });
        graphicLink.DestinationPortID = Convert.ToInt16(destinationFullAnchor.Substring(destinationAnchorName.Length), CultureInfo.InvariantCulture);
      }

      SysCAD.Protocol.Action action = new SysCAD.Protocol.Action();
      if (graphicLink != null)
      {
        GraphicLink newGraphicLink = graphicLink.Clone();
        newGraphicLink.ControlPoints = State.GetControlPoints(e.Arrow.ControlPoints);
        action.Modify.Add(newGraphicLink);
      }


      AddAction(action);

      //if (!state.ModifyGraphicLink(out requestId,
      //  graphicLink.Guid,
      //  graphicLink.Tag,
      //  originGuid,
      //  destinationGuid,
      //  originAnchorName,
      //  originAnchorID,
      //  destinationAnchorName,
      //  destinationAnchorID,
      //  oldControlPoints,
      //  graphicLink.TagArea,
      //  graphicLink.TagAngle))
      //{ // failure, revert back to previous.
      //  // do something here...
      //}

      oldOriginGuid = Guid.Empty;
      oldOriginBox = null;
      oldOriginAnchor = -1;

      oldDestinationGuid = Guid.Empty;
      oldDestinationBox = null;
      oldDestinationAnchor = -1;

      newOriginGuid = Guid.Empty;
      newOriginTag = String.Empty;
      newOriginBox = null;
      newOriginAnchor = -1;

      newDestinationGuid = Guid.Empty;
      newDestinationTag = String.Empty;
      newDestinationBox = null;
      newDestinationAnchor = -1;
    }
Ejemplo n.º 3
0
 private void graphicPropertyGrid_NodeChanged(GraphicNode graphicNode)
 {
     SysCAD.Protocol.Action action = new SysCAD.Protocol.Action();
     action.Modify.Add(graphicNode);
     frmFlowChart.AddAction(action);
 }
Ejemplo n.º 4
0
 public void PropertyGridNodeChanged(GraphicNode graphicNode)
 {
   SysCAD.Protocol.Action action = new SysCAD.Protocol.Action();
   action.Modify.Add(graphicNode);
   AddAction(action);
 }
Ejemplo n.º 5
0
    private void fcFlowChart_ArrowCreated(object sender, ArrowEventArgs e)
    {
      tempArrowKey++;
      String newLinkTag = "A_" + tempArrowKey.ToString(CultureInfo.InvariantCulture);
      e.Arrow.Text = newLinkTag;

      GraphicNode origin = null;
      GraphicNode destination = null;
      ModelNode modelOrigin = null;
      ModelNode modelDestination = null;
      String originPort = "";
      String destinationPort = "";
      Int16 originPortID = -1;
      Int16 destinationPortID = -1;
      List<SysCAD.Protocol.Point> controlPoints;
      SysCAD.Protocol.Rectangle textArea;

      if (newDestinationBox != null)
      {
        if (!((state.ClientProtocol.graphic.Nodes.TryGetValue((newDestinationBox.Tag as EditorNode).Guid, out destination)) &&
          (state.ClientProtocol.model.Nodes.TryGetValue(destination.ModelGuid, out modelDestination))))
        {
          state.ClientProtocol.LogMessage(out requestId, "Node missing for destination Box " + newDestinationBox.Tag, SysCAD.Log.MessageType.Error);
          return;
        }

        if (newDestinationAnchor != -1)
        {
          String fullAnchor = (newDestinationBox.Tag as EditorNode).anchorIntToTag[newDestinationAnchor];
          String anchorName = fullAnchor.TrimEnd(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' });
          Int16 anchorID = Convert.ToInt16(fullAnchor.Substring(anchorName.Length), CultureInfo.InvariantCulture);
          destinationPort = anchorName;
          destinationPortID = anchorID;
        }
      }

      if (oldOriginBox != null)
      {
        if (!((state.ClientProtocol.graphic.Nodes.TryGetValue((newOriginBox.Tag as EditorNode).Guid, out origin)) &&
          (state.ClientProtocol.model.Nodes.TryGetValue(origin.ModelGuid, out modelOrigin))))
        {
          state.ClientProtocol.LogMessage(out requestId, "Node missing for origin Box " + newDestinationBox.Tag, SysCAD.Log.MessageType.Error);
          return;
        }

        if (oldOriginAnchor != -1)
        {
          String fullAnchor = (oldOriginBox.Tag as EditorNode).anchorIntToTag[oldOriginAnchor];
          String anchorName = fullAnchor.TrimEnd(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' });
          Int16 anchorID = Convert.ToInt16(fullAnchor.Substring(anchorName.Length), CultureInfo.InvariantCulture);
          originPort = anchorName;
          originPortID = anchorID;
        }
      }

      controlPoints = State.GetControlPoints(e.Arrow.ControlPoints);

      textArea = new SysCAD.Protocol.Rectangle(0.0, 0.0, 0.0, 0.0);


      fcFlowChart.DeleteObject(e.Arrow);

      form1.ToolStripStatusLabel.Text = "";

      //arrowBeingModified.CustomDraw = CustomDraw.None;
      arrowBeingModifiedSelectionHandle = -1;
      arrowBeingModified = null;
      originAnchorChosen = null;
      destinationAnchorChosen = null;

      ModelLink modelLink = new ModelLink(new Guid(), string.Empty, "Pipe-1", modelOrigin.Guid, modelDestination.Guid, originPort, destinationPort);
      GraphicLink graphicLink = new GraphicLink(new Guid(), modelLink.Guid, string.Empty, origin.Guid, originPortID, destination.Guid, destinationPortID, controlPoints, 1.0, textArea, 0.0, new SysCAD.Protocol.Font(), true);

      SysCAD.Protocol.Action action = new SysCAD.Protocol.Action();

      action.Create.Add(modelLink);
      action.Create.Add(graphicLink);

      AddAction(action);
    }
Ejemplo n.º 6
0
 public void PropertyGridLinkChanged(GraphicLink graphicLink)
 {
   SysCAD.Protocol.Action action = new SysCAD.Protocol.Action();
   action.Modify.Add(graphicLink);
   AddAction(action);
 }
Ejemplo n.º 7
0
 private void AlignTop(object sender, EventArgs e)
 {
   foreach (Box box in fcFlowChart.Selection.Boxes)
   {
     if (box.Tag is EditorNode)
     {
       EditorNode editorNode = box.Tag as EditorNode;
       GraphicNode graphicNode = editorNode.GraphicNode;
       SysCAD.Protocol.Action action = new SysCAD.Protocol.Action();
     }
   }
 }
Ejemplo n.º 8
0
    private void InsertSymbol(object sender, EventArgs e)
    {
      GraphicStencilChangeForm gscf = new GraphicStencilChangeForm(state.GraphicUnselectedThumbnails, state.GraphicSelectedThumbnails, state.ModelStencils, state.GraphicStencils, "");
      if (gscf.ShowDialog() == System.Windows.Forms.DialogResult.OK)
      {
        GraphicStencil graphicStencil = null;
        state.GraphicStencils.TryGetValue(gscf.Value, out graphicStencil);
        if (graphicStencil != null)
        {
          SysCAD.Protocol.Rectangle boundingRect = new SysCAD.Protocol.Rectangle(hoverPoint.X, hoverPoint.Y, 0.0, 0.0);
          boundingRect.Inflate(graphicStencil.DefaultSize.Width, graphicStencil.DefaultSize.Height);
          GraphicNode node = new GraphicNode("", hoverArea.GraphicArea.Path + hoverArea.GraphicArea.Tag, Guid.NewGuid(), gscf.Value, boundingRect, 0.0, graphicStencil.TagArea, 0.0, new SysCAD.Protocol.Font(), true, 1.0, Color.Beige, FillMode.Alternate, false, false);
          SysCAD.Protocol.Action action = new SysCAD.Protocol.Action();
          action.Create.Add(node);
          AddAction(action);
        }
      }

    }
Ejemplo n.º 9
0
    private void DoChange(object sender, ElapsedEventArgs e)
    {
      actionExpire.Stop();
      SysCAD.Protocol.Action action2 = action;
      action = new SysCAD.Protocol.Action();
      if (!state.ClientProtocol.Change(out requestId, action2))
      { // Request was refused, undo manipulation...
        Collection<Guid> modified = new Collection<Guid>();

        foreach (Item item in action2.Modify)
        {
          modified.Add(item.Guid);
        }

        DoModified(modified);
      }

      form1.SetButtonStates();
    }
Ejemplo n.º 10
0
    private void fcFlowChart_BoxModified(object sender, BoxMouseArgs e)
    {
      SysCAD.Protocol.Action action = new SysCAD.Protocol.Action();

      if (e.Box.Tag is EditorNode)
      {
        Box modelBox = (e.Box.Tag as EditorNode).ModelBox;
        Box graphicBox = (e.Box.Tag as EditorNode).GraphicBox;
        Box textBox = (e.Box.Tag as EditorNode).TextBox;


        GraphicNode newGraphicNode = state.GraphicItem((e.Box.Tag as EditorNode).Guid).Clone();
        if (modelBox != null)
        {
          newGraphicNode.BoundingRect = new SysCAD.Protocol.Rectangle(modelBox.BoundingRect);
          newGraphicNode.Angle = modelBox.RotationAngle;

          if (textBox != e.Box)
          {
            ArrowCollection incomingArrows = modelBox.IncomingArrows.Clone();

            foreach (Arrow arrow in incomingArrows)
            {
              GraphicLink newGraphicLink = state.GraphicLink((arrow.Tag as EditorLink).Guid).Clone();

              if (newGraphicLink != null)
              {
                if (!State.CompareControlPoints(arrow.ControlPoints, newGraphicLink.ControlPoints))
                {
                  newGraphicLink.ControlPoints = State.GetControlPoints(arrow.ControlPoints);
                  action.Modify.Add(newGraphicLink);
                }
              }
            }

            ArrowCollection outgoingArrows = modelBox.OutgoingArrows.Clone();

            foreach (Arrow arrow in outgoingArrows)
            {
              GraphicLink newGraphicLink = state.GraphicLink((arrow.Tag as EditorLink).Guid).Clone();

              if (newGraphicLink != null)
              {
                if (!State.CompareControlPoints(arrow.ControlPoints, newGraphicLink.ControlPoints))
                {
                  newGraphicLink.ControlPoints = State.GetControlPoints(arrow.ControlPoints);
                  action.Modify.Add(newGraphicLink);
                }
              }
            }
          }
        }
        else
        {
          newGraphicNode.BoundingRect = new SysCAD.Protocol.Rectangle(graphicBox.BoundingRect);
          newGraphicNode.Angle = graphicBox.RotationAngle;
        }

        newGraphicNode.TagArea = new SysCAD.Protocol.Rectangle(textBox.BoundingRect);
        newGraphicNode.TagAngle = textBox.RotationAngle;
        action.Modify.Add(newGraphicNode);


        //Boxmodified.
        AddAction(action);
      }

      else if (e.Box.Tag is EditorLink)
      {
        Box tagArea = e.Box;
        GraphicLink newLink = state.GraphicLink((e.Box.Tag as EditorLink).Guid).Clone();

        newLink.TagArea = new SysCAD.Protocol.Rectangle(tagArea.BoundingRect);
        newLink.TagAngle = tagArea.RotationAngle;
        action.Modify.Add(newLink);

        AddAction(action);
      }

      else if (e.Box.Tag is EditorArea)
      { // move areas back to bottom after every operation so they stay out of the way.
        EditorArea editorArea = e.Box.Tag as EditorArea;
        editorArea.Box.ZBottom();
      }

      form1.GraphicPropertyGrid.Refresh();

      ContextMenu propertyGridMenu = form1.GraphicPropertyGrid.ContextMenu;

      if (propertyGridMenu == null)
        propertyGridMenu = new ContextMenu();

      propertyGridMenu.MenuItems.Add("Test");

      form1.GraphicPropertyGrid.ContextMenu = propertyGridMenu;
    }