// 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); }
// 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); }
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(); } */ }); } }