Update tree node selectors for multi-release JAR (MRJAR)
emmanue1
4 years ago
15 | 15 | import java.util.regex.Pattern; |
16 | 16 | |
17 | 17 | public interface TreeNodeFactory { |
18 | String[] getSelectors(); | |
18 | String[] getSelectors(); | |
19 | 19 | |
20 | 20 | Pattern getPathPattern(); |
21 | 21 | |
22 | <T extends DefaultMutableTreeNode & ContainerEntryGettable & UriGettable> T make(API api, Container.Entry entry); | |
22 | <T extends DefaultMutableTreeNode & ContainerEntryGettable & UriGettable> T make(API api, Container.Entry entry); | |
23 | 23 | } |
+17
-1
11 | 11 | public class ClassesDirectoryTreeNodeFactoryProvider extends DirectoryTreeNodeFactoryProvider { |
12 | 12 | protected static final ImageIcon ICON = new ImageIcon(ClassesDirectoryTreeNodeFactoryProvider.class.getClassLoader().getResource("org/jd/gui/images/packagefolder_obj.png")); |
13 | 13 | |
14 | @Override public String[] getSelectors() { return appendSelectors("war:dir:WEB-INF/classes", "jmod:dir:classes"); } | |
14 | @Override public String[] getSelectors() { | |
15 | return appendSelectors( | |
16 | "jar:dir:META-INF/versions", | |
17 | "jar:dir:META-INF/versions/5", | |
18 | "jar:dir:META-INF/versions/6", | |
19 | "jar:dir:META-INF/versions/7", | |
20 | "jar:dir:META-INF/versions/8", | |
21 | "jar:dir:META-INF/versions/9", | |
22 | "jar:dir:META-INF/versions/10", | |
23 | "jar:dir:META-INF/versions/11", | |
24 | "jar:dir:META-INF/versions/12", | |
25 | "jar:dir:META-INF/versions/13", | |
26 | "jar:dir:META-INF/versions/14", | |
27 | "war:dir:WEB-INF/classes", | |
28 | "jmod:dir:classes"); | |
29 | } | |
30 | ||
15 | 31 | @Override public ImageIcon getIcon() { return ICON; } |
16 | 32 | @Override public ImageIcon getOpenIcon() { return null; } |
17 | 33 | } |
+1
-1
22 | 22 | import java.util.Collection; |
23 | 23 | |
24 | 24 | public class DirectoryTreeNodeFactoryProvider extends AbstractTreeNodeFactoryProvider { |
25 | protected static final ImageIcon ICON = new ImageIcon(DirectoryTreeNodeFactoryProvider.class.getClassLoader().getResource("org/jd/gui/images/folder.gif")); | |
25 | protected static final ImageIcon ICON = new ImageIcon(DirectoryTreeNodeFactoryProvider.class.getClassLoader().getResource("org/jd/gui/images/folder.gif")); | |
26 | 26 | protected static final ImageIcon OPEN_ICON = new ImageIcon(DirectoryTreeNodeFactoryProvider.class.getClassLoader().getResource("org/jd/gui/images/folder_open.png")); |
27 | 27 | |
28 | 28 | @Override public String[] getSelectors() { return appendSelectors("*:dir:*"); } |
+1
-1
15 | 15 | @Override |
16 | 16 | public Pattern getPathPattern() { |
17 | 17 | if (externalPathPattern == null) { |
18 | return Pattern.compile("classes\\/.*"); | |
18 | return Pattern.compile("classes\\/(?!META-INF)..*"); | |
19 | 19 | } else { |
20 | 20 | return externalPathPattern; |
21 | 21 | } |
+7
-9
12 | 12 | public class MetainfDirectoryTreeNodeFactoryProvider extends DirectoryTreeNodeFactoryProvider { |
13 | 13 | protected static final ImageIcon ICON = new ImageIcon(MetainfDirectoryTreeNodeFactoryProvider.class.getClassLoader().getResource("org/jd/gui/images/inf_obj.png")); |
14 | 14 | |
15 | @Override public String[] getSelectors() { return appendSelectors("jar:dir:*", "war:dir:*", "ear:dir:*"); } | |
16 | ||
17 | @Override | |
18 | public Pattern getPathPattern() { | |
19 | if (externalPathPattern == null) { | |
20 | return Pattern.compile("(WEB-INF|(WEB-INF\\/classes\\/)?META-IN(F|F\\/.*))"); | |
21 | } else { | |
22 | return externalPathPattern; | |
23 | } | |
15 | @Override public String[] getSelectors() { | |
16 | return appendSelectors( | |
17 | "jar:dir:META-INF", | |
18 | "war:dir:WEB-INF", | |
19 | "war:dir:WEB-INF/classes/META-INF", | |
20 | "ear:dir:META-INF", | |
21 | "jmod:dir:classes/META-INF"); | |
24 | 22 | } |
25 | 23 | |
26 | 24 | @Override public ImageIcon getIcon() { return ICON; } |
+10
-0
17 | 17 | import javax.swing.tree.DefaultMutableTreeNode; |
18 | 18 | import java.io.File; |
19 | 19 | import java.util.Collection; |
20 | import java.util.regex.Pattern; | |
20 | 21 | |
21 | 22 | public class PackageTreeNodeFactoryProvider extends DirectoryTreeNodeFactoryProvider { |
22 | 23 | protected static final ImageIcon ICON = new ImageIcon(PackageTreeNodeFactoryProvider.class.getClassLoader().getResource("org/jd/gui/images/package_obj.png")); |
23 | 24 | |
24 | 25 | @Override public String[] getSelectors() { return appendSelectors("jar:dir:*"); } |
26 | ||
27 | @Override | |
28 | public Pattern getPathPattern() { | |
29 | if (externalPathPattern == null) { | |
30 | return Pattern.compile("(META-INF\\/versions\\/.*)|(?!META-INF)..*"); | |
31 | } else { | |
32 | return externalPathPattern; | |
33 | } | |
34 | } | |
25 | 35 | |
26 | 36 | @Override |
27 | 37 | @SuppressWarnings("unchecked") |
+25
-0
0 | /* | |
1 | * Copyright (c) 2008-2019 Emmanuel Dupuy. | |
2 | * This project is distributed under the GPLv3 license. | |
3 | * This is a Copyleft license that gives the user the right to use, | |
4 | * copy and modify the code freely for non-commercial purposes. | |
5 | */ | |
6 | ||
7 | package org.jd.gui.service.treenode; | |
8 | ||
9 | import java.util.regex.Pattern; | |
10 | ||
11 | public class SpiFileTreeNodeFactoryProvider extends TextFileTreeNodeFactoryProvider { | |
12 | @Override public String[] getSelectors() { | |
13 | return appendSelectors("*:file:*"); | |
14 | } | |
15 | ||
16 | @Override | |
17 | public Pattern getPathPattern() { | |
18 | if (externalPathPattern == null) { | |
19 | return Pattern.compile("(.*\\/)?META-INF\\/services\\/.*"); | |
20 | } else { | |
21 | return externalPathPattern; | |
22 | } | |
23 | } | |
24 | }⏎ |
+1
-1
15 | 15 | @Override |
16 | 16 | public Pattern getPathPattern() { |
17 | 17 | if (externalPathPattern == null) { |
18 | return Pattern.compile("WEB-INF\\/classes\\/.*"); | |
18 | return Pattern.compile("WEB-INF\\/classes\\/(?!META-INF)..*"); | |
19 | 19 | } else { |
20 | 20 | return externalPathPattern; |
21 | 21 | } |
20 | 20 | org.jd.gui.service.treenode.PackageTreeNodeFactoryProvider |
21 | 21 | org.jd.gui.service.treenode.PropertiesFileTreeNodeFactoryProvider |
22 | 22 | org.jd.gui.service.treenode.SqlFileTreeNodeFactoryProvider |
23 | org.jd.gui.service.treenode.SpiFileTreeNodeFactoryProvider | |
23 | 24 | org.jd.gui.service.treenode.TextFileTreeNodeFactoryProvider |
24 | 25 | org.jd.gui.service.treenode.WarFileTreeNodeFactoryProvider |
25 | 26 | org.jd.gui.service.treenode.WarPackageTreeNodeFactoryProvider |