Browse Source

规范国际化文件及国际化定义。

research/10.0
alex.sung 6 years ago
parent
commit
75c6837e35
  1. 21
      designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineConfigManager.java
  2. 26
      designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineConfigPane.java
  3. 21
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineConstants.java
  4. 7
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/BottomModel.java
  5. 8
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/RobotModel.java
  6. 20
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java
  7. 160
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java
  8. 6
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineTextField.java
  9. 2
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/ContainsCirclePane.java
  10. 3
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/ActionSearchManager.java
  11. 23
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/ComplementAdviceManager.java
  12. 20
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/DocumentSearchManager.java
  13. 2
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java
  14. 70
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/HotIssuesManager.java
  15. 23
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java
  16. 3
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecentSearchManager.java
  17. 30
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecommendSearchManager.java
  18. 13
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/SegmentationManager.java
  19. 28
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/SimilarSearchManeger.java

21
designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineConfigManager.java

@ -58,11 +58,11 @@ public class AlphaFineConfigManager implements XMLable {
/** /**
* 分词搜索 * 分词搜索
*/ */
private boolean isNeedSegmentationCheckbox = true; private boolean needSegmentationCheckbox = true;
/** /**
* 智能客服 * 智能客服
*/ */
private boolean isNeedIntelligentCustomerService = true; private boolean needIntelligentCustomerService = true;
/** /**
* 快捷键 * 快捷键
*/ */
@ -102,8 +102,8 @@ public class AlphaFineConfigManager implements XMLable {
this.setContainAction(reader.getAttrAsBoolean("isContainAction", true)); this.setContainAction(reader.getAttrAsBoolean("isContainAction", true));
this.setContainTemplate(reader.getAttrAsBoolean("isContainTemplate", true)); this.setContainTemplate(reader.getAttrAsBoolean("isContainTemplate", true));
this.setContainFileContent(reader.getAttrAsBoolean("isContainFileContent", false)); this.setContainFileContent(reader.getAttrAsBoolean("isContainFileContent", false));
this.setNeedSegmentationCheckbox(reader.getAttrAsBoolean("isNeedSegmentationCheckbox", true)); this.setNeedSegmentationCheckbox(reader.getAttrAsBoolean("needSegmentationCheckbox", true));
this.setNeedIntelligentCustomerService(reader.getAttrAsBoolean("isNeedIntelligentCustomerService", true)); this.setNeedIntelligentCustomerService(reader.getAttrAsBoolean("needIntelligentCustomerService", true));
this.setShortcuts(reader.getAttrAsString("shortcuts", getDefaultShortCuts())); this.setShortcuts(reader.getAttrAsString("shortcuts", getDefaultShortCuts()));
this.setNeedRemind(reader.getAttrAsBoolean("isNeedRemind", true)); this.setNeedRemind(reader.getAttrAsBoolean("isNeedRemind", true));
this.setOperateCount(reader.getAttrAsInt("operateCount", 0)); this.setOperateCount(reader.getAttrAsInt("operateCount", 0));
@ -126,8 +126,8 @@ public class AlphaFineConfigManager implements XMLable {
.attr("isContainFileContent", this.isContainFileContent()) .attr("isContainFileContent", this.isContainFileContent())
.attr("isNeedRemind", this.isNeedRemind()) .attr("isNeedRemind", this.isNeedRemind())
.attr("operateCount", this.getOperateCount()) .attr("operateCount", this.getOperateCount())
.attr("isNeedSegmentationCheckbox", this.isNeedSegmentationCheckbox()) .attr("needSegmentationCheckbox", this.isNeedSegmentationCheckbox())
.attr("isNeedIntelligentCustomerService", this.isNeedIntelligentCustomerService()); .attr("needIntelligentCustomerService", this.isNeedIntelligentCustomerService());
writer.end(); writer.end();
} }
@ -240,20 +240,21 @@ public class AlphaFineConfigManager implements XMLable {
} }
public boolean isNeedSegmentationCheckbox() { public boolean isNeedSegmentationCheckbox() {
return isNeedSegmentationCheckbox; return needSegmentationCheckbox;
} }
public void setNeedSegmentationCheckbox(boolean needSegmentationCheckbox) { public void setNeedSegmentationCheckbox(boolean needSegmentationCheckbox) {
isNeedSegmentationCheckbox = needSegmentationCheckbox; this.needSegmentationCheckbox = needSegmentationCheckbox;
} }
public boolean isNeedIntelligentCustomerService() { public boolean isNeedIntelligentCustomerService() {
return isNeedIntelligentCustomerService; return needIntelligentCustomerService;
} }
public void setNeedIntelligentCustomerService(boolean needIntelligentCustomerService) { public void setNeedIntelligentCustomerService(boolean needIntelligentCustomerService) {
isNeedIntelligentCustomerService = needIntelligentCustomerService; this.needIntelligentCustomerService = needIntelligentCustomerService;
} }
public int getOperateCount() { public int getOperateCount() {
return operateCount; return operateCount;
} }

26
designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineConfigPane.java

