From cb32d0b3ec1137dd5d1470cc580003f0291388bb Mon Sep 17 00:00:00 2001 From: "alex.sung" Date: Fri, 24 Aug 2018 11:57:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E5=8D=87=E4=BB=A3=E7=A0=81=E8=B4=A8?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/alphafine/AlphaFineHelper.java | 23 +++++++++++++++++++ .../alphafine/cell/model/RobotModel.java | 13 +++++++++++ .../alphafine/component/AlphaFineDialog.java | 2 +- .../manager/impl/ComplementAdviceManager.java | 21 +++-------------- .../manager/impl/RecommendSearchManager.java | 6 ++++- .../manager/impl/SimilarSearchManeger.java | 18 ++++----------- 6 files changed, 49 insertions(+), 34 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineHelper.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineHelper.java index de409fda74..6c8e2f1199 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineHelper.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineHelper.java @@ -5,12 +5,17 @@ import com.fr.design.actions.help.alphafine.AlphaFineConfigManager; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.alphafine.cell.model.AlphaCellModel; import com.fr.design.mainframe.alphafine.cell.model.NoResultModel; +import com.fr.design.mainframe.alphafine.cell.model.RobotModel; import com.fr.design.mainframe.alphafine.component.AlphaFineDialog; import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.search.manager.impl.RecentSearchManager; import com.fr.design.mainframe.alphafine.search.manager.impl.RecommendSearchManager; import com.fr.general.ProcessCanceledException; +import com.fr.json.JSONArray; +import com.fr.json.JSONException; +import com.fr.json.JSONObject; +import com.fr.json.JSONUtils; import com.fr.stable.StringUtils; import java.util.List; @@ -97,5 +102,23 @@ public class AlphaFineHelper { return filterResult; } + public static SearchResult getModelListFromJSONArray(String result, String keyword) throws ClassCastException, JSONException { + SearchResult allModelList = new SearchResult(); + JSONArray jsonArray = (JSONArray)JSONUtils.jsonDecode(result); + for (int i = 0; i < jsonArray.length(); i++) { + AlphaFineHelper.checkCancel(); + JSONObject jsonObject = jsonArray.optJSONObject(i); + + String temp = jsonObject.optString(keyword); + if (StringUtils.isNotEmpty(temp)) { + RobotModel robotModel = new RobotModel(temp, null); + if (!allModelList.contains(robotModel)) { + allModelList.add(robotModel); + } + } + } + return allModelList; + } + } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/RobotModel.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/RobotModel.java index 03f038e60a..47d95514ea 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/RobotModel.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/RobotModel.java @@ -7,6 +7,7 @@ import com.fr.general.http.HttpClient; import com.fr.json.JSONException; import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; +import com.fr.stable.AssistUtils; import org.apache.commons.codec.digest.DigestUtils; @@ -92,4 +93,16 @@ public class RobotModel extends AlphaCellModel { FineLoggerFactory.getLogger().error(e.getMessage()); } } + + @Override + public final boolean equals(Object obj) { + return obj instanceof RobotModel + && AssistUtils.equals(this.title, ((RobotModel)obj).title) + && AssistUtils.equals(this.content, ((RobotModel) obj).content); + } + + @Override + public int hashCode() { + return AssistUtils.hashCode(title, content); + } } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index 172767dd66..37010c1279 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -1333,7 +1333,7 @@ public class AlphaFineDialog extends UIDialog { */ private void initBackPane() { backPane = new JPanel(new BorderLayout()); - JLabel jLabel = new JLabel(com.fr.design.i18n.Toolkit.i18nText(" < " + "Fine-Design_Report_AlphaFine_Back")); + JLabel jLabel = new JLabel(" < " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_Back")); jLabel.setPreferredSize(new Dimension(680, 20)); jLabel.setFont(AlphaFineConstants.SMALL_FONT); jLabel.setForeground(AlphaFineConstants.DARK_GRAY); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/ComplementAdviceManager.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/ComplementAdviceManager.java index f59e98df63..16182d5f19 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/ComplementAdviceManager.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/ComplementAdviceManager.java @@ -50,25 +50,10 @@ public class ComplementAdviceManager { try { String result = HttpToolbox.get(url); AlphaFineHelper.checkCancel(); - JSONArray jsonArray = (JSONArray)JSONUtils.jsonDecode(result); - if(jsonArray != null){ - for (int i = 0; i < jsonArray.length(); i++) { - AlphaFineHelper.checkCancel(); - JSONObject jsonObject = jsonArray.optJSONObject(i); - - String temp = jsonObject.optString("keywords"); - if (StringUtils.isNotEmpty(temp)) { - RobotModel robotModel = new RobotModel(temp, null); - if (!AlphaFineHelper.getFilterResult().contains(robotModel) && !allModelList.contains(robotModel)) { - allModelList.add(robotModel); - } - } - - } - } - } catch (JSONException e) { + allModelList = AlphaFineHelper.getModelListFromJSONArray(result,"keywords"); + } catch(ClassCastException | JSONException e){ FineLoggerFactory.getLogger().error("complement advice search error: " + e.getMessage()); - }catch (IOException e1) { + } catch (IOException e1) { FineLoggerFactory.getLogger().error("complement advice get result error: " + e1.getMessage()); } } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecommendSearchManager.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecommendSearchManager.java index 15476c4460..beac652fff 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecommendSearchManager.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecommendSearchManager.java @@ -193,7 +193,11 @@ public class RecommendSearchManager implements AlphaFineSearchProvider { } public List getRecommendModelList() { - return recommendModelList; + SearchResult result = new SearchResult(); + result.addAll(recommendModelList); + result.addAll(modelList); + result.addAll(moreModelList); + return result; } } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/SimilarSearchManeger.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/SimilarSearchManeger.java index ddaffb88ad..fc2c173e0a 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/SimilarSearchManeger.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/SimilarSearchManeger.java @@ -15,6 +15,8 @@ import com.fr.json.JSONObject; import com.fr.json.JSONUtils; import com.fr.log.FineLoggerFactory; import java.io.IOException; + +import com.fr.stable.StringUtils; import com.fr.third.org.apache.commons.codec.digest.DigestUtils; /** @@ -47,20 +49,8 @@ public class SimilarSearchManeger implements AlphaFineSearchProvider { try { String result = HttpToolbox.get(url); AlphaFineHelper.checkCancel(); - JSONArray jsonArray = (JSONArray)JSONUtils.jsonDecode(result); - if(jsonArray != null){ - if (jsonArray.length() != 0) { - for (int i = 0; i < jsonArray.length(); i++) { - JSONObject jsonObject = jsonArray.optJSONObject(i); - String title = jsonObject.optString("title"); - RobotModel robotModel = new RobotModel(title, null); - if (!AlphaFineHelper.getFilterResult().contains(robotModel) && !allModelList.contains(robotModel)) { - allModelList.add(robotModel); - } - } - } - } - } catch (JSONException e) { + allModelList = AlphaFineHelper.getModelListFromJSONArray(result,"title"); + } catch (ClassCastException | JSONException e) { FineLoggerFactory.getLogger().error("similar search error: " + e.getMessage()); } catch (IOException e) { FineLoggerFactory.getLogger().error("similar search get result error: " + e.getMessage());