Ejemplo n.º 1
0
        private List <StockTypeShape> CreateStockTypeShapes()
        {
            List <StockTypeShape> l  = new List <StockTypeShape>();
            DataSheet             ds = this.m_DataFeed.Project.GetDataSheet(Constants.DATASHEET_STOCK_TYPE_NAME);

            foreach (DataRow dr in this.m_FlowDiagramData.Rows)
            {
                if (dr.RowState != DataRowState.Deleted)
                {
                    int    StockTypeId = Convert.ToInt32(dr[Constants.STOCK_TYPE_ID_COLUMN_NAME], CultureInfo.InvariantCulture);
                    string DisplayName = ds.ValidationTable.GetDisplayName(StockTypeId);
                    int    ShapeRow    = -1;
                    int    ShapeColumn = -1;
                    string Location    = Convert.ToString(dr[Constants.LOCATION_COLUMN_NAME], CultureInfo.InvariantCulture);

                    LocationToRowCol(Location, ref ShapeRow, ref ShapeColumn);

                    if (ShapeRow > Constants.DIAGRAM_MAX_ROWS || ShapeColumn > Constants.DIAGRAM_MAX_COLUMNS)
                    {
                        Debug.Assert(false);
                        continue;
                    }

                    StockTypeShape NewShape = new StockTypeShape(StockTypeId, DisplayName);

                    NewShape.Row    = ShapeRow;
                    NewShape.Column = ShapeColumn;

                    l.Add(NewShape);
                }
            }

            return(l);
        }
Ejemplo n.º 2
0
 public void SelectStockTypeShape(int stockTypeId)
 {
     if (this.m_ShapeLookup.ContainsKey(stockTypeId))
     {
         StockTypeShape s = this.m_ShapeLookup[stockTypeId];
         this.SelectShape(s);
     }
 }
Ejemplo n.º 3
0
        private static FlowPathwayLine CreatePathwayLineToSelf(StockTypeShape shape, FlowPathway pathway)
        {
            FlowPathwayLine l = new FlowPathwayLine(Constants.DIAGRAM_FLOW_PATHWAY_LINE_COLOR, pathway);
            const int       PT_CIRCLE_RADIUS = 10;
            int             lrx = shape.Bounds.X + shape.Bounds.Width - PT_CIRCLE_RADIUS;
            int             lry = shape.Bounds.Y + shape.Bounds.Height - PT_CIRCLE_RADIUS;
            Rectangle       rc  = new Rectangle(lrx, lry, 2 * PT_CIRCLE_RADIUS, 2 * PT_CIRCLE_RADIUS);

            l.AddEllipse(rc);
            return(l);
        }
Ejemplo n.º 4
0
        private void FillIncomingPathways(StockTypeShape shape)
        {
            DataRow[] IncomingRows = this.GetIncomingPathways(shape.StockTypeId);

            foreach (DataRow dr in IncomingRows)
            {
                Debug.Assert(Convert.ToInt32(dr[Constants.TO_STOCK_TYPE_ID_COLUMN_NAME], CultureInfo.InvariantCulture) == shape.StockTypeId);

                FlowPathway fp = DataTableUtilities.CreateFlowPathway(dr);
                shape.IncomingFlowPathways.Add(fp);
            }
        }
Ejemplo n.º 5
0
        private static FlowPathwayLine CreateNullFromStockTypeCue(StockTypeShape shape, FlowPathway fp)
        {
            int             X1   = shape.Bounds.X - Constants.FLOW_PATHWAY_NULL_STOCK_TYPE_CUE_SIZE;
            int             Y1   = shape.Bounds.Y - Constants.FLOW_PATHWAY_NULL_STOCK_TYPE_CUE_SIZE;
            int             X2   = shape.Bounds.X;
            int             Y2   = shape.Bounds.Y;
            FlowPathwayLine Line = new FlowPathwayLine(Constants.DIAGRAM_FLOW_PATHWAY_LINE_COLOR, fp);

            Line.AddLineSegment(X1, Y1, X2, Y2);
            Line.AddArrowSegments(X2, Y2, BoxArrowDiagramArrowDirection.Southeast);

            return(Line);
        }
Ejemplo n.º 6
0
        private void DeleteStockTypeShape(StockTypeShape shape)
        {
            DataRow dr = this.GetStockTypeRecord(shape.StockTypeId);

            if (dr.RowState == DataRowState.Added)
            {
                this.m_FlowDiagramData.Rows.Remove(dr);
            }
            else
            {
                dr.Delete();
            }
        }
Ejemplo n.º 7
0
        private void RefreshFlowPathwayLines()
        {
            this.ClearLines();

            if (this.Shapes.Count() == 0)
            {
                return;
            }

            foreach (StockTypeShape Shape in this.Shapes)
            {
                Shape.ResetConnectorPoints();
            }

            Dictionary <string, FlowPathwayLine> AlreadyAdded = new Dictionary <string, FlowPathwayLine>();

            foreach (StockTypeShape FromShape in this.Shapes)
            {
                foreach (FlowPathway Pathway in FromShape.OutgoingFlowPathways)
                {
                    FlowPathwayLine l = null;

                    if (!Pathway.ToStockTypeId.HasValue)
                    {
                        continue;
                    }

                    StockTypeShape ToShape = this.m_ShapeLookup[Pathway.ToStockTypeId.Value];
                    string         Lookup  = string.Format(CultureInfo.InvariantCulture, "k1{0}-k2{1}", FromShape.StockTypeId, Pathway.ToStockTypeId);

                    if (AlreadyAdded.ContainsKey(Lookup))
                    {
                        FlowPathwayLine ExistingLine = AlreadyAdded[Lookup];

                        l            = new FlowPathwayLine(Constants.DIAGRAM_FLOW_PATHWAY_LINE_COLOR, Pathway);
                        l.RenderPath = ExistingLine.CloneRenderPath();
                    }
                    else
                    {
                        if (FromShape == ToShape)
                        {
                            l = CreatePathwayLineToSelf(FromShape, Pathway);
                        }
                        else
                        {
                            l = new FlowPathwayLine(Constants.DIAGRAM_FLOW_PATHWAY_LINE_COLOR, Pathway);
                            this.FillLineSegments(FromShape, ToShape, l, BoxArrowDiagramConnectorMode.Vertical);
                        }

                        AlreadyAdded.Add(Lookup, l);
                    }
                    this.AddLine(l);
                }

                foreach (FlowPathway Pathway in FromShape.OutgoingFlowPathways)
                {
                    if (!Pathway.ToStockTypeId.HasValue)
                    {
                        this.AddLine(CreateNullToStockTypeCue(FromShape, Pathway));
                        break;
                    }
                }

                foreach (FlowPathway Pathway in FromShape.IncomingFlowPathways)
                {
                    if (!Pathway.FromStockTypeId.HasValue)
                    {
                        this.AddLine(CreateNullFromStockTypeCue(FromShape, Pathway));
                        break;
                    }
                }
            }
        }