From 72b5b8e035278a4af345b6666cddaa5a3466f17c Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Fri, 29 Dec 2017 01:41:25 +0800 Subject: [PATCH 1/5] =?UTF-8?q?REPORT-6296=20REPORT-6303=20AF=E6=94=B9?= =?UTF-8?q?=E8=89=AFbugfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 29 ++++++++++++++++--- .../manager/impl/FileSearchManager.java | 20 +++++++++++-- .../manager/impl/PluginSearchManager.java | 12 +++++++- 3 files changed, 53 insertions(+), 8 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index fe7b66aeca..a5c1dcd75e 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -795,13 +795,34 @@ public class AlphaFineDialog extends UIDialog { * @param selectedValue */ private void rebuildShowMoreList(int index, MoreModel selectedValue) { - SearchResult moreResult = getMoreResult(selectedValue); if ((selectedValue).getContent().equals(Inter.getLocText("FR-Designer_AlphaFine_ShowLess"))) { - for (int i = 0; i < moreResult.size(); i++) { - this.searchListModel.add(index + AlphaFineConstants.SHOW_SIZE + 1 + i, moreResult.get(i)); + splitLabel.setIcon(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigloading.gif"))); + refreshContainer(); + if (this.searchWorker != null && !this.searchWorker.isDone()) { + this.searchWorker.cancel(true); + this.searchWorker = null; } + this.searchWorker = new SwingWorker() { + @Override + protected Object doInBackground() throws Exception { + splitLabel.setIcon(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigloading.gif"))); + for (int i = 0; i < getMoreResult(selectedValue).size(); i++) { + searchListModel.add(index + AlphaFineConstants.SHOW_SIZE + 1 + i, getMoreResult(selectedValue).get(i)); + } + return null; + } + + @Override + protected void done() { + if (!isCancelled()) { + splitLabel.setIcon(null); + } + } + }; + this.searchWorker.execute(); + } else { - for (int i = 0; i < moreResult.size(); i++) { + for (int i = 0; i < getMoreResult(selectedValue).size(); i++) { this.searchListModel.remove(index + AlphaFineConstants.SHOW_SIZE + 1); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java index 22f4424c9f..8da604ab13 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java @@ -39,6 +39,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { private static FileSearchManager fileSearchManager = null; private SearchResult filterModelList; private SearchResult lessModelList; + private SearchResult moreModelList; private List fileNodes = null; //停止搜索 private boolean stopSearch = false; @@ -73,6 +74,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { public synchronized SearchResult getLessSearchResult(String searchText) { this.filterModelList = new SearchResult(); this.lessModelList = new SearchResult(); + this.moreModelList = new SearchResult(); searchText = dealWithSearchText(searchText); if (StringUtils.isBlank(searchText) || ComparatorUtils.equals(searchText, DS_NAME)) { lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer_Templates"))); @@ -101,16 +103,20 @@ public class FileSearchManager implements AlphaFineSearchProvider { @Override public SearchResult getMoreSearchResult(String searchText) { + if (moreModelList != null && !moreModelList.isEmpty()) { + return moreModelList; + } this.filterModelList = new SearchResult(); this.lessModelList = new SearchResult(); + this.moreModelList = new SearchResult(); searchText = dealWithSearchText(searchText); Env env = FRContext.getCurrentEnv(); AlphaFineHelper.checkCancel(); isContainCpt = true; isContainFrm = true; doSearch(searchText, false, env); - lessModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size())); - return lessModelList; + moreModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size())); + return moreModelList; } private void doSearch(String searchText, boolean needMore, Env env) { @@ -193,7 +199,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { if (!AlphaFineHelper.getFilterResult().contains(model)) { filterModelList.add(model); } - if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { + if(filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { stopSearch = true; } isAlreadyContain = true; @@ -272,4 +278,12 @@ public class FileSearchManager implements AlphaFineSearchProvider { public void setContainFrm(boolean containFrm) { isContainFrm = containFrm; } + + public SearchResult getMoreModelList() { + return moreModelList; + } + + public void setMoreModelList(SearchResult moreModelList) { + this.moreModelList = moreModelList; + } } \ No newline at end of file diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java index 2978eee40e..17cd01f584 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java @@ -15,6 +15,8 @@ import com.fr.general.http.HttpClient; import com.fr.json.JSONArray; import com.fr.json.JSONException; import com.fr.json.JSONObject; +import com.fr.plugin.basic.version.Version; +import com.fr.plugin.basic.version.VersionIntervalFactory; import com.fr.stable.StringUtils; import java.io.UnsupportedEncodingException; @@ -37,10 +39,18 @@ public class PluginSearchManager implements AlphaFineSearchProvider { } + private static boolean isCompatibleCurrentEnv(String envVersion){ + return VersionIntervalFactory.create(envVersion).contain(Version.currentEnvVersion()); + } + private static PluginModel getPluginModel(JSONObject object, boolean isFromCloud) { String name = object.optString("name"); String content = object.optString("description"); String pluginId = object.optString("pluginid"); + String envVersion = object.optString("envversion"); + if (!isCompatibleCurrentEnv(envVersion)) { + return null; + } int id = object.optInt("id"); int searchCount = object.optInt("searchCount"); String imageUrl = null; @@ -107,7 +117,7 @@ public class PluginSearchManager implements AlphaFineSearchProvider { for (int i = 0; i < jsonArray.length(); i++) { AlphaFineHelper.checkCancel(); PluginModel cellModel = getPluginModel(jsonArray.optJSONObject(i), false); - if (!AlphaFineHelper.getFilterResult().contains(cellModel)) { + if (cellModel != null && !AlphaFineHelper.getFilterResult().contains(cellModel)) { searchResult.add(cellModel); } } From b7af29a8388f0b77b8900bcf87bd66be54d983ab Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Fri, 29 Dec 2017 09:10:24 +0800 Subject: [PATCH 2/5] rt --- .../mainframe/alphafine/component/AlphaFineDialog.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index a5c1dcd75e..ea50d88268 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -390,7 +390,6 @@ public class AlphaFineDialog extends UIDialog { */ private void rebuildList(String searchText) { resetContainer(); - if (searchText.startsWith(ADVANCED_SEARCH_MARK)) { if (searchText.startsWith(ACTION_MARK_SHORT) || searchText.startsWith(ACTION_MARK)) { storeText = searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length()); @@ -624,6 +623,7 @@ public class AlphaFineDialog extends UIDialog { private void dealWithMoreOrLessResult(int index, MoreModel selectedValue) { if (ComparatorUtils.equals(Inter.getLocText("FR-Designer_AlphaFine_ShowAll"), selectedValue.getContent())) { selectedValue.setContent(Inter.getLocText("FR-Designer_AlphaFine_ShowLess")); + rebuildShowMoreList(index, selectedValue); } else { selectedValue.setContent(Inter.getLocText("FR-Designer_AlphaFine_ShowAll")); @@ -796,8 +796,7 @@ public class AlphaFineDialog extends UIDialog { */ private void rebuildShowMoreList(int index, MoreModel selectedValue) { if ((selectedValue).getContent().equals(Inter.getLocText("FR-Designer_AlphaFine_ShowLess"))) { - splitLabel.setIcon(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigloading.gif"))); - refreshContainer(); + splitLabel.setIcon(new ImageIcon(getClass().getResource(AlphaFineConstants.IMAGE_URL + "bigloading.gif"))); if (this.searchWorker != null && !this.searchWorker.isDone()) { this.searchWorker.cancel(true); this.searchWorker = null; @@ -805,7 +804,6 @@ public class AlphaFineDialog extends UIDialog { this.searchWorker = new SwingWorker() { @Override protected Object doInBackground() throws Exception { - splitLabel.setIcon(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigloading.gif"))); for (int i = 0; i < getMoreResult(selectedValue).size(); i++) { searchListModel.add(index + AlphaFineConstants.SHOW_SIZE + 1 + i, getMoreResult(selectedValue).get(i)); } From 8a989b4977d1a169b68209aa5c4044ff56524aa9 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 2 Jan 2018 10:53:28 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=89=93=E5=8C=85=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index ea50d88268..d6c216ff4e 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -664,7 +664,9 @@ public class AlphaFineDialog extends UIDialog { searchResultList.setSelectedIndex(searchResultList.getSelectedIndex() + 1); } else if (e.getKeyCode() == KeyEvent.VK_UP) { searchResultList.setSelectedIndex(searchResultList.getSelectedIndex() - 1); - } else escAlphaFineDialog(e); + } else { + escAlphaFineDialog(e); + } } }); @@ -794,7 +796,7 @@ public class AlphaFineDialog extends UIDialog { * @param index * @param selectedValue */ - private void rebuildShowMoreList(int index, MoreModel selectedValue) { + private void rebuildShowMoreList(int index, final MoreModel selectedValue) { if ((selectedValue).getContent().equals(Inter.getLocText("FR-Designer_AlphaFine_ShowLess"))) { splitLabel.setIcon(new ImageIcon(getClass().getResource(AlphaFineConstants.IMAGE_URL + "bigloading.gif"))); if (this.searchWorker != null && !this.searchWorker.isDone()) { @@ -804,8 +806,9 @@ public class AlphaFineDialog extends UIDialog { this.searchWorker = new SwingWorker() { @Override protected Object doInBackground() throws Exception { - for (int i = 0; i < getMoreResult(selectedValue).size(); i++) { - searchListModel.add(index + AlphaFineConstants.SHOW_SIZE + 1 + i, getMoreResult(selectedValue).get(i)); + SearchResult moreResults = getMoreResult(selectedValue); + for (int i = 0; i < moreResults.size(); i++) { + searchListModel.add(index + AlphaFineConstants.SHOW_SIZE + 1 + i, moreResults.get(i)); } return null; } From 4bc17a83f2e021b064bb0e3845bf8d276ef6fabe Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 2 Jan 2018 11:11:32 +0800 Subject: [PATCH 4/5] rt --- .../design/mainframe/alphafine/component/AlphaFineDialog.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index d6c216ff4e..633ff432a8 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -776,7 +776,7 @@ public class AlphaFineDialog extends UIDialog { } catch (JSONException e) { FRLogger.getLogger().error(e.getMessage()); } - final HashMap para = new HashMap<>(); + final HashMap para = new HashMap(); String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); para.put("token", CodeUtils.md5Encode(date, StringUtils.EMPTY, "MD5")); para.put("content", object.toString()); @@ -796,7 +796,7 @@ public class AlphaFineDialog extends UIDialog { * @param index * @param selectedValue */ - private void rebuildShowMoreList(int index, final MoreModel selectedValue) { + private void rebuildShowMoreList(final int index, final MoreModel selectedValue) { if ((selectedValue).getContent().equals(Inter.getLocText("FR-Designer_AlphaFine_ShowLess"))) { splitLabel.setIcon(new ImageIcon(getClass().getResource(AlphaFineConstants.IMAGE_URL + "bigloading.gif"))); if (this.searchWorker != null && !this.searchWorker.isDone()) { From 7cc051b6e1f131b6fe46041cc1ef0edcd7b53493 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 2 Jan 2018 11:15:09 +0800 Subject: [PATCH 5/5] rt --- .../design/mainframe/alphafine/component/AlphaFineDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index 633ff432a8..4b288cec28 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -776,7 +776,7 @@ public class AlphaFineDialog extends UIDialog { } catch (JSONException e) { FRLogger.getLogger().error(e.getMessage()); } - final HashMap para = new HashMap(); + final HashMap para = new HashMap<>(); String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); para.put("token", CodeUtils.md5Encode(date, StringUtils.EMPTY, "MD5")); para.put("content", object.toString());