@ -55,7 +55,7 @@ public class AlphaFineConfigPane extends BasicPane {
private static final double COLUMN_GAP = 180; private static final double COLUMN_GAP = 180;
private static final double ROW_GAP = 25; private static final double ROW_GAP = 25;
private KeyStroke shortCutKeyStore = null; private KeyStroke shortCutKeyStore = null;
private UICheckBox isEnabledCheckbox, isSearchOnlineCheckbox, isNeedSegmentationCheckbox, isNeedIntelligentCustomerService, isContainRecommendCheckbox, isContainActionCheckbox, isContainDocumentCheckbox, isContainTemplateCheckbox, isContainPluginCheckbox, isContainFileContentCheckbox; private UICheckBox isEnabledCheckbox, isSearchOnlineCheckbox, needSegmentationCheckbox, needIntelligentCustomerService, isContainRecommendCheckbox, isContainActionCheckbox, isContainDocumentCheckbox, isContainTemplateCheckbox, isContainPluginCheckbox, isContainFileContentCheckbox;
private UITextField shortcutsField; private UITextField shortcutsField;
public AlphaFineConfigPane() { public AlphaFineConfigPane() {
@ -77,14 +77,14 @@ public class AlphaFineConfigPane extends BasicPane {
Component[][] components = new Component[][]{ Component[][] components = new Component[][]{
new Component[]{isContainRecommendCheckbox, isContainActionCheckbox, isContainDocumentCheckbox}, new Component[]{isContainRecommendCheckbox, isContainActionCheckbox, isContainDocumentCheckbox},
new Component[]{isContainTemplateCheckbox, isContainPluginCheckbox, isContainFileContentCheckbox}, new Component[]{isContainTemplateCheckbox, isContainPluginCheckbox, isContainFileContentCheckbox},
new Component[]{isNeedIntelligentCustomerService, null, null} new Component[]{needIntelligentCustomerService, null, null}
}; };
return components; return components;
} }
private Component[][] initOnlineComponents() { private Component[][] initOnlineComponents() {
Component[][] components = new Component[][]{ Component[][] components = new Component[][]{
new Component[]{isSearchOnlineCheckbox, isNeedSegmentationCheckbox, null} new Component[]{isSearchOnlineCheckbox, needSegmentationCheckbox, null}
}; };
return components; return components;
} }
@ -101,7 +101,7 @@ public class AlphaFineConfigPane extends BasicPane {
isContainDocumentCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Community_Help")); isContainDocumentCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Community_Help"));
isContainTemplateCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Templates")); isContainTemplateCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Templates"));
isContainFileContentCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Templates_Content")); isContainFileContentCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Templates_Content"));
isNeedIntelligentCustomerService = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_AlphaFine_Intelligent_Customer_Service")); needIntelligentCustomerService = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_AlphaFine_Intelligent_Customer_Service"));
JPanel searchConfigPane = TableLayoutHelper.createTableLayoutPane(initSearchRangeComponents(), rowSize, columnSize); JPanel searchConfigPane = TableLayoutHelper.createTableLayoutPane(initSearchRangeComponents(), rowSize, columnSize);
northPane.add(searchConfigPane); northPane.add(searchConfigPane);
contentPane.add(northPane); contentPane.add(northPane);
@ -148,7 +148,7 @@ public class AlphaFineConfigPane extends BasicPane {
private void createOnlinePane(JPanel contentPane) { private void createOnlinePane(JPanel contentPane) {
JPanel northPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_AlphaFine_Search_Type")); JPanel northPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_AlphaFine_Search_Type"));
isSearchOnlineCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_AlphaFine_Enable_Internet_Search")); isSearchOnlineCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_AlphaFine_Enable_Internet_Search"));
isNeedSegmentationCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_AlphaFine_Enable_Segmentation")); needSegmentationCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_AlphaFine_Enable_Segmentation"));
isSearchOnlineCheckbox.addActionListener(new ActionListener() { isSearchOnlineCheckbox.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -156,16 +156,16 @@ public class AlphaFineConfigPane extends BasicPane {
isContainRecommendCheckbox.setEnabled(false); isContainRecommendCheckbox.setEnabled(false);
isContainPluginCheckbox.setEnabled(false); isContainPluginCheckbox.setEnabled(false);
isContainDocumentCheckbox.setEnabled(false); isContainDocumentCheckbox.setEnabled(false);
isNeedIntelligentCustomerService.setEnabled(false); needIntelligentCustomerService.setEnabled(false);
isContainRecommendCheckbox.setSelected(false); isContainRecommendCheckbox.setSelected(false);
isContainPluginCheckbox.setSelected(false); isContainPluginCheckbox.setSelected(false);
isContainDocumentCheckbox.setSelected(false); isContainDocumentCheckbox.setSelected(false);
isNeedIntelligentCustomerService.setSelected(false); needIntelligentCustomerService.setSelected(false);
} else { } else {
isContainRecommendCheckbox.setEnabled(true); isContainRecommendCheckbox.setEnabled(true);
isContainPluginCheckbox.setEnabled(true); isContainPluginCheckbox.setEnabled(true);
isContainDocumentCheckbox.setEnabled(true); isContainDocumentCheckbox.setEnabled(true);
isNeedIntelligentCustomerService.setEnabled(true); needIntelligentCustomerService.setEnabled(true);
} }
} }
}); });
@ -203,9 +203,9 @@ public class AlphaFineConfigPane extends BasicPane {
this.isContainRecommendCheckbox.setEnabled(alphaFineConfigManager.isSearchOnLine()); this.isContainRecommendCheckbox.setEnabled(alphaFineConfigManager.isSearchOnLine());
this.shortcutsField.setText(getDisplayShortCut(alphaFineConfigManager.getShortcuts())); this.shortcutsField.setText(getDisplayShortCut(alphaFineConfigManager.getShortcuts()));
this.isNeedSegmentationCheckbox.setSelected(alphaFineConfigManager.isNeedSegmentationCheckbox()); this.needSegmentationCheckbox.setSelected(alphaFineConfigManager.isNeedSegmentationCheckbox());
this.isNeedIntelligentCustomerService.setSelected(alphaFineConfigManager.isNeedIntelligentCustomerService() && alphaFineConfigManager.isSearchOnLine()); this.needIntelligentCustomerService.setSelected(alphaFineConfigManager.isNeedIntelligentCustomerService() && alphaFineConfigManager.isSearchOnLine());
this.isNeedIntelligentCustomerService.setEnabled(alphaFineConfigManager.isSearchOnLine()); this.needIntelligentCustomerService.setEnabled(alphaFineConfigManager.isSearchOnLine());
shortCutKeyStore = convert2KeyStroke(alphaFineConfigManager.getShortcuts()); shortCutKeyStore = convert2KeyStroke(alphaFineConfigManager.getShortcuts());
} }
@ -220,8 +220,8 @@ public class AlphaFineConfigPane extends BasicPane {
alphaFineConfigManager.setSearchOnLine(this.isSearchOnlineCheckbox.isSelected()); alphaFineConfigManager.setSearchOnLine(this.isSearchOnlineCheckbox.isSelected());
alphaFineConfigManager.setContainTemplate(this.isContainTemplateCheckbox.isSelected()); alphaFineConfigManager.setContainTemplate(this.isContainTemplateCheckbox.isSelected());
alphaFineConfigManager.setContainFileContent(this.isContainFileContentCheckbox.isSelected()); alphaFineConfigManager.setContainFileContent(this.isContainFileContentCheckbox.isSelected());
alphaFineConfigManager.setNeedSegmentationCheckbox(this.isNeedSegmentationCheckbox.isSelected()); alphaFineConfigManager.setNeedSegmentationCheckbox(this.needSegmentationCheckbox.isSelected());
alphaFineConfigManager.setNeedIntelligentCustomerService(this.isNeedIntelligentCustomerService.isSelected()); alphaFineConfigManager.setNeedIntelligentCustomerService(this.needIntelligentCustomerService.isSelected());
alphaFineConfigManager.setShortcuts(shortCutKeyStore != null ? shortCutKeyStore.toString().replace(TYPE, DISPLAY_TYPE) : this.shortcutsField.getText()); alphaFineConfigManager.setShortcuts(shortCutKeyStore != null ? shortCutKeyStore.toString().replace(TYPE, DISPLAY_TYPE) : this.shortcutsField.getText());
designerEnvManager.setAlphaFineConfigManager(alphaFineConfigManager); designerEnvManager.setAlphaFineConfigManager(alphaFineConfigManager);
try { try {

21
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineConstants.java

@ -1,7 +1,6 @@
package com.fr.design.mainframe.alphafine; package com.fr.design.mainframe.alphafine;
import com.fr.general.CloudCenter; import com.fr.general.CloudCenter;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Font; import java.awt.Font;
@ -69,6 +68,8 @@ public class AlphaFineConstants {
public static final Color RED = new Color(0xf46c4c); public static final Color RED = new Color(0xf46c4c);
public static final String HIGH_LIGHT_COLOR = "rgb(51,148,240)";
public static final Font SMALL_FONT = new Font("Song_TypeFace", 0, 10); public static final Font SMALL_FONT = new Font("Song_TypeFace", 0, 10);
public static final Font MEDIUM_FONT = new Font("Song_TypeFace", 0, 12); public static final Font MEDIUM_FONT = new Font("Song_TypeFace", 0, 12);
@ -81,6 +82,8 @@ public class AlphaFineConstants {
public static final String IMAGE_URL = "/com/fr/design/mainframe/alphafine/images/"; public static final String IMAGE_URL = "/com/fr/design/mainframe/alphafine/images/";
public static final String ALPHA_HOT_IMAGE_NAME = "alphafine_hot";
public static final String PLUGIN_SEARCH_URL = CloudCenter.getInstance().acquireUrlByKind("plugin.searchAPI"); public static final String PLUGIN_SEARCH_URL = CloudCenter.getInstance().acquireUrlByKind("plugin.searchAPI");
public static final String PLUGIN_URL = CloudCenter.getInstance().acquireUrlByKind("af.pluginInfo"); public static final String PLUGIN_URL = CloudCenter.getInstance().acquireUrlByKind("af.pluginInfo");
@ -100,13 +103,23 @@ public class AlphaFineConstants {
public static final String SEARCH_API = CloudCenter.getInstance().acquireUrlByKind("af.cloud_search"); public static final String SEARCH_API = CloudCenter.getInstance().acquireUrlByKind("af.cloud_search");
public static final String SPECIAL_CHARACTER_REGEX = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】';:”“’。,、?]";
public static final String BOTTOM_REGEX_FIRST = "<div class=\"bang\">([\\s\\S]*?)class=\"jiaoyes\">YES</a><br/>";
public static final String BOTTOM_REGEX_SECOND = "<div class=\"yes_([\\s\\S]*?)帮助</a></div></div>";
public static final String ALPHA_ROBOT_SEARCH_TOKEN = "K8dl0Np6l0gs"; public static final String ALPHA_ROBOT_SEARCH_TOKEN = "K8dl0Np6l0gs";
public static final String SIMILAR_SEARCH_URL_PREFIX = "http://robot.finereport.com/openapi/like.php?action=search&"; public static final String SIMILAR_SEARCH_URL_PREFIX = CloudCenter.getInstance().acquireUrlByKind("af.similar_search");
public static final String COMPLEMENT_ADVICE_SEARCH_URL_PREFIX = CloudCenter.getInstance().acquireUrlByKind("af.advice_search");
public static final String ALPHA_HOT_SEARCH = CloudCenter.getInstance().acquireUrlByKind("af.hot_search");
public static final String COMPLEMENT_ADVICE_SEARCH_URL_PREFIX = "http://robot.finereport.com/openapi/getkw.php?"; public static final String ALPHA_GO_TO_FORUM = CloudCenter.getInstance().acquireUrlByKind("af.go_fourm");
public static final String ALPHA_HOT_SEARCH = "http://robot.finereport.com/openapi/hot.php"; public static final String ALPHA_GO_TO_WEB = CloudCenter.getInstance().acquireUrlByKind("af.go_web");
} }

7
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/BottomModel.java

@ -1,5 +1,6 @@
package com.fr.design.mainframe.alphafine.cell.model; package com.fr.design.mainframe.alphafine.cell.model;
import com.fr.design.mainframe.alphafine.AlphaFineConstants;
import com.fr.design.mainframe.alphafine.CellType; import com.fr.design.mainframe.alphafine.CellType;
import com.fr.json.JSONException; import com.fr.json.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
@ -31,12 +32,12 @@ public class BottomModel extends AlphaCellModel {
@Override @Override
public JSONObject ModelToJson() throws JSONException { public JSONObject ModelToJson() throws JSONException {
return null; return JSONObject.EMPTY;
} }
@Override @Override
public String getStoreInformation() { public String getStoreInformation() {
return null; return "";
} }
@Override @Override
@ -47,7 +48,7 @@ public class BottomModel extends AlphaCellModel {
@Override @Override
public void doAction() { public void doAction() {
try { try {
Desktop.getDesktop().browse(new URI("http://bbs.fanruan.com/post_newthread_ajax.php?action=newthread&fid=39")); Desktop.getDesktop().browse(new URI(AlphaFineConstants.ALPHA_GO_TO_FORUM));
} catch (IOException e) { } catch (IOException e) {
FineLoggerFactory.getLogger().error(e.getMessage()); FineLoggerFactory.getLogger().error(e.getMessage());
} catch (URISyntaxException e) { } catch (URISyntaxException e) {

8
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/RobotModel.java

@ -24,14 +24,14 @@ public class RobotModel extends AlphaCellModel {
private String content; private String content;
//热门问题列表的list不需要渲染图标,所以这里需要区分一下 //热门问题列表的list不需要渲染图标,所以这里需要区分一下
private boolean isHotItemModel = false; private boolean hotItemModel = false;
public boolean isHotItemModel() { public boolean isHotItemModel() {
return isHotItemModel; return hotItemModel;
} }
public void setHotItemModel(boolean hotItemModel) { public void setHotItemModel(boolean hotItemModel) {
isHotItemModel = hotItemModel; this.hotItemModel = hotItemModel;
} }
public String getTitle() { public String getTitle() {
@ -45,7 +45,7 @@ public class RobotModel extends AlphaCellModel {
public static String getContent(String titleStr) { public static String getContent(String titleStr) {
String result; String result;
String token = DigestUtils.md5Hex(AlphaFineConstants.ALPHA_ROBOT_SEARCH_TOKEN + titleStr); String token = DigestUtils.md5Hex(AlphaFineConstants.ALPHA_ROBOT_SEARCH_TOKEN + titleStr);
String url = "http://robot.finereport.com/openapi/reply.php?action=search&msg=" + titleStr + "&token=" + token; String url = AlphaFineConstants.ALPHA_GO_TO_WEB + titleStr + "&token=" + token;
HttpClient httpClient = new HttpClient(url); HttpClient httpClient = new HttpClient(url);
httpClient.asGet(); httpClient.asGet();
result = httpClient.getResponseText(); result = httpClient.getResponseText();

20
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java

@ -57,18 +57,18 @@ public class ContentCellRender implements ListCellRenderer<Object> {
String iconUrl = SELECTED_PATH + model.getType().getTypeValue() + SUFFIX; String iconUrl = SELECTED_PATH + model.getType().getTypeValue() + SUFFIX;
panel.setBackground(AlphaFineConstants.BLUE); panel.setBackground(AlphaFineConstants.BLUE);
titleLabel.setForeground(Color.WHITE); titleLabel.setForeground(Color.WHITE);
if(value instanceof RobotModel && ((RobotModel) value).isHotItemModel()){ if (value instanceof RobotModel && ((RobotModel) value).isHotItemModel()) {
titleLabel.setIcon(null); titleLabel.setIcon(null);
}else{ } else {
titleLabel.setIcon(IconLoader.getIcon(iconUrl)); titleLabel.setIcon(IconLoader.getIcon(iconUrl));
} }
} else { } else {
titleLabel.setText(dealWithModelName(model.getName(), segmentationResult)); titleLabel.setText(dealWithModelName(model.getName(), segmentationResult));
String iconUrl = CELL_PATH + model.getType().getTypeValue() + SUFFIX; String iconUrl = CELL_PATH + model.getType().getTypeValue() + SUFFIX;
if(value instanceof RobotModel && ((RobotModel) value).isHotItemModel()){ if (value instanceof RobotModel && ((RobotModel) value).isHotItemModel()) {
titleLabel.setIcon(null); titleLabel.setIcon(null);
}else{ } else {
titleLabel.setIcon(IconLoader.getIcon(iconUrl)); titleLabel.setIcon(IconLoader.getIcon(iconUrl));
} }
} }
@ -104,14 +104,14 @@ public class ContentCellRender implements ListCellRenderer<Object> {
* @param strings * @param strings
* @return * @return
*/ */
public String dealWithModelName(String modelName, String strings[]) { public String dealWithModelName(String modelName, String[] strings) {
if (strings == null) { if (strings == null) {
return modelName; return modelName;
} }
for (int i = 0; i < strings.length; i++) { for (int i = 0; i < strings.length; i++) {
String primaryStr = getReplacedString(modelName, strings[i]); String primaryStr = getReplacedString(modelName, strings[i]);
modelName = modelName.replaceAll("(?i)" + strings[i], "|<font color=rgb(51,148,240)>" + strings[i] + "</font>|"); modelName = modelName.replaceAll("(?i)" + strings[i], "|<font color=" + AlphaFineConstants.HIGH_LIGHT_COLOR + ">" + strings[i] + "</font>|");
if(!StringUtils.isEmpty(primaryStr)){ if (StringUtils.isNotEmpty(primaryStr)) {
modelName = modelName.replaceAll(strings[i], primaryStr); modelName = modelName.replaceAll(strings[i], primaryStr);
} }
} }
@ -121,10 +121,10 @@ public class ContentCellRender implements ListCellRenderer<Object> {
private String getReplacedString(String modelName, String string) { private String getReplacedString(String modelName, String string) {
int index = modelName.toLowerCase().indexOf(string.toLowerCase()); int index = modelName.toLowerCase().indexOf(string.toLowerCase());
if(index == -1){ if (index == -1) {
return null; return "";
} }
return modelName.substring(index, index+string.length()); return modelName.substring(index, index + string.length());
} }
} }

160
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java

@ -11,11 +11,29 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.design.mainframe.alphafine.AlphaFineConstants;
import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.AlphaFineHelper;
import com.fr.design.mainframe.alphafine.cell.CellModelHelper; import com.fr.design.mainframe.alphafine.cell.CellModelHelper;
import com.fr.design.mainframe.alphafine.cell.model.*; import com.fr.design.mainframe.alphafine.cell.model.RobotModel;
import com.fr.design.mainframe.alphafine.cell.model.BottomModel;
import com.fr.design.mainframe.alphafine.cell.model.AlphaCellModel;
import com.fr.design.mainframe.alphafine.cell.model.FileModel;
import com.fr.design.mainframe.alphafine.cell.model.MoreModel;
import com.fr.design.mainframe.alphafine.cell.model.PluginModel;
import com.fr.design.mainframe.alphafine.cell.render.ContentCellRender; import com.fr.design.mainframe.alphafine.cell.render.ContentCellRender;
import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.model.SearchResult;
import com.fr.design.mainframe.alphafine.preview.*; import com.fr.design.mainframe.alphafine.preview.DocumentPreviewPane;
import com.fr.design.mainframe.alphafine.search.manager.impl.*; import com.fr.design.mainframe.alphafine.preview.FilePreviewPane;
import com.fr.design.mainframe.alphafine.preview.NoResultPane;
import com.fr.design.mainframe.alphafine.preview.PluginPreviewPane;
import com.fr.design.mainframe.alphafine.preview.RobotPreviewPane;
import com.fr.design.mainframe.alphafine.preview.ContainsCirclePane;
import com.fr.design.mainframe.alphafine.search.manager.impl.ActionSearchManager;
import com.fr.design.mainframe.alphafine.search.manager.impl.DocumentSearchManager;
import com.fr.design.mainframe.alphafine.search.manager.impl.FileSearchManager;
import com.fr.design.mainframe.alphafine.search.manager.impl.HotIssuesManager;
import com.fr.design.mainframe.alphafine.search.manager.impl.PluginSearchManager;
import com.fr.design.mainframe.alphafine.search.manager.impl.RecentSearchManager;
import com.fr.design.mainframe.alphafine.search.manager.impl.RecommendSearchManager;
import com.fr.design.mainframe.alphafine.search.manager.impl.SegmentationManager;
import com.fr.design.mainframe.alphafine.search.manager.impl.SimilarSearchManeger;
import com.fr.design.mainframe.errorinfo.ErrorInfoUploader; import com.fr.design.mainframe.errorinfo.ErrorInfoUploader;
import com.fr.design.mainframe.templateinfo.TemplateInfoCollector; import com.fr.design.mainframe.templateinfo.TemplateInfoCollector;
import com.fr.form.main.Form; import com.fr.form.main.Form;
@ -33,11 +51,38 @@ import com.fr.stable.StringUtils;
import com.fr.stable.project.ProjectConstants; import com.fr.stable.project.ProjectConstants;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.swing.*; import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import javax.swing.Timer;
import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionListener;
import java.awt.*; import java.awt.AWTEvent;
import java.awt.event.*; import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.AWTEventListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException; import java.io.IOException;
import java.net.URL; import java.net.URL;
@ -68,6 +113,7 @@ public class AlphaFineDialog extends UIDialog {
private static final String SIMILAR_MARK = "k:robot "; private static final String SIMILAR_MARK = "k:robot ";
private static final String PLACE_HOLDER = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine"); private static final String PLACE_HOLDER = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine");
private static final int MAX_SHOW_SIZE = 12; private static final int MAX_SHOW_SIZE = 12;
private static final int TIMER_DELAY = 300;
private AlphaFineTextField searchTextField; private AlphaFineTextField searchTextField;
private UIButton closeButton; private UIButton closeButton;
@ -91,8 +137,8 @@ public class AlphaFineDialog extends UIDialog {
private JPanel backPane; private JPanel backPane;
SearchResult modeList = null; SearchResult modeList = null;
private static String beforeSearchStr = ""; private static String beforeSearchStr = "";
private static boolean isAlreadySearch = false; private static boolean alreadySearch = false;
private static boolean isAlreadyInitHot = false; private static boolean alreadyInitHot = false;
public AlphaFineDialog(Frame parent, boolean forceOpen) { public AlphaFineDialog(Frame parent, boolean forceOpen) {
super(parent); super(parent);
@ -248,17 +294,6 @@ public class AlphaFineDialog extends UIDialog {
win.setLocation((screenSize.width - winSize.width) / 2, (screenSize.height - winSize.height) / AlphaFineConstants.SHOW_SIZE); win.setLocation((screenSize.width - winSize.width) / 2, (screenSize.height - winSize.height) / AlphaFineConstants.SHOW_SIZE);
} }
// TODO: 2017/5/8 xiaxiang: 窗体圆角setShape()有毛边,重写paint方法可以解决毛边问题,但带来了别的问题,处理比较麻烦,暂用setShape();
// public void paint(Graphics g){
// Graphics2D g2 = (Graphics2D) g.create();
// RenderingHints qualityHints = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// qualityHints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
// g2.setRenderingHints(qualityHints);
// g2.setPaint(Color.WHITE);
// g2.fillRoundRect(0, 0, getWidth(), getHeight(), 15, 15);
// g2.dispose();
// }
/** /**
* 执行搜索 * 执行搜索
* *
@ -669,12 +704,14 @@ public class AlphaFineDialog extends UIDialog {
@Override @Override
protected String doInBackground() { protected String doInBackground() {
String content = RobotModel.getContent((selectedValue).getName()); String content = RobotModel.getContent((selectedValue).getName());
//去掉小帆底部的信息 if(StringUtils.isNotEmpty(content)){
String regex1 = "<div class=\"bang\">([\\s\\S]*?)class=\"jiaoyes\">YES</a><br/>"; //去掉小帆底部的信息
String regex2 = "<div class=\"yes_([\\s\\S]*?)帮助</a></div></div>"; content = content.replaceAll(AlphaFineConstants.BOTTOM_REGEX_FIRST, "")
content = content.replaceAll(regex1, "") .replaceAll(AlphaFineConstants.BOTTOM_REGEX_SECOND, "");
.replaceAll(regex2, ""); return content;
return content; }else{
return "";
}
} }
@Override @Override
@ -684,9 +721,9 @@ public class AlphaFineDialog extends UIDialog {
try { try {
rightSearchResultPane.add(new RobotPreviewPane((selectedValue).getName(), get())); rightSearchResultPane.add(new RobotPreviewPane((selectedValue).getName(), get()));
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); FineLoggerFactory.getLogger().error("get hot item content error: " + e.getMessage());
} catch (ExecutionException e) { } catch (ExecutionException e) {
e.printStackTrace(); FineLoggerFactory.getLogger().error("get hot item content execution error: " + e.getMessage());
} }
validate(); validate();
repaint(); repaint();
@ -762,11 +799,11 @@ public class AlphaFineDialog extends UIDialog {
} }
}); });
Timer timer = new Timer(300, new ActionListener() { Timer timer = new Timer(TIMER_DELAY, new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (!isAlreadyInitHot && searchTextField.getText().length() == 0) { if (!alreadyInitHot && StringUtils.isEmpty(searchTextField.getText())) {
isAlreadyInitHot = true; alreadyInitHot = true;
removeSearchResult(); removeSearchResult();
refreshContainer(); refreshContainer();
if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isNeedIntelligentCustomerService()) { if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isNeedIntelligentCustomerService()) {
@ -779,8 +816,8 @@ public class AlphaFineDialog extends UIDialog {
} }
refreshContainer(); refreshContainer();
return; return;
} else if (beforeSearchStr.equals(searchTextField.getText()) && beforeSearchStr.length() != 0) { } else if (beforeSearchStr.equals(searchTextField.getText()) && StringUtils.isNotEmpty(beforeSearchStr)) {
if (isAlreadySearch) { if (alreadySearch) {
return; return;
} else { } else {
removeHotPane(); removeHotPane();
@ -796,21 +833,21 @@ public class AlphaFineDialog extends UIDialog {
segmentationResult = SegmentationManager.getInstance().startSegmentation(searchTextField.getText().toLowerCase()); segmentationResult = SegmentationManager.getInstance().startSegmentation(searchTextField.getText().toLowerCase());
} }
} else { } else {
if(StringUtils.isEmpty(getRealSearchText(searchTextField.getText().toLowerCase()))){ if(StringUtils.isEmpty(getRealSearchText(searchTextField.getText()))){
segmentationResult = null; segmentationResult = null;
}else{ }else{
segmentationResult = new String[]{getRealSearchText(searchTextField.getText().toLowerCase())}; segmentationResult = new String[]{getRealSearchText(searchTextField.getText())};
} }
} }
doSearch(searchTextField.getText().toLowerCase()); doSearch(searchTextField.getText().toLowerCase());
isAlreadySearch = true; alreadySearch = true;
} }
} else { } else {
beforeSearchStr = searchTextField.getText(); beforeSearchStr = searchTextField.getText();
isAlreadySearch = false; alreadySearch = false;
} }
if (beforeSearchStr.equals(searchTextField.getText()) && beforeSearchStr.length() != 0) { if (beforeSearchStr.equals(searchTextField.getText()) && beforeSearchStr.length() != 0) {
isAlreadyInitHot = false; alreadyInitHot = false;
} }
} }
@ -822,8 +859,8 @@ public class AlphaFineDialog extends UIDialog {
* 去除特殊字符空格等 * 去除特殊字符空格等
*/ */
private String getRealSearchText(String searchText){ private String getRealSearchText(String searchText){
String regEx = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】';:”“’。,、?]"; searchText = searchText.toLowerCase();
Pattern p = Pattern.compile(regEx); Pattern p = Pattern.compile(AlphaFineConstants.SPECIAL_CHARACTER_REGEX);
Matcher m = p.matcher(searchText); Matcher m = p.matcher(searchText);
searchText = m.replaceAll("").trim().replaceAll(" ", ""); searchText = m.replaceAll("").trim().replaceAll(" ", "");
if (searchText.length() == 0) { if (searchText.length() == 0) {
@ -1301,7 +1338,8 @@ public class AlphaFineDialog extends UIDialog {
jLabel.setFont(AlphaFineConstants.SMALL_FONT); jLabel.setFont(AlphaFineConstants.SMALL_FONT);
jLabel.setForeground(AlphaFineConstants.DARK_GRAY); jLabel.setForeground(AlphaFineConstants.DARK_GRAY);
backPane.add(jLabel, BorderLayout.CENTER); backPane.add(jLabel, BorderLayout.CENTER);
jLabel.addMouseListener(new MouseListener() {
jLabel.addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
if (searchResultPane != null) { if (searchResultPane != null) {
@ -1318,26 +1356,6 @@ public class AlphaFineDialog extends UIDialog {
} }
refreshContainer(); refreshContainer();
} }
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}); });
} }
@ -1379,7 +1397,7 @@ public class AlphaFineDialog extends UIDialog {
final UILabel subTitle = new UILabel(str[i]); final UILabel subTitle = new UILabel(str[i]);
subTitle.setForeground(AlphaFineConstants.DARK_GRAY); subTitle.setForeground(AlphaFineConstants.DARK_GRAY);
subTitle.setFont(AlphaFineConstants.MEDIUM_FONT_ANOTHER); subTitle.setFont(AlphaFineConstants.MEDIUM_FONT_ANOTHER);
subTitle.addMouseListener(new MouseListener() { subTitle.addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
segmentationResult = null; segmentationResult = null;
@ -1393,26 +1411,6 @@ public class AlphaFineDialog extends UIDialog {
modeList = HotIssuesManager.getInstance().getTitleSearchResult(subTitle.getText()); modeList = HotIssuesManager.getInstance().getTitleSearchResult(subTitle.getText());
showIssuesList(); showIssuesList();
} }
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}); });
bottomPanel.add(subTitle); bottomPanel.add(subTitle);
} }

6
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineTextField.java

@ -26,12 +26,6 @@ public class AlphaFineTextField extends UITextField {
this.placeHolder = null; this.placeHolder = null;
} }
@Override
public String getText() {
return super.getText();
}
@Override @Override
public void paintComponent(Graphics g) { public void paintComponent(Graphics g) {
super.paintComponent(g); super.paintComponent(g);

2
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/ContainsCirclePane.java

@ -15,7 +15,7 @@ import java.awt.Graphics;
public class ContainsCirclePane extends JPanel { public class ContainsCirclePane extends JPanel {
public ContainsCirclePane(int pngIndex) { public ContainsCirclePane(int pngIndex) {
UILabel iconLabel = new UILabel(IconLoader.getIcon(AlphaFineConstants.IMAGE_URL + "alphafine_hot" + pngIndex + ".png")); UILabel iconLabel = new UILabel(IconLoader.getIcon(AlphaFineConstants.IMAGE_URL + AlphaFineConstants.ALPHA_HOT_IMAGE_NAME + pngIndex + ".png"));
iconLabel.setPreferredSize(AlphaFineConstants.HOT_ICON_LABEL_SIZE); iconLabel.setPreferredSize(AlphaFineConstants.HOT_ICON_LABEL_SIZE);
iconLabel.setOpaque(true); iconLabel.setOpaque(true);
iconLabel.setBackground(Color.WHITE); iconLabel.setBackground(Color.WHITE);

3
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/ActionSearchManager.java

@ -15,6 +15,7 @@ import com.fr.general.ComparatorUtils;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.third.org.apache.commons.lang3.ArrayUtils;
import java.util.List; import java.util.List;
@ -61,7 +62,7 @@ public class ActionSearchManager implements AlphaFineSearchProvider {
filterModelList = new SearchResult(); filterModelList = new SearchResult();
lessModelList = new SearchResult(); lessModelList = new SearchResult();
moreModelList = new SearchResult(); moreModelList = new SearchResult();
if (searchText.length == 0) { if (ArrayUtils.isEmpty(searchText)) {
lessModelList.add(new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Set"))); lessModelList.add(new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Set")));
return lessModelList; return lessModelList;
} }

23
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/ComplementAdviceManager.java

@ -5,7 +5,7 @@ import com.fr.design.mainframe.alphafine.AlphaFineConstants;
import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.AlphaFineHelper;
import com.fr.design.mainframe.alphafine.cell.model.RobotModel; import com.fr.design.mainframe.alphafine.cell.model.RobotModel;
import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.model.SearchResult;
import com.fr.general.http.HttpClient; import com.fr.general.http.HttpToolbox;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fr.json.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
@ -14,15 +14,17 @@ import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import java.io.IOException;
//import com.fr.third.org.apache.commons.codec.digest.DigestUtils;
/** /**
* @author alex.sung created on 2018/7/23. * @author alex.sung created on 2018/7/23.
*/ */
public class ComplementAdviceManager { public class ComplementAdviceManager {
public static int count = 0;
private static ComplementAdviceManager instance; private static ComplementAdviceManager instance;
private SearchResult allModelList; private volatile SearchResult allModelList;
public static ComplementAdviceManager getInstance() { public static ComplementAdviceManager getInstance() {
if (instance == null) { if (instance == null) {
@ -40,19 +42,16 @@ public class ComplementAdviceManager {
* @param searchText * @param searchText
* @return * @return
*/ */
public synchronized SearchResult getAllSearchResult(String[] searchText) { public SearchResult getAllSearchResult(String[] searchText) {
allModelList = new SearchResult(); allModelList = new SearchResult();
if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isNeedIntelligentCustomerService()) { if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isNeedIntelligentCustomerService()) {
SearchResult searchResult = new SearchResult(); SearchResult searchResult = new SearchResult();
for (int j = 0; j < searchText.length; j++) { for (int j = 0; j < searchText.length; j++) {
String result;
String token = DigestUtils.md5Hex(AlphaFineConstants.ALPHA_ROBOT_SEARCH_TOKEN + searchText[j]); String token = DigestUtils.md5Hex(AlphaFineConstants.ALPHA_ROBOT_SEARCH_TOKEN + searchText[j]);
String url = AlphaFineConstants.COMPLEMENT_ADVICE_SEARCH_URL_PREFIX + "msg=" + searchText[j] + "&token=" + token; String url = AlphaFineConstants.COMPLEMENT_ADVICE_SEARCH_URL_PREFIX + "msg=" + searchText[j] + "&token=" + token;
HttpClient httpClient = new HttpClient(url);
httpClient.asGet();
result = httpClient.getResponseText();
AlphaFineHelper.checkCancel();
try { try {
String result = HttpToolbox.get(url);
AlphaFineHelper.checkCancel();
Object json = new JSONTokener(result).nextValue(); Object json = new JSONTokener(result).nextValue();
if (json instanceof JSONArray) { if (json instanceof JSONArray) {
JSONArray jsonArray = new JSONArray(result); JSONArray jsonArray = new JSONArray(result);
@ -61,7 +60,7 @@ public class ComplementAdviceManager {
JSONObject jsonObject = jsonArray.optJSONObject(i); JSONObject jsonObject = jsonArray.optJSONObject(i);
String temp = jsonObject.optString("keywords"); String temp = jsonObject.optString("keywords");
if (!StringUtils.isEmpty(temp)) { if (StringUtils.isNotEmpty(temp)) {
RobotModel robotModel = new RobotModel(temp, null); RobotModel robotModel = new RobotModel(temp, null);
if (!AlphaFineHelper.getFilterResult().contains(robotModel) && !allModelList.contains(robotModel)) { if (!AlphaFineHelper.getFilterResult().contains(robotModel) && !allModelList.contains(robotModel)) {
allModelList.add(robotModel); allModelList.add(robotModel);
@ -71,6 +70,8 @@ public class ComplementAdviceManager {
} }
} catch (JSONException e) { } catch (JSONException e) {
FineLoggerFactory.getLogger().error("complement advice search error: " + e.getMessage()); FineLoggerFactory.getLogger().error("complement advice search error: " + e.getMessage());
}catch (IOException e1) {
FineLoggerFactory.getLogger().error("complement advice get result error: " + e1.getMessage());
} }
} }
if (searchResult.isEmpty()) { if (searchResult.isEmpty()) {

20
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/DocumentSearchManager.java

@ -8,12 +8,14 @@ import com.fr.design.mainframe.alphafine.cell.model.DocumentModel;
import com.fr.design.mainframe.alphafine.cell.model.MoreModel; import com.fr.design.mainframe.alphafine.cell.model.MoreModel;
import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.model.SearchResult;
import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider; import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider;
import com.fr.general.http.HttpToolbox;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fr.json.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.third.org.apache.commons.lang3.ArrayUtils;
import java.io.IOException;
/** /**
* Created by XiaXiang on 2017/3/27. * Created by XiaXiang on 2017/3/27.
@ -52,23 +54,17 @@ public class DocumentSearchManager implements AlphaFineSearchProvider {
public synchronized SearchResult getLessSearchResult(String[] searchText) { public synchronized SearchResult getLessSearchResult(String[] searchText) {
lessModelList = new SearchResult(); lessModelList = new SearchResult();
moreModelList = new SearchResult(); moreModelList = new SearchResult();
if (searchText.length == 0) { if (ArrayUtils.isEmpty(searchText)) {
lessModelList.add(new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Community_Help"))); lessModelList.add(new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Community_Help")));
return lessModelList; return lessModelList;
} }
if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainDocument()) { if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainDocument()) {
SearchResult searchResult = new SearchResult(); SearchResult searchResult = new SearchResult();
for (int j = 0; j < searchText.length; j++) { for (int j = 0; j < searchText.length; j++) {
String result;
String url = AlphaFineConstants.DOCUMENT_SEARCH_URL + searchText[j] + "-1"; String url = AlphaFineConstants.DOCUMENT_SEARCH_URL + searchText[j] + "-1";
HttpClient httpClient = new HttpClient(url);
httpClient.asGet();
if (!httpClient.isServerAlive()) {
return getNoConnectList();
}
result = httpClient.getResponseText();
AlphaFineHelper.checkCancel();
try { try {
String result = HttpToolbox.get(url);
AlphaFineHelper.checkCancel();
JSONObject jsonObject = new JSONObject(result); JSONObject jsonObject = new JSONObject(result);
JSONArray jsonArray = jsonObject.optJSONArray("docdata"); JSONArray jsonArray = jsonObject.optJSONArray("docdata");
if (jsonArray != null) { if (jsonArray != null) {
@ -83,6 +79,8 @@ public class DocumentSearchManager implements AlphaFineSearchProvider {
} }
} catch (JSONException e) { } catch (JSONException e) {
FineLoggerFactory.getLogger().error("document search error: " + e.getMessage()); FineLoggerFactory.getLogger().error("document search error: " + e.getMessage());
} catch (IOException e) {
FineLoggerFactory.getLogger().error("document search get result error: " + e.getMessage());
} }
} }
lessModelList.clear(); lessModelList.clear();

2
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java

@ -69,7 +69,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
for (int j = 0; j < searchText.length; j++) { for (int j = 0; j < searchText.length; j++) {
this.searchText = dealWithSearchText(searchText[j]); this.searchText = dealWithSearchText(searchText[j]);
if (StringUtils.isBlank(this.searchText) || ComparatorUtils.equals(this.searchText, DS_NAME)) { if (StringUtils.isBlank(this.searchText) || ComparatorUtils.equals(this.searchText, DS_NAME)) {
lessModelList.add(new MoreModel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_Templates"))); lessModelList.add(new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Templates")));
return lessModelList; return lessModelList;
} }
AlphaFineHelper.checkCancel(); AlphaFineHelper.checkCancel();

70
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/HotIssuesManager.java

@ -5,14 +5,14 @@ import com.fr.design.mainframe.alphafine.AlphaFineHelper;
import com.fr.design.mainframe.alphafine.cell.model.MoreModel; import com.fr.design.mainframe.alphafine.cell.model.MoreModel;
import com.fr.design.mainframe.alphafine.cell.model.RobotModel; import com.fr.design.mainframe.alphafine.cell.model.RobotModel;
import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.model.SearchResult;
import com.fr.general.Inter; import com.fr.general.http.HttpToolbox;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fr.json.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.json.JSONUtils;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
@ -27,14 +27,15 @@ public class HotIssuesManager {
private static HotIssuesManager instance; private static HotIssuesManager instance;
private static final int HOT_ITEM_NUM = 6; private static final int HOT_ITEM_NUM = 6;
private static final int HOT_SUB_ITEM_NUM = 4; private static final int HOT_SUB_ITEM_NUM = 4;
private static final String HOT_ITEM = "item";
private static final String HOT_ITEM_DATA = "itemData";
private static final String HOT_ITEM_TEXT = "text";
private static final String HOT_TYPE = "type";
private static final String HOT_DATA = "data";
public static HotIssuesManager getInstance() { public static synchronized HotIssuesManager getInstance() {
if (instance == null) { if (instance == null) {
synchronized (HotIssuesManager.class) { instance = new HotIssuesManager();
if (instance == null) {
instance = new HotIssuesManager();
}
}
} }
return instance; return instance;
} }
@ -44,14 +45,14 @@ public class HotIssuesManager {
/** /**
* 将子标题下的数据塞入modeList * 将子标题下的数据塞入modeList
* @param getStr * @param subTitle
* @return * @return
*/ */
public SearchResult getTitleSearchResult(String getStr) { public SearchResult getTitleSearchResult(String subTitle) {
SearchResult modeList = new SearchResult(); SearchResult modeList = new SearchResult();
modeList.add(0, new MoreModel(com.fr.design.i18n.Toolkit.i18nText((getStr)))); modeList.add(0, new MoreModel(com.fr.design.i18n.Toolkit.i18nText((subTitle))));
List<String> issueList = map.get(getStr); List<String> issueList = map.get(subTitle);
for (int i = 0; i < issueList.size(); i++) { for (int i = 0; i < issueList.size(); i++) {
RobotModel robotModel = new RobotModel(issueList.get(i), null); RobotModel robotModel = new RobotModel(issueList.get(i), null);
robotModel.setHotItemModel(true); robotModel.setHotItemModel(true);
@ -65,24 +66,22 @@ public class HotIssuesManager {
* @return * @return
*/ */
public String[][] getHotIssues() { public String[][] getHotIssues() {
String result;
HttpClient httpClient = new HttpClient(AlphaFineConstants.ALPHA_HOT_SEARCH);
httpClient.asGet();
if (!httpClient.isServerAlive()) {
return null;
}
result = httpClient.getResponseText();
AlphaFineHelper.checkCancel();
try { try {
JSONArray jsonArray = new JSONArray(result); String result = HttpToolbox.get(AlphaFineConstants.ALPHA_HOT_SEARCH);
for (int i = 0; i < HOT_ITEM_NUM; i++) { AlphaFineHelper.checkCancel();
AlphaFineHelper.checkCancel(); JSONArray jsonArray = (JSONArray)JSONUtils.jsonDecode(result);
JSONObject jsonObject = jsonArray.optJSONObject(i); if(jsonArray != null){
data[i] = getTitleStrings(jsonObject); for (int i = 0; i < HOT_ITEM_NUM; i++) {
AlphaFineHelper.checkCancel();
JSONObject jsonObject = jsonArray.optJSONObject(i);
data[i] = getTitleStrings(jsonObject);
}
} }
} catch (JSONException e) { } catch (JSONException e) {
FineLoggerFactory.getLogger().error("hotissues search error: " + e.getMessage()); FineLoggerFactory.getLogger().error("hotissues search error: " + e.getMessage());
} catch (IOException e) {
FineLoggerFactory.getLogger().error("hotissues search get result error: " + e.getMessage());
} }
return data; return data;
} }
@ -93,16 +92,16 @@ public class HotIssuesManager {
* @return * @return
*/ */
private String[] getTitleStrings(JSONObject jsonObject) { private String[] getTitleStrings(JSONObject jsonObject) {
String[] temp = getSubTitleFromCloud(jsonObject.optJSONObject("data")); String[] temp = getSubTitleFromCloud(jsonObject.optJSONObject(HOT_DATA));
String[] temp1 = new String[1]; String[] temp1 = new String[1];
temp1[0] = jsonObject.optString("type"); temp1[0] = jsonObject.optString(HOT_TYPE);
int strLen1 = temp.length; int strLen1 = temp.length;
int strLen2 = temp1.length; int strLen2 = temp1.length;
temp1 = Arrays.copyOf(temp1, strLen2 + strLen1); temp1 = Arrays.copyOf(temp1, strLen2 + strLen1);
System.arraycopy(temp, 0, temp1, strLen2, strLen1); System.arraycopy(temp, 0, temp1, strLen2, strLen1);
getIssueStrings(jsonObject.optJSONObject("data")); getIssueStrings(jsonObject.optJSONObject(HOT_DATA));
return temp1; return temp1;
} }
@ -112,21 +111,20 @@ public class HotIssuesManager {
* @param data * @param data
* @return * @return
*/ */
private String[] getIssueStrings(JSONObject data) { private void getIssueStrings(JSONObject data) {
try { try {
for (int j = 0; j < HOT_SUB_ITEM_NUM; j++) { for (int j = 0; j < HOT_SUB_ITEM_NUM; j++) {
String temp = data.getString("item" + (j + 1)); String temp = data.getString(HOT_ITEM + (j + 1));
JSONArray jsonArray = data.getJSONArray("itemData" + (j + 1)); JSONArray jsonArray = data.getJSONArray(HOT_ITEM_DATA + (j + 1));
List<String> tempList = new ArrayList<>(); List<String> tempList = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) { for (int i = 0; i < jsonArray.length(); i++) {
tempList.add(jsonArray.optJSONObject(i).optString("text")); tempList.add(jsonArray.optJSONObject(i).optString(HOT_ITEM_TEXT));
} }
map.put(temp, tempList); map.put(temp, tempList);
} }
} catch (JSONException e) { } catch (JSONException e) {
} }
return null;
} }
/** /**
@ -139,7 +137,7 @@ public class HotIssuesManager {
for (int i = 0; i < HOT_SUB_ITEM_NUM; i++) { for (int i = 0; i < HOT_SUB_ITEM_NUM; i++) {
String temp = null; String temp = null;
try { try {
temp = data.getString("item" + (i + 1)); temp = data.getString(HOT_ITEM + (i + 1));
} catch (JSONException e) { } catch (JSONException e) {
} }
if (!StringUtils.isEmpty(temp)) { if (!StringUtils.isEmpty(temp)) {

23
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java

@ -9,15 +9,17 @@ import com.fr.design.mainframe.alphafine.cell.model.PluginModel;
import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.model.SearchResult;
import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider; import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.general.http.HttpToolbox;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fr.json.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.plugin.basic.version.Version; import com.fr.plugin.basic.version.Version;
import com.fr.plugin.basic.version.VersionIntervalFactory; import com.fr.plugin.basic.version.VersionIntervalFactory;
import com.fr.stable.EncodeConstants;
import com.fr.third.org.apache.commons.lang3.ArrayUtils;
import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
@ -95,25 +97,22 @@ public class PluginSearchManager implements AlphaFineSearchProvider {
@Override @Override
public synchronized SearchResult getLessSearchResult(String[] searchText) { public synchronized SearchResult getLessSearchResult(String[] searchText) {
if (ArrayUtils.isEmpty(searchText)) {
return new SearchResult();
}
this.lessModelList = new SearchResult(); this.lessModelList = new SearchResult();
this.moreModelList = new SearchResult(); this.moreModelList = new SearchResult();
if (searchText.length == 0) { if (ArrayUtils.isEmpty(searchText)) {
lessModelList.add(new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Plugin_Addon"))); lessModelList.add(new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Plugin_Addon")));
return lessModelList; return lessModelList;
} }
SearchResult searchResult = new SearchResult(); SearchResult searchResult = new SearchResult();
if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainPlugin()) { if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainPlugin()) {
for (int j = 0; j < searchText.length; j++) { for (int j = 0; j < searchText.length; j++) {
String result;
try { try {
String encodedKey = URLEncoder.encode(searchText[j], "UTF-8"); String encodedKey = URLEncoder.encode(searchText[j], EncodeConstants.ENCODING_UTF_8);
String url = AlphaFineConstants.PLUGIN_SEARCH_URL + "?keyword=" + encodedKey; String url = AlphaFineConstants.PLUGIN_SEARCH_URL + "?keyword=" + encodedKey;
HttpClient httpClient = new HttpClient(url); String result = HttpToolbox.get(url);
httpClient.asGet();
if (!httpClient.isServerAlive()) {
return getNoConnectList();
}
result = httpClient.getResponseText();
AlphaFineHelper.checkCancel(); AlphaFineHelper.checkCancel();
JSONObject jsonObject = new JSONObject(result); JSONObject jsonObject = new JSONObject(result);
JSONArray jsonArray = jsonObject.optJSONArray("result"); JSONArray jsonArray = jsonObject.optJSONArray("result");
@ -130,6 +129,8 @@ public class PluginSearchManager implements AlphaFineSearchProvider {
FineLoggerFactory.getLogger().error("plugin search json error :" + e.getMessage()); FineLoggerFactory.getLogger().error("plugin search json error :" + e.getMessage());
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
FineLoggerFactory.getLogger().error("plugin search encode error :" + e.getMessage()); FineLoggerFactory.getLogger().error("plugin search encode error :" + e.getMessage());
} catch (IOException e) {
FineLoggerFactory.getLogger().error("plugin search get result error :" + e.getMessage());
} }
} }
if (searchResult.isEmpty()) { if (searchResult.isEmpty()) {

3
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecentSearchManager.java

@ -138,9 +138,6 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
initWriter(); initWriter();
Document doc = new Document(); Document doc = new Document();
doc.add(new StringField("searchKey", searchKey, Field.Store.YES)); doc.add(new StringField("searchKey", searchKey, Field.Store.YES));
if(cellModel == null){
System.out.println("null");
}
doc.add(new StringField("cellModel", cellModel.ModelToJson().toString(), Field.Store.YES)); doc.add(new StringField("cellModel", cellModel.ModelToJson().toString(), Field.Store.YES));
doc.add(new LongField("time", System.currentTimeMillis(), Field.Store.YES)); doc.add(new LongField("time", System.currentTimeMillis(), Field.Store.YES));
writeDoc(doc); writeDoc(doc);

30
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecommendSearchManager.java

@ -10,8 +10,7 @@ import com.fr.design.mainframe.alphafine.cell.model.AlphaCellModel;
import com.fr.design.mainframe.alphafine.cell.model.MoreModel; import com.fr.design.mainframe.alphafine.cell.model.MoreModel;
import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.model.SearchResult;
import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider; import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider;
import com.fr.general.http.HttpToolbox;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fr.json.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
@ -19,7 +18,9 @@ import com.fr.json.JSONTokener;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.CodeUtils; import com.fr.stable.CodeUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.third.org.apache.commons.lang3.ArrayUtils;
import java.io.IOException;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -48,21 +49,18 @@ public class RecommendSearchManager implements AlphaFineSearchProvider {
@Override @Override
public synchronized SearchResult getLessSearchResult(String[] searchText) { public synchronized SearchResult getLessSearchResult(String[] searchText) {
if (ArrayUtils.isEmpty(searchText)) {
return new SearchResult();
}
this.modelList = new SearchResult(); this.modelList = new SearchResult();
this.recommendModelList = new SearchResult(); this.recommendModelList = new SearchResult();
if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainRecommend()) { if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainRecommend()) {
for (int j = 0; j < searchText.length; j++) { for (int j = 0; j < searchText.length; j++) {
String result;
searchText[j] = searchText[j].replaceAll(StringUtils.BLANK, StringUtils.EMPTY); searchText[j] = searchText[j].replaceAll(StringUtils.BLANK, StringUtils.EMPTY);
HttpClient httpClient = new HttpClient(AlphaFineConstants.SEARCH_API + CodeUtils.cjkEncode(searchText[j]));
httpClient.asGet();
if (!httpClient.isServerAlive()) {
return getNoConnectList();
}
httpClient.setTimeout(3000);
result = httpClient.getResponseText();
AlphaFineHelper.checkCancel();
try { try {
String result = HttpToolbox.get(AlphaFineConstants.SEARCH_API + CodeUtils.cjkEncode(searchText[j]));
AlphaFineHelper.checkCancel();
Object json = new JSONTokener(result).nextValue(); Object json = new JSONTokener(result).nextValue();
if (json instanceof JSONObject) { if (json instanceof JSONObject) {
JSONObject jsonObject = new JSONObject(result); JSONObject jsonObject = new JSONObject(result);
@ -82,6 +80,8 @@ public class RecommendSearchManager implements AlphaFineSearchProvider {
} }
} catch (JSONException e) { } catch (JSONException e) {
FineLoggerFactory.getLogger().error("recommend search error! :" + e.getMessage()); FineLoggerFactory.getLogger().error("recommend search error! :" + e.getMessage());
} catch (IOException e) {
FineLoggerFactory.getLogger().error("recommend search get result error! :" + e.getMessage());
} }
} }
@ -136,17 +136,17 @@ public class RecommendSearchManager implements AlphaFineSearchProvider {
modelList.addAll(complementAdviceModelList); modelList.addAll(complementAdviceModelList);
} }
} }
}else{ } else {
if(complementAdviceModelList.size() > 0) { if (complementAdviceModelList.size() > 0) {
if (complementAdviceModelList.size() > AlphaFineConstants.SHOW_SIZE) { if (complementAdviceModelList.size() > AlphaFineConstants.SHOW_SIZE) {
modelList.add(0, new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_Recommend"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_ShowAll"), true, CellType.RECOMMEND)); modelList.add(0, new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_Recommend"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_ShowAll"), true, CellType.RECOMMEND));
modelList.addAll(complementAdviceModelList.subList(0, AlphaFineConstants.SHOW_SIZE)); modelList.addAll(complementAdviceModelList.subList(0, AlphaFineConstants.SHOW_SIZE));
moreModelList.addAll(complementAdviceModelList.subList(AlphaFineConstants.SHOW_SIZE, complementAdviceModelList.size())); moreModelList.addAll(complementAdviceModelList.subList(AlphaFineConstants.SHOW_SIZE, complementAdviceModelList.size()));
}else{ } else {
modelList.add(0, new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_Recommend"), false)); modelList.add(0, new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_Recommend"), false));
modelList.addAll(complementAdviceModelList); modelList.addAll(complementAdviceModelList);
} }
}else{ } else {
return modelList; return modelList;
} }
} }

13
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/SegmentationManager.java

@ -1,5 +1,6 @@
package com.fr.design.mainframe.alphafine.search.manager.impl; package com.fr.design.mainframe.alphafine.search.manager.impl;
import com.fr.design.mainframe.alphafine.AlphaFineConstants;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.third.ibm.icu.text.BreakIterator; import com.fr.third.ibm.icu.text.BreakIterator;
@ -15,13 +16,12 @@ public class SegmentationManager {
private static SegmentationManager segmentationManager = null; private static SegmentationManager segmentationManager = null;
private static final int MAX_CHINESE_CHARACTERS_NUM = 4; private static final int MAX_CHINESE_CHARACTERS_NUM = 4;
public static SegmentationManager getInstance() { public static synchronized SegmentationManager getInstance() {
if (segmentationManager == null) { if (segmentationManager == null) {
segmentationManager = new SegmentationManager(); segmentationManager = new SegmentationManager();
return segmentationManager; return segmentationManager;
} else {
return segmentationManager;
} }
return segmentationManager;
} }
/** /**
@ -52,14 +52,13 @@ public class SegmentationManager {
* @return * @return
*/ */
public String[] startSegmentation(String searchText) { public String[] startSegmentation(String searchText) {
String regEx = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】';:”“’。,、?]"; Pattern p = Pattern.compile(AlphaFineConstants.SPECIAL_CHARACTER_REGEX);
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(searchText); Matcher m = p.matcher(searchText);
searchText = m.replaceAll("").trim().replaceAll(" ", ""); searchText = m.replaceAll("").trim().replaceAll(" ", "");
if (searchText.length() == 0) { if (StringUtils.isEmpty(searchText)) {
return null; return null;
} }
if(!isNeedSegmentation(searchText)){ if (!isNeedSegmentation(searchText)) {
return new String[]{searchText}; return new String[]{searchText};
} }
List<String> result = new ArrayList<>(); List<String> result = new ArrayList<>();

28
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/SimilarSearchManeger.java

@ -8,7 +8,7 @@ import com.fr.design.mainframe.alphafine.cell.model.MoreModel;
import com.fr.design.mainframe.alphafine.cell.model.RobotModel; import com.fr.design.mainframe.alphafine.cell.model.RobotModel;
import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.model.SearchResult;
import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider; import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider;
import com.fr.general.http.HttpClient; import com.fr.general.http.HttpToolbox;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fr.json.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
@ -16,39 +16,35 @@ import com.fr.json.JSONTokener;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import java.io.IOException;
//import com.fr.third.org.apache.commons.codec.digest.DigestUtils;
/** /**
* Created by alex.sung on 2018/8/3. * Created by alex.sung on 2018/8/3.
*/ */
public class SimilarSearchManeger implements AlphaFineSearchProvider { public class SimilarSearchManeger implements AlphaFineSearchProvider {
private static SimilarSearchManeger instance; private static SimilarSearchManeger instance;
private SearchResult lessModelList; private volatile SearchResult lessModelList;
private SearchResult moreModelList = new SearchResult(); private volatile SearchResult moreModelList = new SearchResult();
public static SimilarSearchManeger getInstance() { public static synchronized SimilarSearchManeger getInstance() {
if (instance == null) { if (instance == null) {
synchronized (SimilarSearchManeger.class) { instance = new SimilarSearchManeger();
if (instance == null) {
instance = new SimilarSearchManeger();
}
}
} }
return instance; return instance;
} }
@Override @Override
public synchronized SearchResult getLessSearchResult(String[] searchText) { public SearchResult getLessSearchResult(String[] searchText) {
lessModelList = new SearchResult(); lessModelList = new SearchResult();
if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isNeedIntelligentCustomerService()) { if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isNeedIntelligentCustomerService()) {
SearchResult allModelList = new SearchResult(); SearchResult allModelList = new SearchResult();
for (int j = 0; j < searchText.length; j++) { for (int j = 0; j < searchText.length; j++) {
String result;
String token = DigestUtils.md5Hex(AlphaFineConstants.ALPHA_ROBOT_SEARCH_TOKEN + searchText[j]); String token = DigestUtils.md5Hex(AlphaFineConstants.ALPHA_ROBOT_SEARCH_TOKEN + searchText[j]);
String url = AlphaFineConstants.SIMILAR_SEARCH_URL_PREFIX + "msg=" + searchText[j] + "&token=" + token; String url = AlphaFineConstants.SIMILAR_SEARCH_URL_PREFIX + "msg=" + searchText[j] + "&token=" + token;
HttpClient httpClient = new HttpClient(url);
httpClient.asGet();
result = httpClient.getResponseText();
AlphaFineHelper.checkCancel();
try { try {
String result = HttpToolbox.get(url);
AlphaFineHelper.checkCancel();
Object json = new JSONTokener(result).nextValue(); Object json = new JSONTokener(result).nextValue();
if (json instanceof JSONArray) { if (json instanceof JSONArray) {
JSONArray jsonArray = new JSONArray(result); JSONArray jsonArray = new JSONArray(result);
@ -65,6 +61,8 @@ public class SimilarSearchManeger implements AlphaFineSearchProvider {
} }
} catch (JSONException e) { } catch (JSONException e) {
FineLoggerFactory.getLogger().error("similar search error: " + e.getMessage()); FineLoggerFactory.getLogger().error("similar search error: " + e.getMessage());
} catch (IOException e) {
FineLoggerFactory.getLogger().error("similar search get result error: " + e.getMessage());
} }
} }
moreModelList.clear(); moreModelList.clear();

Loading…
Cancel
Save