public static List <TK> select <T, TK>(this List <T> list, Func <T, TK> query) { if (list.isNull() || query.isNull()) { return(new List <TK>()); } return(list.Select(query).toList()); }
public static T ifNull <T>(this T obj, Func <T, T> predicate) { if (predicate.isNull()) { return(predicate(obj)); } return(obj); }
public static TreeView add_TreeView_For_CommandClasses_Visualization(this Control control, JavaMetadata_XRefs xRefs, Action <string> onClassSelected, Func <string, string, string> resolveGetterReturnType) { var treeView = control.add_TreeView(); var showHttpName = false; var configPanel = control.insert_Below(30); configPanel.add_CheckBox("Show Http Variable Name", 0, 0, (value) => showHttpName = value) .autoSize(); Func <Java_Method, string> getMethodNodeText = (method) => { if (showHttpName) { return(method.Name .subString(3) .lowerCaseFirstLetter()); } return("{0} {1}".format(method.Name, method.returnType())); //.GenericSignature.isNull() // ? method.ParametersAndReturnType // : method.GenericSignature.returnType()); }; Func <string, string, string> localResolveGetterReturnType = (methodName, returnType) => { if (resolveGetterReturnType.isNull()) { return(returnType); } return(resolveGetterReturnType(methodName, returnType)); }; Action <TreeNode, string> add_Getters = (treeNode, className) => { if (xRefs.Classes_by_Signature.hasKey(className)) { var _class = xRefs.Classes_by_Signature[className]; var getters = _class.java_Methods_Getters_Public().with_Primitive_ReturnType(false); treeNode.add_Nodes(getters.Where((method) => method.returnType() != "java.lang.String"), (method) => getMethodNodeText(method), //(method)=> method.str(), (method) => localResolveGetterReturnType(method.Name, method.returnType()), (method) => true, (method) => Color.DarkBlue); } else { treeNode.add_Node("[Getters] ... class not found: {0}".format(className)) .color(Color.DarkRed); } }; Action <TreeNode, string> add_Setters = (treeNode, className) => { if (xRefs.Classes_by_Signature.hasKey(className)) { var _class = xRefs.Classes_by_Signature[className]; var setters = _class.java_Methods_Setters_Public().with_Primitive_Parameter(true); treeNode.add_Nodes(setters, //(method)=> "{0} {1}".format(method.Name, method.ParametersAndReturnType), (method) => getMethodNodeText(method), (method) => method, (method) => false, (method) => Color.DarkGreen); } else { treeNode.add_Node("[Setters] ... class not found: {0}".format(className)) .color(Color.DarkRed); } }; treeView.beforeExpand <string>( (treeNode, returnType) => { var className = (returnType.starts("L")) ? returnType.removeFirstChar().removeLastChar() : returnType; add_Getters(treeNode, className); add_Setters(treeNode, className); //if (xRefs.Classes_by_Signature.hasKey(className)) // treeNode.add_Node("FOUND Class!!!"); //else // treeNode.add_Node(returnType); }); treeView.afterSelect <string>( (@class) => { if (onClassSelected.notNull()) { onClassSelected(@class); } }); return(treeView); }
public static TreeView add_TreeView_For_CommandClasses_Visualization(this Control control, JavaMetadata_XRefs xRefs, Action<string> onClassSelected, Func<string,string,string> resolveGetterReturnType ) { var treeView = control.add_TreeView(); var showHttpName = false; var configPanel = control.insert_Below(30); configPanel.add_CheckBox("Show Http Variable Name",0,0,(value)=> showHttpName = value) .autoSize(); Func<Java_Method,string> getMethodNodeText = (method) => { if (showHttpName) return method.Name .subString(3) .lowerCaseFirstLetter(); return "{0} {1}".format(method.Name, method.returnType()); //.GenericSignature.isNull() // ? method.ParametersAndReturnType // : method.GenericSignature.returnType()); }; Func<string,string,string> localResolveGetterReturnType = (methodName, returnType) => { if (resolveGetterReturnType.isNull()) return returnType; return resolveGetterReturnType(methodName, returnType); }; Action<TreeNode, string> add_Getters = (treeNode, className)=> { if (xRefs.Classes_by_Signature.hasKey(className)) { var _class = xRefs.Classes_by_Signature[className]; var getters = _class.java_Methods_Getters_Public().with_Primitive_ReturnType(false); treeNode.add_Nodes( getters.Where((method)=>method.returnType()!="java.lang.String"), (method)=> getMethodNodeText(method), //(method)=> method.str(), (method)=> localResolveGetterReturnType(method.Name,method.returnType()), (method)=> true, (method)=> Color.DarkBlue); } else treeNode.add_Node("[Getters] ... class not found: {0}".format(className)) .color(Color.DarkRed); }; Action<TreeNode, string> add_Setters = (treeNode, className)=> { if (xRefs.Classes_by_Signature.hasKey(className)) { var _class = xRefs.Classes_by_Signature[className]; var setters = _class.java_Methods_Setters_Public().with_Primitive_Parameter(true); treeNode.add_Nodes( setters, //(method)=> "{0} {1}".format(method.Name, method.ParametersAndReturnType), (method)=> getMethodNodeText(method), (method)=> method , (method)=> false, (method)=> Color.DarkGreen); } else treeNode.add_Node("[Setters] ... class not found: {0}".format(className)) .color(Color.DarkRed); }; treeView.beforeExpand<string>( (treeNode, returnType)=>{ var className = (returnType.starts("L")) ? returnType.removeFirstChar().removeLastChar() : returnType; add_Getters(treeNode, className); add_Setters(treeNode, className); //if (xRefs.Classes_by_Signature.hasKey(className)) // treeNode.add_Node("FOUND Class!!!"); //else // treeNode.add_Node(returnType); }); treeView.afterSelect<string>( (@class)=>{ if (onClassSelected.notNull()) onClassSelected(@class); }); return treeView; }