Esempio n. 1
0
        ProcessAfterSelect(TreeNode treeNode)
        {
            if (treeNode != null)
            {
                // remember this node for later
                m_memoryNode = treeNode;

                // don't sort initially, just insert according to the hierarchy
                m_colSorter.Order = SortOrder.None;
                m_txtDesc.Text    = string.Empty;

                if (treeNode.Tag == null)
                {
                    m_pickedTestFunc = null;
                    m_curFuncBucket.Clear();
                }
                else    // see if it is Category based or Hierarchy based
                {
                    string categoryStr = treeNode.Tag as string;
                    if (categoryStr == null)    // if tag is a class type
                    {
                        GetTests((System.Type)treeNode.Tag, m_checkBxBaseTestsInclude.Checked);
                    }
                    else
                    {
                        GetTests(categoryStr);
                    }
                }
                DisplayCurrent();
            }
        }
Esempio n. 2
0
        BuildTree()
        {
            TreeNode categoryItem, objHierItem;

            // extablish the two basic roots of the tree
            categoryItem = AddTreeItem("Categories", null, null, ImageIconList.Test);
            objHierItem  = AddTreeItem("Object Hierarchy", null, null, ImageIconList.Test);

            // For the Object Hierarchy section of the tree, we need to add in the root
            // type to anchor us (for us, the root only makes sense as APIObject)
            System.Type rootType = typeof(Autodesk.AutoCAD.Runtime.RXObject);

            TreeNode rootNode = new TreeNode(rootType.Name);

            rootNode.ImageIndex         = (int)ImageIconList.Class;
            rootNode.SelectedImageIndex = (int)ImageIconList.Class;
            rootNode.Tag = rootType.Name;
            rootNode.Tag = rootType;
            objHierItem.Nodes.Add(rootNode);

            // Add to our cached items of what we've visited
            m_classTypes.Add(rootType);
            m_treeNodes.Add(rootNode);
            m_placedClasses.Add(rootType);
            m_treeItems.Add(rootNode);

            // walk through all the TestFunc buckets and place each function
            // in the appropriate spot in the tree (sorted by class hierarchy).
            // NOTE: they've already been sorted into unique buckets so we
            // don't have to look for duplicates.
            MgdDbgTestFuncInfo tmpTestFuncInfo = null;
            ArrayList          tmpBucket       = null;

            int len = m_funcBuckets.Count;

            for (int i = 0; i < len; i++)
            {
                tmpBucket       = (ArrayList)m_funcBuckets[i];
                tmpTestFuncInfo = (MgdDbgTestFuncInfo)tmpBucket[0];

                if (tmpTestFuncInfo.IsCategoryBased)
                {
                    // just add the new Category to the tree
                    AddTreeItem(tmpTestFuncInfo.Category, tmpTestFuncInfo.Category, categoryItem, ImageIconList.Category);
                }
                else
                {
                    // add an entry for this classType and any intermediate type in the hierarchy
                    AddNodeForClassType(tmpTestFuncInfo.ClassType);
                }
            }
        }
Esempio n. 3
0
        ItemSelected(object sender, System.EventArgs e)
        {
            Debug.Assert((m_lvData.SelectedItems.Count > 1) == false);

            if (m_lvData.SelectedItems.Count != 0)
            {
                m_pickedTestFunc = (MgdDbgTestFuncInfo)m_lvData.SelectedItems[0].Tag;
                m_txtDesc.Text   = m_pickedTestFunc.Description;

                // remember the key of the last selected test
                m_itemKey = m_lvData.SelectedItems[0].Name;
            }
            else
            {
                m_pickedTestFunc = null;
            }
        }
Esempio n. 4
0
        DisplayCurrent()
        {
            m_lvData.BeginUpdate();
            m_lvData.Items.Clear();

            int len = m_curFuncBucket.Count;

            for (int i = 0; i < len; i++)
            {
                MgdDbgTestFuncInfo tmpTestFuncInfo = (MgdDbgTestFuncInfo)m_curFuncBucket[i];
                ListViewItem       lvItem          = new ListViewItem(tmpTestFuncInfo.Label);
                lvItem.Name = tmpTestFuncInfo.Label;

                if (tmpTestFuncInfo.IsCategoryBased)
                {
                    lvItem.SubItems.Add(tmpTestFuncInfo.Category);
                }
                else
                {
                    lvItem.SubItems.Add(tmpTestFuncInfo.ClassType.Name);
                }
                lvItem.SubItems.Add(tmpTestFuncInfo.GetTestType().ToString());
                lvItem.SubItems.Add(tmpTestFuncInfo.Description);
                lvItem.Tag = tmpTestFuncInfo;
                m_lvData.Items.Add(lvItem);
            }
            m_lvData.EndUpdate();

            // if we can remember the last selected test then select it
            if (m_itemKey.Length != 0)
            {
                if (m_lvData.Items[m_itemKey] != null)
                {
                    m_lvData.FocusedItem = m_lvData.Items[m_itemKey];
                    m_lvData.Items[m_itemKey].Selected = true;
                }
            }

            // remove all from current bucket for next selection
            m_curFuncBucket.Clear();
        }
Esempio n. 5
0
        AddFuncToBucket(MgdDbgTestFuncInfo newTestFuncInfo)
        {
            MgdDbgTestFuncInfo tempFuncInfo = null;
            ArrayList          tmpBucket    = null;

            // walk the list of buckets.  If we see one already there that we belong
            // to, just add ourselves.  If not, then add a new bucket with the passed
            // in testFuncInfo as the first member.
            int len = m_funcBuckets.Count;

            for (int i = 0; i < len; i++)
            {
                tmpBucket    = (ArrayList)m_funcBuckets[i];
                tempFuncInfo = (MgdDbgTestFuncInfo)tmpBucket[0]; // get the first element to compare against

                if (newTestFuncInfo.IsCategoryBased)
                {
                    if ((tempFuncInfo.IsCategoryBased) && (tempFuncInfo.Category.CompareTo(newTestFuncInfo.Category) == 0))
                    {
                        tmpBucket.Add(newTestFuncInfo);
                        return;
                    }
                }
                else
                {
                    if (!(tempFuncInfo.IsCategoryBased) && (tempFuncInfo.ClassType == newTestFuncInfo.ClassType))
                    {
                        tmpBucket.Add(newTestFuncInfo);
                        return;
                    }
                }
            }

            // we didn't find an existing bucket, so make a new one and add this as the first item
            ArrayList newBucket = new ArrayList();

            newBucket.Add(newTestFuncInfo);
            m_funcBuckets.Add(newBucket);
        }