public static void populateFunctionViewerWithTreeViewData(ascx_FunctionsViewer afvFunctionViewer, TreeView tvWithData) { var lsSignatures = new List<string>(); foreach (TreeNode tnTreeNode in tvWithData.Nodes) lsSignatures.Add(tnTreeNode.Name); afvFunctionViewer.showSignatures(lsSignatures); }
public static void viewClassMethods(ascx_FunctionsViewer targetFunctionsViewer , ICirClass targetClass, bool showInheritedMethods, bool ignoreCoreObjectClass) { if (targetClass != null) { O2Thread.mtaThread( () => { targetFunctionsViewer.clearLoadedSignatures(); targetFunctionsViewer.setNamespaceDepth(0); var signaturesToShow = new List<string>(); if (showInheritedMethods) { List<ICirFunction> inheritedSignatures = CirDataAnalysisUtils.getListOfInheritedMethods(targetClass, ignoreCoreObjectClass); foreach (var inheritedSignature in inheritedSignatures) signaturesToShow.Add(inheritedSignature.FunctionSignature); } else signaturesToShow.AddRange(targetClass.dFunctions.Keys.ToList()); targetFunctionsViewer.showSignatures(signaturesToShow); /*var thread = targetFunctionsViewer.showSignatures(signaturesToShow); if (thread != null) { thread.Join(); targetFunctionsViewer.expandNodes(); } */ }); } }
// DC: need to find a more optimized way to do this (this is 4am code :) ) public static void showFilteredMethods(bool useRegExSearch,string methodType, string methodName, string parameterType, string returnType, List<FilteredSignature> filteredSignatures, ascx_FunctionsViewer functionsViewer) { var typesFilter = new List<FilteredSignature>(); var methodsFilter = new List<FilteredSignature>(); var parametersFilter = new List<FilteredSignature>(); var returnTypeFilter = new List<FilteredSignature>(); // methodType if (methodType == "") typesFilter = filteredSignatures; else foreach (var filteredSignature in filteredSignatures) { if (useRegExSearch) { if (RegEx.findStringInString(filteredSignature.sFunctionClass, methodType)) typesFilter.Add(filteredSignature); } else if (filteredSignature.sFunctionClass.Contains(methodType)) typesFilter.Add(filteredSignature); } // methodName if (methodName == "") methodsFilter = typesFilter; else foreach (var filteredSignature in typesFilter) { if (useRegExSearch) { if (RegEx.findStringInString(filteredSignature.sFunctionName, methodName)) methodsFilter.Add(filteredSignature); } else if (filteredSignature.sFunctionName.Contains(methodName)) methodsFilter.Add(filteredSignature); } // parameterType if (parameterType == "") parametersFilter = methodsFilter; else foreach (var filteredSignature in methodsFilter) { if (useRegExSearch) { if (RegEx.findStringInString(filteredSignature.sParameters, parameterType)) parametersFilter.Add(filteredSignature); } else if (filteredSignature.sParameters.Contains(parameterType)) parametersFilter.Add(filteredSignature); } // returnType if (returnType == "") returnTypeFilter = parametersFilter; else foreach (var filteredSignature in parametersFilter) { if (useRegExSearch) { if (RegEx.findStringInString(filteredSignature.sReturnClass, returnType)) returnTypeFilter.Add(filteredSignature); } else if (filteredSignature.sReturnClass.Contains(returnType)) returnTypeFilter.Add(filteredSignature); } // get list of signatures to show using the last filter result (returnTypeFilter) var signaturesToShow = new List<string>(); foreach (var filteredSignature in returnTypeFilter) signaturesToShow.Add(filteredSignature.sSignature); functionsViewer.showSignatures(signaturesToShow); }