Exemplo n.º 1
0
 /// <summary>
 /// Create a node for the given file.
 /// </summary>
 internal static Node Create(SourceFile source, string fileName)
 {
     var builder = Builders.FirstOrDefault(x => x.Supports(source, fileName));
     if (builder != null)
         return builder.Create(source, fileName);
     return new UnknownFileNode(source, fileName);
 }
Exemplo n.º 2
0
 /// <summary>
 /// Default ctor
 /// </summary>
 public JavaClassFileNode(SourceFile source, string fileName)
     : base(source, fileName)
 {
     /*classDef = Source.Jar.OpenClass(fileName);
     Text = classDef.ClassName;
     ImageIndex = classDef.IsInterface ? 5 : 2;*/
 }
Exemplo n.º 3
0
 /// <summary>
 /// Can this builder create a node for the given filename in the given APK?
 /// </summary>
 public bool Supports(SourceFile source, string fileName)
 {
     fileName = fileName.ToLower();
     if (fileName.Contains("meta-inf"))
     {
         return fileName.EndsWith(".mf") || fileName.EndsWith(".sf");
     }
     return false;
 }
Exemplo n.º 4
0
 /// <summary>
 /// Default ctor
 /// </summary>
 public DexFileNode(SourceFile source, string fileName)
     : base(source, fileName)
 {
 }
Exemplo n.º 5
0
 /// <summary>
 /// Default ctor
 /// </summary>
 public UnknownFileNode(SourceFile source, string fileName)
     : base(source, fileName)
 {
 }
Exemplo n.º 6
0
 /// <summary>
 /// Can this builder create a node for the given filename in the given APK?
 /// </summary>
 public bool Supports(SourceFile source, string fileName)
 {
     return source.IsApk && fileName.Equals("resources.arsc", StringComparison.OrdinalIgnoreCase);
 }
Exemplo n.º 7
0
 /// <summary>
 /// Default ctor
 /// </summary>
 protected FileNode(SourceFile source, string fileName)
 {
     this.source = source;
     this.fileName = fileName;
     Text = Path.GetFileName(fileName);
 }
Exemplo n.º 8
0
 /// <summary>
 /// Create a node for the given filename in the given APK?
 /// </summary>
 public Node Create(SourceFile source, string fileName)
 {
     return(new Pkcs12FileNode(source, fileName));
 }
Exemplo n.º 9
0
 /// <summary>
 /// Can this builder create a node for the given filename in the given APK?
 /// </summary>
 public bool Supports(SourceFile source, string fileName)
 {
     return(fileName.EndsWith(".p12", StringComparison.OrdinalIgnoreCase));
 }
Exemplo n.º 10
0
 /// <summary>
 /// Create a node for the given filename in the given APK?
 /// </summary>
 public Node Create(SourceFile source, string fileName)
 {
     return new JavaClassFileNode(source, fileName);
 }
Exemplo n.º 11
0
        /// <summary>
        /// Open the given file.
        /// </summary>
        internal void Open(string path)
        {
            if (source != null)
            {
                source.Dispose();
            }
            source = null;
            try
            {
                treeView.BeginUpdate();
                treeView.Nodes.Clear();
                mainContainer.Panel2.Controls.Clear();

                source = SourceFile.Open(path, this);
                foreach (var fileName in source.FileNames.OrderBy(x => x))
                {
                    var parent = treeView.Nodes.GetParentForFile(Path.GetDirectoryName(fileName), 1, new[] { '/', '\\' });
                    parent.Add(NodeBuilders.Create(source, fileName));
                }

                foreach (Node node in treeView.Nodes)
                {
                    node.EnsureChildNodesCreated();
                }

                //treeView.Sort();
                Text = string.Format("{0} - [{1}]", Application.ProductName, path);

                // Add to MRU
                RecentlyUsedFiles.Add(path);

                // Try to re-open last known tree path
                TreePath = RecentlyUsedFiles.LastTreePath;
            }
            catch (Exception ex)
            {
                var msg = string.Format("Open file {0} failed: {1}", path, ex.Message);
                MessageBox.Show(msg, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                ErrorLog.DumpError(ex);
            }
            finally
            {
                treeView.EndUpdate();
            }
        }
Exemplo n.º 12
0
 /// <summary>
 /// Default ctor
 /// </summary>
 public Pkcs12FileNode(SourceFile source, string fileName)
     : base(source, fileName)
 {
 }
Exemplo n.º 13
0
 /// <summary>
 /// Default ctor
 /// </summary>
 public XmlFileNode(SourceFile source, string fileName)
     : base(source, fileName)
 {
 }
Exemplo n.º 14
0
 /// <summary>
 /// Default ctor
 /// </summary>
 protected FileNode(SourceFile source, string fileName)
 {
     this.source   = source;
     this.fileName = fileName;
     Text          = Path.GetFileName(fileName);
 }
Exemplo n.º 15
0
 /// <summary>
 /// Can this builder create a node for the given filename in the given APK?
 /// </summary>
 public bool Supports(SourceFile source, string fileName)
 {
     return fileName.EndsWith(".dex", StringComparison.OrdinalIgnoreCase);
 }
Exemplo n.º 16
0
 /// <summary>
 /// Default ctor
 /// </summary>
 public Pkcs12FileNode(SourceFile source, string fileName)
     : base(source, fileName)
 {
 }
Exemplo n.º 17
0
 /// <summary>
 /// Create a node for the given filename in the given APK?
 /// </summary>
 public Node Create(SourceFile source, string fileName)
 {
     return new DexFileNode(source, fileName);
 }
Exemplo n.º 18
0
 /// <summary>
 /// Can this builder create a node for the given filename in the given APK?
 /// </summary>
 public bool Supports(SourceFile source, string fileName)
 {
     return source.IsJar && fileName.EndsWith(".class", StringComparison.OrdinalIgnoreCase);
 }