コード例 #1
0
        public static FilteredSignature createFilteredSignatureFromJavaMethod(string className, string functionName, string methodDescriptor)
        {
            var newFilteredSignature = new FilteredSignature();

            newFilteredSignature.sFunctionClass = className;
            newFilteredSignature.sFunctionName  = functionName;
            // process descriptor
            var lastParentesis = methodDescriptor.LastIndexOf(')');

            if (lastParentesis > -1)
            {
                methodDescriptor = methodDescriptor.Replace('/', '.');
                lastParentesis++;
                newFilteredSignature.sParameters  = methodDescriptor.Substring(0, lastParentesis);
                newFilteredSignature.sReturnClass = methodDescriptor.Substring(lastParentesis);
                // BUG: Major hack to fix the sParameters created by JavaMethod descriptors
                if (newFilteredSignature.sReturnClass == "V")
                {
                    newFilteredSignature.sReturnClass = "void";
                }
                newFilteredSignature.sParameters = newFilteredSignature.sParameters.Replace("(I)", "(int)").Replace("(IL", "(int;").Replace(";IL", ";int;");
                newFilteredSignature.sParameters = newFilteredSignature.sParameters.Replace("(L", "(").Replace("(IL", "(").Replace(";L", ";").Replace(";)", ")");
                if (newFilteredSignature.sParameters[0] == '(' && newFilteredSignature.sParameters[newFilteredSignature.sParameters.Length - 1] == ')')
                {
                    newFilteredSignature.sParameters = newFilteredSignature.sParameters.Substring(1, newFilteredSignature.sParameters.Length - 2);
                }
                // fix the sReturnClass
                if (newFilteredSignature.sReturnClass[0] == 'L' && newFilteredSignature.sReturnClass[newFilteredSignature.sReturnClass.Length - 1] == ';')
                {
                    newFilteredSignature.sReturnClass = newFilteredSignature.sReturnClass.Substring(1, newFilteredSignature.sReturnClass.Length - 2);
                }
                newFilteredSignature.sSignature = newFilteredSignature.getSignature();
            }
            return(newFilteredSignature);
        }
コード例 #2
0
        public static String filterSignature(String sStringToFilter, bool bShowParameters, bool bShowReturnClass,
                                             bool bShowNamespace, int iNamespaceDepth)
        {
            if (DI.dFilteredFuntionSignatures.ContainsKey(sStringToFilter))
            {
                return(DI.dFilteredFuntionSignatures[sStringToFilter].getFilteredSignature(
                           bShowParameters, bShowReturnClass, bShowNamespace, iNamespaceDepth));
            }

            var fsFilteredSignature = new FilteredSignature(sStringToFilter);

            DI.dFilteredFuntionSignatures.Add(sStringToFilter, fsFilteredSignature);
            return(fsFilteredSignature.getFilteredSignature(bShowParameters, bShowReturnClass, bShowNamespace,
                                                            iNamespaceDepth));
        }
コード例 #3
0
 private void filterByFilteredSignature(FilteredSignature filteredSignature)
 {
     setFilter1TextValue(filteredSignature.sSignature, true);
 }
コード例 #4
0
 void TextArea_DragDrop(object sender, DragEventArgs e)
 {
     var fileOrFolder = Dnd.tryToGetFileOrDirectoryFromDroppedObject(e);
     if (fileOrFolder.fileExists())
     {
         loadSourceCodeFile(fileOrFolder);
         return;
     }
     var data = Dnd.tryToGetObjectFromDroppedObject(e);
     if (data != null)
     {
         var dsa = data.GetType().FullName;
         if (data is List<MethodInfo>)
         {
             var methods = (List<MethodInfo>)data;
             if (methods.Count > 0)
             {
                 var filteredSignature = new FilteredSignature(methods[0]);
                 tecSourceCode.ActiveTextAreaControl.TextArea.InsertString(filteredSignature.sFunctionNameAndParams);
                 //  var functionSignature = new FilteredSignature
             }
         }
         else
             tecSourceCode.ActiveTextAreaControl.TextArea.InsertString(data.ToString());
     }
 }
コード例 #5
0
 public Reflection_MethodInfo(MethodInfo method)
 {
     Method = method;
     filteredSignature = new FilteredSignature(method);
 }
コード例 #6
0
        public void onAfterSelectTreeView(TreeNode selectedNode)
        {
            try
            {
                if (selectedNode != null)
                {
                    // populate selectedFilteredSignature object
                    if (selectedNode.Tag != null && selectedNode.Tag.GetType().Name == "FilteredSignature")
                        selectedFilteredSignature = (FilteredSignature) selectedNode.Tag;
                    else
                        selectedFilteredSignature = null;

                    // get fucntion's signature
                    var signature = (selectedFilteredSignature!=null)
                                        ?
                                            selectedFilteredSignature.sOriginalSignature
                                        :                                            
                                            selectedNode.Name;

                    // raise callbacks
                    Callbacks.raiseRegistedCallbacks(eNodeEvent_AfterSelect, new object[] { signature });

                    Callbacks.raiseRegistedCallbacks(_onAfterSelect, new [] { selectedNode.Tag });
                    
                    

                    // need to manual handle this backcolor stuff because we lose it when multiple function's viewers are used at the same time
                    /*            if (selectedNode != null)
                                {
                                    selectedNode.BackColor = Color.White;
                                    selectedNode.ForeColor = Color.Black;
                                }
                                //tnSelectedNode = tvTreeView.SelectedNode;
                                tvTreeView.SelectedNode.BackColor = Color.DarkBlue;
                                tnSelectedNode.ForeColor = Color.White;*/

                    

                    /*if (onTreNodeAfterSelect != null)
                        foreach (Delegate dDelegate in onTreNodeAfterSelect.GetInvocationList())
                        {
                            if (selectedNode.Tag != null &&
                                selectedNode.Tag.GetType().Name == "FilteredSignature")
                                dDelegate.DynamicInvoke(new[]
                                                            {
                                                                ((FilteredSignature) selectedNode.Tag).sOriginalSignature
                                                            });
                            else
                                dDelegate.DynamicInvoke(new[] { selectedNode.Text });

                        }*/
                }
            }
            catch (Exception ex)
            {
                PublicDI.log.error("In tvTreeView_AfterSelect: {0}", ex.Message);
            }
        }
