private SDON.Model.Shape generateShapeTemplate()
        {
            SDON.Model.Shape ret = new SDON.Model.Shape();
            ret.Table      = new SDON.Model.Table();
            ret.Table.Cell = new List <SDON.Model.Cell>();
            //ret.Table.RowProperties = new List<SDON.Model.RowProperties>();
            ret.Table.ColumnProperties = new List <SDON.Model.ColumnProperties>();
            //SDON.Model.RowProperties rprop = new SDON.Model.RowProperties();
            SDON.Model.ColumnProperties cprop = new SDON.Model.ColumnProperties();
            SDON.Model.Join             join  = new SDON.Model.Join();
            //rprop.LineThick = 2;
            //rprop.Index = 1;
            cprop.Width      = 40;
            cprop.FixedWidth = true;
            cprop.Index      = 2;

            ret.Table.Columns = 2;
            ret.Table.Rows    = 1;
            //ret.Table.ColumnWidth = 300;
            ret.ShapeType  = "Rect";
            ret.FillColor  = "#FFFFFF";
            ret.TextMargin = 6;
            ret.TextGrow   = SDON.Model.TextGrow.Horizontal;
            //ret.TextFont = "Courier New";
            //ret.Table.RowProperties.Add(rprop);
            ret.Table.ColumnProperties.Add(cprop);

            join.Column = 1;
            join.Row    = 1;
            join.N      = 1;

            ret.Table.Join = new List <SDON.Model.Join>();
            //ret.Table.Join.Add(join);

            return(ret);
        }
        private void generateNodeToTree(int index)
        {
            List <Entry> members;

            SDON.Model.Cell           cell;
            SDON.Model.Cell           auxCell;
            SDON.Model.Join           join;
            SDON.Model.ShapeConnector connector;
            List <SDON.Model.Shape>   parent = null;

            SDON.Model.Shape row;
            SDON.Model.Shape column;
            int  i;
            bool methodsInit    = false;
            bool propertiesInit = false;

            if (_nodesOnTree[index].Entry.Kind == "class")
            {
                members = _classes[_nodesOnTree[index].ContainerIndex].Members;
            }
            else if (_nodesOnTree[index].Entry.Kind == "namespace")
            {
                members = _namespaces[_nodesOnTree[index].ContainerIndex].Members;
            }
            else
            {
                return;
            }

            if (_nodesOnTree[index].Shape.Table.Cell.Last().Row != 1)
            {
                i = _nodesOnTree[index].Shape.Table.Cell.Count - 1;

                while ((i > 0) && (_nodesOnTree[index].Shape.Table.Cell[i].Row != 1))
                {
                    i--;
                }

                _nodesOnTree[index].Shape.Table.Cell.RemoveRange(i, _nodesOnTree[index].Shape.Table.Cell.Count - i);
            }

            //Insert methods (if enabled)
            if (!MethodsInNote)
            {
                for (i = 0; i < members.Count; i++)
                {
                    if (((members[i].Kind == "method") || (members[i].Kind == "function")) && (members[i].Access != "private") &&
                        (members[i].Access != "protected"))
                    {
                        if (!methodsInit)
                        {
                            insertSectionToNode("Methods", _nodesOnTree[index].Shape.Table);
                            methodsInit = true;

                            join        = new SDON.Model.Join();
                            join.Row    = _nodesOnTree[index].Shape.Table.Rows;
                            join.Column = 1;
                            join.N      = 1;

                            if (_nodesOnTree[index].Shape.Table.Join == null)
                            {
                                _nodesOnTree[index].Shape.Table.Join = new List <SDON.Model.Join>();
                            }

                            //_nodesOnTree[index].Shape.Table.Join.Add(join);
                        }

                        insertEntryToNode(members[i], _nodesOnTree[index].Shape.Table);
                    }
                }
            }
            else
            {
                cell    = null;
                auxCell = null;

                for (i = 0; i < members.Count; i++)
                {
                    if (((members[i].Kind == "method") || (members[i].Kind == "function")) && (members[i].Access != "private") &&
                        (members[i].Access != "protected"))
                    {
                        if (!methodsInit)
                        {
                            insertSectionToNode("Methods", _nodesOnTree[index].Shape.Table);
                            methodsInit = true;

                            auxCell      = _nodesOnTree[index].Shape.Table.Cell.Last();
                            auxCell.Note = "";
                        }

                        auxCell.Note += _entries[members[i].EntryID - 1].TagName + generateSignature(members[i].EntryID) + "\n";
                    }
                }
            }

            if (!PropertiesInNote)
            {
                for (i = 0; i < members.Count; i++)
                {
                    if (((members[i].Kind == "property") || (members[i].Kind == "variable")) && (members[i].Access != "private") &&
                        (members[i].Access != "protected"))
                    {
                        if (!propertiesInit)
                        {
                            insertSectionToNode("Properties", _nodesOnTree[index].Shape.Table);
                            propertiesInit = true;

                            join        = new SDON.Model.Join();
                            join.Row    = _nodesOnTree[index].Shape.Table.Rows;
                            join.Column = 1;
                            join.N      = 1;

                            if (_nodesOnTree[index].Shape.Table.Join == null)
                            {
                                _nodesOnTree[index].Shape.Table.Join = new List <SDON.Model.Join>();
                            }

                            //_nodesOnTree[index].Shape.Table.Join.Add(join);
                        }

                        insertEntryToNode(members[i], _nodesOnTree[index].Shape.Table);
                    }
                }
            }
            else
            {
                cell    = null;
                auxCell = null;

                for (i = 0; i < members.Count; i++)
                {
                    if (((members[i].Kind == "property") || (members[i].Kind == "variable")) && (members[i].Access != "private") &&
                        (members[i].Access != "protected"))
                    {
                        if (!propertiesInit)
                        {
                            insertSectionToNode("Properties", _nodesOnTree[index].Shape.Table);
                            propertiesInit = true;

                            auxCell      = _nodesOnTree[index].Shape.Table.Cell.Last();
                            auxCell.Note = "";
                        }

                        auxCell.Note += _entries[members[i].EntryID - 1].TagName + generateSignature(members[i].EntryID) + "\n";
                    }
                }
            }

            parent = findParent(_nodesOnTree[index].Entry.ParentID);

            if (parent != null)
            {
                parent.Add(_nodesOnTree[index].Shape);
            }
        }
