Exemple #1
0
        private ArrayList GetRequiredAssets(string classification)
        {
            ArrayList requiredAssetList = new ArrayList();

            // Break up classification into its parts
            string[] classificationParts = MOG_Filename.SplitClassificationString(classification);

            // Scan our list of required assets looking for any immediate children that should be included?
            foreach (DictionaryEntry requiredAsset in mRequiredAssets)
            {
                MOG_Filename requiredAssetFilename  = new MOG_Filename(requiredAsset.Key.ToString());
                string       requiredClassification = requiredAssetFilename.GetAssetClassification();

                // Check if classification is a parent for requiredClassification?
                if (MOG_Filename.IsParentClassificationString(requiredClassification, classification))
                {
                    // Break up classification into its parts
                    string[] requiredClassificationParts = MOG_Filename.SplitClassificationString(requiredClassification);
                    // Make sure there is an immediate child classification we can extract?
                    if (requiredClassificationParts.Length == classificationParts.Length)
                    {
                        requiredAssetList.Add(requiredAssetFilename);
                    }
                }
            }

            return(requiredAssetList);
        }
Exemple #2
0
        private bool ShowEntireClassificationContents(string classification)
        {
            bool bShowEntireTree = true;

            // Check if we have any properties associated with this tree?
            if (MogPropertyList.Count > 0)
            {
                // Check if we have no mRequiredClassifications?
                if (mRequiredClassifications.Count > 0)
                {
                    int bestMatchingRequiredClassificationLength = 0;

                    // Check if this classification is a child of a required classification?
                    foreach (DictionaryEntry requiredClassification in mRequiredClassifications)
                    {
                        // Is this classification a child of this required classification?
                        if (MOG_Filename.IsParentClassificationString(classification, requiredClassification.Key.ToString()))
                        {
                            // Check if this requiredClassification is a better match?
                            if (requiredClassification.Key.ToString().Length > bestMatchingRequiredClassificationLength)
                            {
                                // Start tracking this as our best match thus far
                                bestMatchingRequiredClassificationLength = requiredClassification.Key.ToString().Length;
                            }
                        }
                    }

                    // Check if we think we found a best match?
                    if (bestMatchingRequiredClassificationLength != 0)
                    {
                        // Check if this classification is a child of a an excluded classification?
                        foreach (DictionaryEntry excludedClassification in mExludedClassifications)
                        {
                            // Is this classification a child of this excluded classification?
                            if (MOG_Filename.IsParentClassificationString(classification, excludedClassification.Key.ToString()))
                            {
                                // Check if this trumps our best match?
                                if (excludedClassification.Key.ToString().Length > bestMatchingRequiredClassificationLength)
                                {
                                    // Looks like the nays take it
                                    bestMatchingRequiredClassificationLength = 0;
                                    break;
                                }
                            }
                        }
                    }

                    // Check if we still have a best possitive match?
                    if (bestMatchingRequiredClassificationLength == 0)
                    {
                        bShowEntireTree = false;
                    }
                }
            }

            return(bShowEntireTree);
        }
Exemple #3
0
        private string ParseForChildClassification(string rootClassification, string childClassification)
        {
            string child = "";

            // Check if classification is a parent for requiredClassification?
            if (MOG_Filename.IsParentClassificationString(childClassification, rootClassification))
            {
                // Break up the classifications into their parts
                string[] rootClassificationParts  = MOG_Filename.SplitClassificationString(rootClassification);
                string[] childClassificationParts = MOG_Filename.SplitClassificationString(childClassification);

                // Make sure there is an immediate child classification we can extract?
                if (childClassificationParts.Length > rootClassificationParts.Length)
                {
                    // Extract the next immediate child classification of childClassificationParts
                    child = childClassificationParts[rootClassificationParts.Length];
                }
            }

            return(child);
        }
Exemple #4
0
        /// <summary>
        /// Shows Assets based on MOG_Property(s) assigned to PropertyList
        /// </summary>
        private void ExpandPropertyTreeDown(TreeNode node)
        {
            BeginUpdate();

            List <string> classificationsToAdd = GetSubClassifications(node);

            string thisClassification     = node.FullPath;
            string thisClassificationPath = MOG_ControllerLibrary.ConstructPathFromLibraryClassification(thisClassification);

            // Check for any local directories
            if (thisClassificationPath.Length > 0)
            {
                DirectoryInfo[] directories = DosUtils.DirectoryGetList(thisClassificationPath, "*.*");
                if (directories != null && directories.Length > 0)
                {
                    foreach (DirectoryInfo directory in directories)
                    {
                        // If we don't already have this classification, add it.
                        if (!classificationsToAdd.Contains(directory.Name))
                        {
                            classificationsToAdd.Add(directory.Name);
                        }
                    }
                }
            }

            // Sort our classifications alphabetically
            classificationsToAdd.Sort();

            // Foreach classification, add it
            foreach (string classification in classificationsToAdd)
            {
                string fullClassification = MOG_Filename.JoinClassificationString(node.FullPath, classification);

                // Only add library classifications
                if (MOG_Filename.IsParentClassificationString(fullClassification, MOG_Filename.GetProjectLibraryClassificationString()))
                {
                    TreeNode classificationNode = new TreeNode(classification);

                    // Is this a non-MOG folder?
                    if (!MOG_ControllerProject.IsValidClassification(fullClassification))
                    {
                        classificationNode.ForeColor = Color.LightGray;
                    }

                    // Assign the default node checked state
                    classificationNode.Checked = node.Checked;

                    classificationNode.Tag = new Mog_BaseTag(classificationNode, classification, RepositoryFocusLevel.Classification, false);
                    ((Mog_BaseTag)classificationNode.Tag).PackageNodeType = PackageNodeTypes.Class;
                    node.Nodes.Add(classificationNode);

                    classificationNode.Name = classificationNode.FullPath;
                    SetImageIndices(classificationNode, GetClassificationImageIndex(classificationNode.FullPath));

                    classificationNode.Nodes.Add(new TreeNode(Blank_Node_Text));
                }
            }

            EndUpdate();
        }