From 125386cc2fe6fd914daa6884962052b6e56006b1 Mon Sep 17 00:00:00 2001 From: Lanlan Date: Mon, 4 Jan 2021 14:22:31 +0800 Subject: [PATCH 1/3] =?UTF-8?q?REPORT-45895=20war=E5=8C=85=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=20=E5=87=BD=E6=95=B0=E7=94=9F=E6=88=902=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/gui/itree/filetree/EnvFileTree.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java index 435d5a465..e6b2c99d4 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java @@ -201,7 +201,8 @@ public class EnvFileTree extends RefreshableJTree { if (filter != null) { java.util.List tList = new ArrayList(); for (int i = 0; i < resFns.length; i++) { - if (filter.accept(resFns[i])) { + // war包部署下会生成两份classes目录,需要去重一下 + if (filter.accept(resFns[i]) && !tList.contains(resFns[i])) { tList.add(resFns[i]); } } From 16c43c8a77dc2992500105f80812693a2191516b Mon Sep 17 00:00:00 2001 From: Lanlan Date: Mon, 4 Jan 2021 16:19:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=94=B9=E7=94=A8TreeSet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/itree/filetree/EnvFileTree.java | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java index e6b2c99d4..461cc1d01 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java @@ -13,6 +13,9 @@ import com.fr.stable.CoreConstants; import com.fr.stable.StableUtils; import com.fr.workspace.WorkContext; +import java.util.Comparator; +import java.util.Set; +import java.util.TreeSet; import javax.swing.BorderFactory; import javax.swing.JTree; import javax.swing.tree.DefaultTreeCellRenderer; @@ -21,7 +24,6 @@ import javax.swing.tree.TreePath; import java.awt.Color; import java.awt.Component; import java.io.File; -import java.util.ArrayList; import java.util.Arrays; /* @@ -199,15 +201,33 @@ public class EnvFileTree extends RefreshableJTree { // 用FileNodeFilter过滤一下 if (filter != null) { - java.util.List tList = new ArrayList(); + Set tSet = new TreeSet(new Comparator() { + private boolean isNull(FileNode node) { + return node == null || node.getName() == null; + } + + @Override + public int compare(FileNode o1, FileNode o2) { + if (isNull(o1) && !isNull(o2)) { + return 1; + } + if (!isNull(o1) && isNull(o2)) { + return -1; + } + if (isNull(o1) && isNull(o2)) { + return 0; + } + return o1.getName().compareTo(o2.getName()); + } + }); for (int i = 0; i < resFns.length; i++) { // war包部署下会生成两份classes目录,需要去重一下 - if (filter.accept(resFns[i]) && !tList.contains(resFns[i])) { - tList.add(resFns[i]); + if (filter.accept(resFns[i])) { + tSet.add(resFns[i]); } } - resFns = tList.toArray(new FileNode[tList.size()]); + resFns = tSet.toArray(new FileNode[tSet.size()]); } Arrays.sort(resFns, new FileNodeComparator(FRContext.getFileNodes().getSupportedTypes())); From bce740a3929954afbf1217ba2f3d4fe9ab03023b Mon Sep 17 00:00:00 2001 From: Lanlan Date: Mon, 4 Jan 2021 16:53:53 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=94=B9=E7=94=A8HashMap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/itree/filetree/EnvFileTree.java | 34 ++++--------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java index 461cc1d01..f3771a0f9 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/EnvFileTree.java @@ -13,9 +13,8 @@ import com.fr.stable.CoreConstants; import com.fr.stable.StableUtils; import com.fr.workspace.WorkContext; -import java.util.Comparator; -import java.util.Set; -import java.util.TreeSet; +import java.util.HashMap; +import java.util.Map; import javax.swing.BorderFactory; import javax.swing.JTree; import javax.swing.tree.DefaultTreeCellRenderer; @@ -201,33 +200,14 @@ public class EnvFileTree extends RefreshableJTree { // 用FileNodeFilter过滤一下 if (filter != null) { - Set tSet = new TreeSet(new Comparator() { - private boolean isNull(FileNode node) { - return node == null || node.getName() == null; - } - - @Override - public int compare(FileNode o1, FileNode o2) { - if (isNull(o1) && !isNull(o2)) { - return 1; - } - if (!isNull(o1) && isNull(o2)) { - return -1; - } - if (isNull(o1) && isNull(o2)) { - return 0; - } - return o1.getName().compareTo(o2.getName()); - } - }); - for (int i = 0; i < resFns.length; i++) { + Map fileNodes = new HashMap<>(); + for (FileNode fileNode : resFns) { // war包部署下会生成两份classes目录,需要去重一下 - if (filter.accept(resFns[i])) { - tSet.add(resFns[i]); + if (filter.accept(fileNode)) { + fileNodes.put(fileNode.getName(), fileNode); } } - - resFns = tSet.toArray(new FileNode[tSet.size()]); + resFns = fileNodes.values().toArray(new FileNode[fileNodes.size()]); } Arrays.sort(resFns, new FileNodeComparator(FRContext.getFileNodes().getSupportedTypes()));