Exemplo n.º 3
0
        public SDON.Model.Shape ExportAsShape()
        {
            const bool textBold = true;
            const int  truncate = 20;
            const bool hasKeys  = true;

            SDON.Model.Shape shape = new SDON.Model.Shape();
            shape.TextGrow  = SDON.Model.TextGrow.Horizontal;
            shape.LineColor = "#BFBFBF";

            if (ID != null)
            {
                shape.ID = (int)ID;
            }

            if (!_showColumns)
            {
                shape.FillColor  = "#D8D8D8";
                shape.Label      = _tableName;
                shape.TextMargin = 6;
                shape.TextSize   = 12;
                shape.NoteIcon   = SDON.Model.Icons.Info;

                //SDON.Model.ColumnProperties cp = new SDON.Model.ColumnProperties();
                //cell = new SDON.Model.Cell();
                //
                //cell.Column = 2;
                //cell.Row = 1;
                //cell.Note = "";
                //cell.NoteIcon = SDON.Model.Icons.Info;
                //cell.FillColor = "#D8D8D8";
                //
                //cp.Index = 2;
                //cp.Width = 20;
                //cp.FixedWidth = true;

                for (int i = 0; i < _entries.Count; i++)
                {
                    shape.Note += _entries[i].ColumnName + "\n";
                }

                //shape.Table.Columns = 2;
                //shape.Table.Rows = 1;
                //shape.Table.Cell.Add(cell);
                //shape.Table.ColumnProperties = new List<SDON.Model.ColumnProperties>();
                //shape.Table.ColumnProperties.Add(cp);

                return(shape);
            }

            shape.Table      = new SDON.Model.Table();
            shape.Table.Cell = new List <SDON.Model.Cell>();
            shape.TextMargin = 6;
            SDON.Model.Cell cell;

            shape.Table.Columns = 1;
            shape.Table.Rows    = _entries.Count + 1;
            cell          = new SDON.Model.Cell();
            cell.Label    = _tableName;
            cell.Column   = 1;
            cell.Row      = 1;
            cell.TextBold = textBold;
            //cell.Truncate = truncate;
            cell.FillColor = "#D8D8D8";
            cell.TextSize  = 12;
            shape.Table.Cell.Add(cell);

            SDON.Model.RowProperties rprop; // = new SDON.Model.RowProperties();
            shape.Table.RowProperties = new List <SDON.Model.RowProperties>();
            //rprop.Index = 1;
            //rprop.LineThick = 2;
            //shape.Table.RowProperties.Add(rprop);

            SDON.Model.Join join = null;

            if (_showTypes)
            {
                shape.Table.Columns = 3;

                join             = new SDON.Model.Join();
                join.Row         = 1;
                join.Column      = 1;
                join.N           = 2;
                shape.Table.Join = new List <SDON.Model.Join>();
                shape.Table.Join.Add(join);
            }

            if (hasKeys)
            {
                shape.Table.Columns++;

                SDON.Model.ColumnProperties keyColumnProperties = new SDON.Model.ColumnProperties();
                keyColumnProperties.Width      = 20;
                keyColumnProperties.FixedWidth = true;
                keyColumnProperties.Index      = 1;

                if (shape.Table.ColumnProperties == null)
                {
                    shape.Table.ColumnProperties = new List <SDON.Model.ColumnProperties>();
                }

                shape.Table.ColumnProperties.Add(keyColumnProperties);

                if (join == null)
                {
                    join             = new SDON.Model.Join();
                    join.Row         = 1;
                    join.Column      = 1;
                    shape.Table.Join = new List <SDON.Model.Join>();
                    shape.Table.Join.Add(join);
                    join.N = 0;
                }

                join.N++;
            }

            for (int i = 0; i < _entries.Count; i++)
            {
                if (_showTypes)
                {
                    createRowWithEntry(shape.Table, i + 2, _entries[i], true, hasKeys, true, true);
                }
                else
                {
                    createRowWithEntry(shape.Table, i + 2, _entries[i], true, hasKeys, false, false);
                }

                //cell = new SDON.Model.Cell();
                //cell.Label = _entries[i].ColumnName;
                //cell.Row = i + 2;
                //cell.Column = 1;
                //cell.TextAlignH = SDON.Model.HorizontalAlignments.Left;
                //cell.Truncate = 20;
                //cell.FillColor = "#FFFFFF";
                //shape.Table.Cell.Add(cell);
                //
                //if(_showTypes)
                //{
                //    //Types
                //    cell = new SDON.Model.Cell();
                //    cell.Label = _entries[i].DataType;
                //    cell.Row = i + 2;
                //    cell.Column = 2;
                //    cell.TextAlignH = SDON.Model.HorizontalAlignments.Left;
                //    cell.Truncate = 20;
                //    cell.FillColor = "#FFFFFF";
                //    shape.Table.Cell.Add(cell);
                //
                //    //Size
                //    cell = new SDON.Model.Cell();
                //    cell.Label = (_entries[i].ColumnSize != "NULL") ? _entries[i].ColumnSize : "";
                //    cell.Row = i + 2;
                //    cell.Column = 3;
                //    cell.TextAlignH = SDON.Model.HorizontalAlignments.Left;
                //    cell.Truncate = 20;
                //    cell.FillColor = "#FFFFFF";
                //    shape.Table.Cell.Add(cell);
                //}

                rprop           = new SDON.Model.RowProperties();
                rprop.LineColor = "#D8D8D8";
                rprop.Index     = i + 1;
            }

            return(shape);
        }