コード例 #7
0
 public void showSelectedMethodDetails(FilteredSignature filteredSignature)
 {
     if (filteredSignature != null)
     {
         tbMethodDetails_Name.invokeOnThread(
             () =>
             {
                 tbMethodDetails_Name.Text = filteredSignature.sFunctionName;
                 tbMethodDetails_OriginalSignature.Text = filteredSignature.sOriginalSignature;
                 tbMethodDetails_Parameters.Text = filteredSignature.sParameters;
                 tbMethodDetails_ReturnType.Text = filteredSignature.sReturnClass;
                 tbMethodDetails_Signature.Text = filteredSignature.sSignature;
                 tbMethodDetails_Type.Text = filteredSignature.sFunctionClass;
             });
     }
 }
コード例 #8
0
 public static void mapMethodsToFilteredSignatures(List<MethodInfo> methodsToMap, ref List<FilteredSignature> filteredSignatures, ref Dictionary<string, MethodInfo> methods_bySignature, bool hideCSharpGeneratedMethods)
 {
     filteredSignatures = new List<FilteredSignature>();
     methods_bySignature = new Dictionary<string, MethodInfo>();
     foreach (var method in methodsToMap)
     {
         var filteredSignature = new FilteredSignature(method);
         if (hideCSharpGeneratedMethods == false || (filteredSignature.sSignature.IndexOf("<>") == -1 &&
                                                      false == filteredSignature.sFunctionName.StartsWith("b__")))
         {
             filteredSignatures.Add(filteredSignature);
             // create methodsLoaded_bySignature                       
             if (methods_bySignature.ContainsKey(filteredSignature.sSignature))
             {
                 PublicDI.log.error("in mapMethodsToFilteredSignatures, repeated signature: {0}", filteredSignature.sSignature);
             }
             else
                 methods_bySignature.Add(filteredSignature.sSignature, method);
         }
         else
         {
             //PublicDI.log.info("Skipping: {0}", method.Name);
         }
     }
 }
コード例 #9
0
ファイル: FilteredSignature.cs プロジェクト: pusp/o2platform
 public static FilteredSignature createFilteredSignatureFromJavaMethod(string className, string functionName, string methodDescriptor)
 {
     var newFilteredSignature = new FilteredSignature();
     newFilteredSignature.sFunctionClass = className;
     newFilteredSignature.sFunctionName = functionName;
     // process descriptor
     var lastParentesis = methodDescriptor.LastIndexOf(')');
     if (lastParentesis > -1)
     {
         methodDescriptor = methodDescriptor.Replace('/', '.');
         lastParentesis++;
         newFilteredSignature.sParameters = methodDescriptor.Substring(0, lastParentesis);
         newFilteredSignature.sReturnClass = methodDescriptor.Substring(lastParentesis);
         // BUG: Major hack to fix the sParameters created by JavaMethod descriptors                
         if (newFilteredSignature.sReturnClass == "V")
         {
             newFilteredSignature.sReturnClass = "void";
         }
         newFilteredSignature.sParameters = newFilteredSignature.sParameters.Replace("(I)", "(int)").Replace("(IL", "(int;").Replace(";IL", ";int;");
         newFilteredSignature.sParameters = newFilteredSignature.sParameters.Replace("(L", "(").Replace("(IL", "(").Replace(";L", ";").Replace(";)", ")");
         if (newFilteredSignature.sParameters[0] == '(' && newFilteredSignature.sParameters[newFilteredSignature.sParameters.Length -1] == ')')
             newFilteredSignature.sParameters = newFilteredSignature.sParameters.Substring(1, newFilteredSignature.sParameters.Length - 2);
         // fix the sReturnClass
         if (newFilteredSignature.sReturnClass[0] == 'L' && newFilteredSignature.sReturnClass[newFilteredSignature.sReturnClass.Length - 1] == ';')
             newFilteredSignature.sReturnClass = newFilteredSignature.sReturnClass.Substring(1,newFilteredSignature.sReturnClass.Length - 2);
         newFilteredSignature.sSignature = newFilteredSignature.getSignature();
     }
     return newFilteredSignature;
 }
コード例 #10
0
ファイル: FilteredSignature.cs プロジェクト: pusp/o2platform
        public static String filterSignature(String sStringToFilter, bool bShowParameters, bool bShowReturnClass,
                                             bool bShowNamespace, int iNamespaceDepth)
        {
            if (DI.dFilteredFuntionSignatures.ContainsKey(sStringToFilter))
                return DI.dFilteredFuntionSignatures[sStringToFilter].getFilteredSignature(
                    bShowParameters, bShowReturnClass, bShowNamespace, iNamespaceDepth);

            var fsFilteredSignature = new FilteredSignature(sStringToFilter);
            DI.dFilteredFuntionSignatures.Add(sStringToFilter, fsFilteredSignature);
            return fsFilteredSignature.getFilteredSignature(bShowParameters, bShowReturnClass, bShowNamespace,
                                                            iNamespaceDepth);
        }