From 270ace4e68fdf47c04b99117d0ff56d7c11c4aa9 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 14:43:18 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F=20al?= =?UTF-8?q?phafine=20=E5=8A=A8=E6=80=81=E6=89=A9=E5=B1=95=E5=BA=93=20?= =?UTF-8?q?=E9=94=AE=E7=9B=98=E9=80=89=E6=8B=A9=E7=9A=84=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/AlphaFineConstants.java | 2 +- .../alphafine/cell/model/ActionModel.java | 5 + .../alphafine/cell/model/AlphaCellModel.java | 9 ++ .../alphafine/cell/model/DocumentModel.java | 16 +++ .../alphafine/cell/model/FileModel.java | 12 ++ .../alphafine/cell/model/NoResultModel.java | 10 ++ .../alphafine/cell/model/PluginModel.java | 16 +++ .../alphafine/component/AlphaFineDialog.java | 107 +++++++++--------- .../manager/RecommendSearchManager.java | 8 +- 9 files changed, 127 insertions(+), 58 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java index a05e520f4..4e7c817c4 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java +++ b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java @@ -84,6 +84,6 @@ public class AlphaFineConstants { public static final String SERVER_URL = "http://cloud.fanruan.com/api/monitor/record_of_afsearch/single"; //TODO:先用本地服务器测试一下,避免影响云中心正常信息收集 - public static final String CLOUD_TEST_URL = "http://localhost:8080/monitor/monitor/record_of_afsearch/single"; + public static final String CLOUD_TEST_URL = "http://localhost:8080/cloud/monitor/record_of_afsearch/single"; } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/ActionModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/ActionModel.java index 5fe38c7ba..8e2ccd9a7 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/ActionModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/ActionModel.java @@ -69,6 +69,11 @@ public class ActionModel extends AlphaCellModel { return getClassName(); } + @Override + public void doAction() { + getAction().actionPerformed(null); + } + public String getClassName() { return getAction().getClass().getName(); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java index c9226ff00..551218b50 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java @@ -64,6 +64,10 @@ public abstract class AlphaCellModel implements Comparable { public boolean hasNoResult() { return false; } + + public boolean isNeedToSendToServer() { + return true; + } /** * model转json * @@ -79,6 +83,11 @@ public abstract class AlphaCellModel implements Comparable { */ abstract public String getStoreInformation(); + /** + * 双击时所需执行的操作 + */ + abstract public void doAction(); + public int getSearchCount() { return searchCount; } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/DocumentModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/DocumentModel.java index 642629675..a42e9ed97 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/DocumentModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/DocumentModel.java @@ -6,6 +6,11 @@ import com.fr.general.FRLogger; import com.fr.json.JSONException; import com.fr.json.JSONObject; +import java.awt.*; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; + /** * Created by XiaXiang on 2017/4/20. */ @@ -52,6 +57,17 @@ public class DocumentModel extends AlphaCellModel { return getInformationUrl(); } + @Override + public void doAction() { + try { + Desktop.getDesktop().browse(new URI(getDocumentUrl())); + } catch (IOException e) { + FRLogger.getLogger().error(e.getMessage()); + } catch (URISyntaxException e) { + FRLogger.getLogger().error(e.getMessage()); + } + } + @Override public boolean equals(Object o) { if (this == o) { diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/FileModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/FileModel.java index 4ab0bb2f4..e18ed9afe 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/FileModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/FileModel.java @@ -1,7 +1,10 @@ package com.fr.design.mainframe.alphafine.cell.model; +import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.CellType; +import com.fr.file.FileNodeFILE; +import com.fr.file.filetree.FileNode; import com.fr.general.FRLogger; import com.fr.json.JSONException; import com.fr.json.JSONObject; @@ -49,6 +52,15 @@ public class FileModel extends AlphaCellModel { return getFilePath(); } + @Override + public void doAction() { + DesignerContext.getDesignerFrame().openTemplate(new FileNodeFILE(new FileNode(getFilePath(), false))); + } + + @Override + public boolean isNeedToSendToServer() { + return false; + } @Override public boolean equals(Object o) { diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/NoResultModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/NoResultModel.java index afd500ee9..4d52a288f 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/NoResultModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/NoResultModel.java @@ -22,8 +22,18 @@ public class NoResultModel extends AlphaCellModel { return null; } + @Override + public void doAction() { + + } + @Override public boolean hasNoResult() { return true; } + + @Override + public boolean isNeedToSendToServer() { + return false; + } } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/PluginModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/PluginModel.java index 27b552096..44f1bae05 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/PluginModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/PluginModel.java @@ -6,6 +6,11 @@ import com.fr.general.FRLogger; import com.fr.json.JSONException; import com.fr.json.JSONObject; +import java.awt.*; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; + /** * Created by XiaXiang on 2017/4/20. */ @@ -112,6 +117,17 @@ public class PluginModel extends AlphaCellModel { return getInformationUrl(); } + @Override + public void doAction() { + try { + Desktop.getDesktop().browse(new URI(getPluginUrl())); + } catch (IOException e) { + FRLogger.getLogger().error(e.getMessage()); + } catch (URISyntaxException e) { + FRLogger.getLogger().error(e.getMessage()); + } + } + @Override public boolean equals(Object o) { 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 534170516..26f85cb49 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -6,7 +6,6 @@ import com.fr.design.dialog.UIDialog; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.cell.CellModelHelper; @@ -21,8 +20,6 @@ import com.fr.design.mainframe.alphafine.preview.DocumentPreviewPane; import com.fr.design.mainframe.alphafine.preview.FilePreviewPane; import com.fr.design.mainframe.alphafine.preview.PluginPreviewPane; import com.fr.design.mainframe.alphafine.search.manager.*; -import com.fr.file.FileNodeFILE; -import com.fr.file.filetree.FileNode; import com.fr.form.main.Form; import com.fr.form.main.FormIO; import com.fr.general.ComparatorUtils; @@ -47,8 +44,6 @@ import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage; import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Calendar; @@ -257,7 +252,27 @@ public class AlphaFineDialog extends UIDialog { * 初始化搜索面板 */ private void initSearchResultComponents() { - searchResultList = new JList(); + searchResultList = new JList() { + @Override + public void setSelectedIndex(int index) { + if (index > 0 && index < getModel().getSize()) { + int previousIndex = getSelectedIndex(); + super.setSelectedIndex(index); + Object object = getSelectedValue(); + if (object instanceof MoreModel || ((AlphaCellModel) object).hasNoResult()) { + if (previousIndex <= getSelectedIndex()) { + setSelectedIndex(index + 1); + } else { + setSelectedIndex(index - 1); + } + + } + } + ensureIndexIsVisible(getSelectedIndex()); + + } + }; + searchResultList.setFixedCellHeight(AlphaFineConstants.CELL_HEIGHT); searchListModel = new SearchListModel(new SearchResult()); searchResultList.setModel(searchListModel); searchResultPane = new JPanel(); @@ -564,7 +579,7 @@ public class AlphaFineDialog extends UIDialog { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { Object selectedValue = searchResultList.getSelectedValue(); - doNavigate(searchResultList.getSelectedIndex()); + doNavigate(); if (searchResultList.getSelectedValue() instanceof AlphaCellModel) { saveHistory((AlphaCellModel) selectedValue); } @@ -594,7 +609,7 @@ public class AlphaFineDialog extends UIDialog { int selectedIndex = searchResultList.getSelectedIndex(); Object selectedValue = searchResultList.getSelectedValue(); if (e.getClickCount() == 2) { - doNavigate(selectedIndex); + doNavigate(); if (selectedValue instanceof AlphaCellModel) { saveHistory((AlphaCellModel) selectedValue); } @@ -689,34 +704,12 @@ public class AlphaFineDialog extends UIDialog { } - private void doNavigate(int index) { + private void doNavigate() { AlphaFineDialog.this.dispose(); final Object value = searchResultList.getSelectedValue(); - if (value instanceof ActionModel) { - ((ActionModel) value).getAction().actionPerformed(null); - } else if (value instanceof FileModel) { - DesignerContext.getDesignerFrame().openTemplate(new FileNodeFILE(new FileNode(((FileModel) value).getFilePath(), false))); - } else if (value instanceof PluginModel) { - String url = ((PluginModel) value).getPluginUrl(); - try { - Desktop.getDesktop().browse(new URI(url)); - } catch (IOException e) { - FRLogger.getLogger().error(e.getMessage()); - } catch (URISyntaxException e) { - FRLogger.getLogger().error(e.getMessage()); - } - } else if (value instanceof DocumentModel) { - String url = ((DocumentModel) value).getDocumentUrl(); - try { - Desktop.getDesktop().browse(new URI(url)); - } catch (IOException e) { - FRLogger.getLogger().error(e.getMessage()); - - } catch (URISyntaxException e) { - FRLogger.getLogger().error(e.getMessage()); - } + if (value instanceof AlphaCellModel) { + ((AlphaCellModel)(value)).doAction(); } - } /** @@ -740,30 +733,34 @@ public class AlphaFineDialog extends UIDialog { * @param cellModel */ private void sendToServer(String searchKey, AlphaCellModel cellModel) { - String username = DesignerEnvManager.getEnvManager().getBBSName(); - String uuid = DesignerEnvManager.getEnvManager().getUUID(); - String activitykey = DesignerEnvManager.getEnvManager().getActivationKey(); - String createTime = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(Calendar.getInstance().getTime()); - String key = searchKey; - int resultkind = cellModel.getType().getTypeValue(); - String resultValue = CellModelHelper.getResultValueFromModel(cellModel); - JSONObject object = JSONObject.create(); - try { - object.put("uuid", uuid).put("activitykey", activitykey).put("username", username).put("createtime", createTime).put("key", key).put("resultkind", resultkind).put("resultValue", resultValue); - } catch (JSONException e) { - FRLogger.getLogger().error(e.getMessage()); - } - HashMap para = new HashMap<>(); - String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); - para.put("token", CodeUtils.md5Encode(date, "", "MD5")); - para.put("content", object.toString()); - HttpClient httpClient = new HttpClient(AlphaFineConstants.CLOUD_TEST_URL, para, true); - httpClient.setTimeout(5000); - httpClient.asGet(); - if (!httpClient.isServerAlive()) { - FRLogger.getLogger().error("Failed to sent data to server!"); + if (cellModel.isNeedToSendToServer()) { + String username = DesignerEnvManager.getEnvManager().getBBSName(); + String uuid = DesignerEnvManager.getEnvManager().getUUID(); + String activityKey = DesignerEnvManager.getEnvManager().getActivationKey(); + String createTime = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(Calendar.getInstance().getTime()); + String key = searchKey; + int resultKind = cellModel.getType().getTypeValue(); + String resultValue = CellModelHelper.getResultValueFromModel(cellModel); + JSONObject object = JSONObject.create(); + try { + object.put("uuid", uuid).put("activityKey", activityKey).put("username", username).put("createTime", createTime).put("key", key).put("resultKind", resultKind).put("resultValue", resultValue); + } catch (JSONException e) { + FRLogger.getLogger().error(e.getMessage()); + } + final HashMap para = new HashMap<>(); + String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); + para.put("token", CodeUtils.md5Encode(date, "", "MD5")); + para.put("content", object.toString()); + HttpClient httpClient = new HttpClient(AlphaFineConstants.CLOUD_TEST_URL, para, true); + httpClient.setTimeout(5000); + httpClient.asGet(); + if (!httpClient.isServerAlive()) { + FRLogger.getLogger().error("Failed to sent data to server!"); + } } + + } /** diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java index 217eccb83..d5ffd61e5 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java @@ -25,7 +25,7 @@ import java.util.List; */ public class RecommendSearchManager implements AlphaFineSearchProcessor { //todo:for test - private static final String SEARCHAPI = "http://localhost:8080/monitor/alphafine/search/recommend?searchKey="; + private static final String SEARCHAPI = "http://localhost:8080/cloud/intelligence/search/recommend?searchKey="; private static RecommendSearchManager recommendSearchManager = null; private SearchResult modelList; private List recommendModelList = new ArrayList<>(); @@ -59,7 +59,7 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { for (int i = 0; i < jsonArray.length(); i++) { AlphaFineHelper.checkCancel(); AlphaCellModel alphaCellModel = CellModelHelper.getModelFromJson((JSONObject) jsonArray.get(i)); - if (alphaCellModel != null && !RecentSearchManager.getRecentSearchManger().getRecentModelList().contains(alphaCellModel)) { + if (alphaCellModel != null && !alreadyContain(alphaCellModel)) { this.recommendModelList.add(alphaCellModel); } } @@ -86,6 +86,10 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { return modelList; } + private boolean alreadyContain(AlphaCellModel cellModel) { + return RecentSearchManager.getRecentSearchManger().getRecentModelList().contains(cellModel) || this.recommendModelList.contains(cellModel); + } + private SearchResult getNoConnectList() { SearchResult result = new SearchResult(); result.add(0, new MoreModel(Inter.getLocText("FR-Designer_AlphaFine_Recommend"), false)); From 2391f48ca088f5bd5e011e2f47887cef0ae04acd Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 18:58:58 +0800 Subject: [PATCH 02/21] =?UTF-8?q?bug=20fix=20=E5=AD=98=E5=82=A8=E7=9A=84se?= =?UTF-8?q?archkey=E9=9C=80=E8=A6=81=E5=A4=84=E7=90=86=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/cell/model/AlphaCellModel.java | 4 + .../alphafine/cell/model/MoreModel.java | 29 ++- .../cell/render/ContentCellRender.java | 7 +- .../alphafine/component/AlphaFineDialog.java | 238 ++++++++++-------- 4 files changed, 165 insertions(+), 113 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java index 551218b50..aa5c6a59b 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java @@ -28,6 +28,10 @@ public abstract class AlphaCellModel implements Comparable { } + public AlphaCellModel() { + + } + public CellType getType() { return type; } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java index 79281d04d..e11f45cb4 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java @@ -1,11 +1,13 @@ package com.fr.design.mainframe.alphafine.cell.model; import com.fr.design.mainframe.alphafine.CellType; +import com.fr.json.JSONException; +import com.fr.json.JSONObject; /** * Created by XiaXiang on 2017/4/20. */ -public class MoreModel { +public class MoreModel extends AlphaCellModel { private String name; private boolean needMore; private String content; @@ -59,6 +61,21 @@ public class MoreModel { this.content = content; } + @Override + public JSONObject ModelToJson() throws JSONException { + return null; + } + + @Override + public String getStoreInformation() { + return null; + } + + @Override + public void doAction() { + + } + public CellType getType() { return type; } @@ -74,4 +91,14 @@ public class MoreModel { public void setLoading(boolean loading) { isLoading = loading; } + + @Override + public boolean hasNoResult() { + return true; + } + + @Override + public boolean isNeedToSendToServer() { + return false; + } } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java b/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java index aa91989f9..18026d66a 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java @@ -14,8 +14,7 @@ import java.awt.*; * Created by XiaXiang on 2017/4/20. */ public class ContentCellRender implements ListCellRenderer { - private static final int OFFSET = 30; - private static final int LABEL_OFFSET = 45; + private static final int OFFSET = 45; @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { @@ -48,9 +47,11 @@ public class ContentCellRender implements ListCellRenderer { panel.add(detailLabel, BorderLayout.CENTER); int width = (int) (titleLabel.getPreferredSize().getWidth() + detailLabel.getPreferredSize().getWidth()); if ( width > AlphaFineConstants.LEFT_WIDTH - OFFSET) { - int nameWidth = (int) (AlphaFineConstants.LEFT_WIDTH - detailLabel.getPreferredSize().getWidth() - LABEL_OFFSET); + int nameWidth = (int) (AlphaFineConstants.LEFT_WIDTH - detailLabel.getPreferredSize().getWidth() - OFFSET); titleLabel.setPreferredSize(new Dimension(nameWidth, AlphaFineConstants.CELL_HEIGHT)); } + } else { + titleLabel.setPreferredSize(new Dimension(AlphaFineConstants.LEFT_WIDTH - OFFSET, AlphaFineConstants.CELL_HEIGHT)); } panel.add(titleLabel, BorderLayout.WEST); 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 26f85cb49..edf5c3fe9 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -74,10 +74,11 @@ public class AlphaFineDialog extends UIDialog { private Point pressedPoint; private UIScrollPane leftSearchResultPane; private JPanel rightSearchResultPane; - private JList searchResultList; + private AlphaFineList searchResultList; private SearchListModel searchListModel; private SwingWorker searchWorker; private SwingWorker showWorker; + private String storeText; //是否强制打开,因为面板是否关闭绑定了全局鼠标事件,这里需要处理一下 private boolean forceOpen; @@ -113,6 +114,9 @@ public class AlphaFineDialog extends UIDialog { }; } + /** + * 打开搜索框 + */ private static void doClickAction() { AlphaFineHelper.showAlphaFineDialog(false); } @@ -243,7 +247,7 @@ public class AlphaFineDialog extends UIDialog { private void showSearchResult() { if (searchResultPane == null) { initSearchResultComponents(); - initListListener(); + initTextFieldKeyListener(); } initSearchWorker(); } @@ -252,27 +256,8 @@ public class AlphaFineDialog extends UIDialog { * 初始化搜索面板 */ private void initSearchResultComponents() { - searchResultList = new JList() { - @Override - public void setSelectedIndex(int index) { - if (index > 0 && index < getModel().getSize()) { - int previousIndex = getSelectedIndex(); - super.setSelectedIndex(index); - Object object = getSelectedValue(); - if (object instanceof MoreModel || ((AlphaCellModel) object).hasNoResult()) { - if (previousIndex <= getSelectedIndex()) { - setSelectedIndex(index + 1); - } else { - setSelectedIndex(index - 1); - } - - } - } - ensureIndexIsVisible(getSelectedIndex()); - - } - }; - searchResultList.setFixedCellHeight(AlphaFineConstants.CELL_HEIGHT); + searchResultList = new AlphaFineList(); + //searchResultList.setFixedCellHeight(AlphaFineConstants.CELL_HEIGHT); searchListModel = new SearchListModel(new SearchResult()); searchResultList.setModel(searchListModel); searchResultPane = new JPanel(); @@ -310,9 +295,9 @@ public class AlphaFineDialog extends UIDialog { @Override protected void done() { - if (!isCancelled() && searchListModel.getSize() > 1) { - searchResultList.setSelectedIndex(1); - showResult(searchResultList.getSelectedIndex(), searchResultList.getSelectedValue()); + if (!isCancelled()) { + searchResultList.setSelectedIndex(0); + showResult(searchResultList.getSelectedValue()); } } }; @@ -326,23 +311,32 @@ public class AlphaFineDialog extends UIDialog { * @param searchText */ private void rebuildList(String searchText) { + searchResultList.resetSelectedIndex(); searchListModel.removeAllElements(); + searchResultList.resetSelectedIndex(); if (searchText.startsWith(ADVANCED_SEARCH_MARK)) { if (searchText.startsWith(ACTION_MARK_SHORT) || searchText.startsWith(ACTION_MARK)) { - getActionList(searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length())); + storeText = searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length()); + getActionList(storeText); } else if (searchText.startsWith(DOCUMENT_MARK_SHORT) || searchText.startsWith(DOCUMENT_MARK)) { - getDocumentList(searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length())); + storeText = searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length()); + getDocumentList(storeText); } else if (searchText.startsWith(FILE_MARK_SHORT) || searchText.startsWith(FILE_MARK)) { - getFileList(searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length())); + storeText = searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length()); + getFileList(storeText); } else if (searchText.startsWith(CPT_MARK) || searchText.startsWith(FRM_MARK)) { + storeText = searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length()); getFileList(searchText); } else if (searchText.startsWith(DS_MARK)) { - getFileList(DS_NAME + searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length())); + storeText = searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length()); + getFileList(DS_NAME + storeText); } else if (searchText.startsWith(PLUGIN_MARK_SHORT) || searchText.startsWith(PLUGIN_MARK)) { - getPluginList(searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length())); + storeText = searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length()); + getPluginList(storeText); } } else { - doNormalSearch(searchText.trim()); + storeText = searchText.trim(); + doNormalSearch(storeText); } } @@ -410,7 +404,7 @@ public class AlphaFineDialog extends UIDialog { } - private void showResult(int index, final Object selectedValue) { + private void showResult(final AlphaCellModel selectedValue) { if (selectedValue instanceof FileModel) { final String fileName = ((FileModel) selectedValue).getFilePath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1); showDefaultPreviewPane(); @@ -562,30 +556,7 @@ public class AlphaFineDialog extends UIDialog { initMouseListener(); } - /** - * 为面板中各组件添加监听器 - */ - private void initListListener() { - initListMouseListener(); - initListKeyListener(); - } - - private void initListKeyListener() { - /** - * 为list添加键盘监听器 - */ - searchResultList.addKeyListener(new KeyAdapter() { - @Override - public void keyPressed(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_ENTER) { - Object selectedValue = searchResultList.getSelectedValue(); - doNavigate(); - if (searchResultList.getSelectedValue() instanceof AlphaCellModel) { - saveHistory((AlphaCellModel) selectedValue); - } - } - } - }); + private void initTextFieldKeyListener() { /** * 为textField添加键盘监听器,按上下方向键时把焦点给list,实现键盘操作 */ @@ -599,40 +570,7 @@ public class AlphaFineDialog extends UIDialog { }); } - private void initListMouseListener() { - /** - * 鼠标监听器 - */ - searchResultList.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - int selectedIndex = searchResultList.getSelectedIndex(); - Object selectedValue = searchResultList.getSelectedValue(); - if (e.getClickCount() == 2) { - doNavigate(); - if (selectedValue instanceof AlphaCellModel) { - saveHistory((AlphaCellModel) selectedValue); - } - } else if (e.getClickCount() == 1) { - if (selectedValue instanceof MoreModel && ((MoreModel) selectedValue).isNeedMore()) { - HandleMoreOrLessResult(selectedIndex, (MoreModel) selectedValue); - } - } - } - }); - /** - *单击时触发右侧面板展示搜索结果 - */ - searchResultList.addListSelectionListener(new ListSelectionListener() { - @Override - public void valueChanged(ListSelectionEvent e) { - if (!e.getValueIsAdjusting()) { - showResult(searchResultList.getSelectedIndex(), searchResultList.getSelectedValue()); - } - } - }); - } /** * 窗口拖拽 @@ -706,10 +644,8 @@ public class AlphaFineDialog extends UIDialog { private void doNavigate() { AlphaFineDialog.this.dispose(); - final Object value = searchResultList.getSelectedValue(); - if (value instanceof AlphaCellModel) { - ((AlphaCellModel)(value)).doAction(); - } + final AlphaCellModel model = searchResultList.getSelectedValue(); + model.doAction(); } /** @@ -718,11 +654,10 @@ public class AlphaFineDialog extends UIDialog { * @param cellModel */ private void saveHistory(AlphaCellModel cellModel) { - String searchText = searchTextField.getText(); RecentSearchManager recentSearchManager = RecentSearchManager.getRecentSearchManger(); - recentSearchManager.addRecentModel(searchText, cellModel); + recentSearchManager.addRecentModel(storeText, cellModel); recentSearchManager.saveXMLFile(); - sendToServer(searchText, cellModel); + sendToServer(storeText, cellModel); } @@ -781,18 +716,6 @@ public class AlphaFineDialog extends UIDialog { } } - this.searchResultList.validate(); - this.searchResultList.repaint(); - validate(); - repaint(); - - } - - private void rebuildList() { - this.searchResultList.validate(); - this.searchResultList.repaint(); - validate(); - repaint(); } private SearchResult getMoreResult(MoreModel selectedValue) { @@ -842,4 +765,101 @@ public class AlphaFineDialog extends UIDialog { this.forceOpen = forceOpen; } + public String getStoreText() { + return storeText; + } + + public void setStoreText(String storeText) { + this.storeText = storeText; + } + + /** + * 自定义JList + */ + private class AlphaFineList extends JList { + + public AlphaFineList() { + initListListener(); + } + + /** + * 重置选项 + */ + public void resetSelectedIndex() { + super.setSelectedIndex(0); + } + + /** + * 重写选中的方法 + * @param index + */ + @Override + public void setSelectedIndex(int index) { + if (index >= 0 && index <= getModel().getSize()) { + int previousIndex = getSelectedIndex(); + super.setSelectedIndex(index); + AlphaCellModel cellModel = getSelectedValue(); + if (cellModel != null && cellModel.hasNoResult()) { + if (previousIndex <= getSelectedIndex()) { + setSelectedIndex(index + 1); + } else { + setSelectedIndex(index - 1); + } + + } + } + ensureIndexIsVisible(getSelectedIndex()); + } + + private void initListListener() { + + /** + * 为list添加键盘监听器 + */ + addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_ENTER) { + doNavigate(); + saveHistory(getSelectedValue()); + } + } + }); + + /** + * 为list添加鼠标监听器 + */ + addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + int selectedIndex = getSelectedIndex(); + AlphaCellModel selectedValue = getSelectedValue(); + if (e.getClickCount() == 2) { + doNavigate(); + saveHistory(selectedValue); + } else if (e.getClickCount() == 1) { + if (selectedValue instanceof MoreModel && ((MoreModel) selectedValue).isNeedMore()) { + HandleMoreOrLessResult(selectedIndex, (MoreModel) selectedValue); + } + } + } + }); + + /** + *单击时触发右侧面板展示搜索结果 + */ + addListSelectionListener(new ListSelectionListener() { + @Override + public void valueChanged(ListSelectionEvent e) { + if (!e.getValueIsAdjusting()) { + showResult(getSelectedValue()); + + } + } + }); + } + + + } + } \ No newline at end of file From 908d71ad7ead9b6f1e3bb11df11c728142a524c3 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 19:28:27 +0800 Subject: [PATCH 03/21] =?UTF-8?q?bug=20fix=20=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 --- .../alphafine/AlphaFineConstants.java | 9 ++-- .../alphafine/cell/model/MoreModel.java | 41 ++----------------- .../alphafine/component/AlphaFineDialog.java | 4 +- .../manager/RecommendSearchManager.java | 5 +-- 4 files changed, 13 insertions(+), 46 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java index 4e7c817c4..d5b4ed298 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java +++ b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java @@ -81,9 +81,12 @@ public class AlphaFineConstants { public static final String PLUGIN_IMAGE_URL = "http://shopres.finereport.com/"; - public static final String SERVER_URL = "http://cloud.fanruan.com/api/monitor/record_of_afsearch/single"; + public static final String CLOUD_SERVER_URL = "http://cloud.fanruan.com/api/monitor/record_of_afsearch/single"; - //TODO:先用本地服务器测试一下,避免影响云中心正常信息收集 - public static final String CLOUD_TEST_URL = "http://localhost:8080/cloud/monitor/record_of_afsearch/single"; + public static final String SEARCHAPI = "http://lcloud.fanruan.com/api/intelligence/search/recommend?searchKey="; + + //private static final String SEARCHAPI = "http://localhost:8080/cloud/intelligence/search/recommend?searchKey="; + + //public static final String CLOUD_TEST_URL = "http://localhost:8080/cloud/monitor/record_of_afsearch/single"; } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java index e11f45cb4..1257c6aae 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java @@ -8,43 +8,24 @@ import com.fr.json.JSONObject; * Created by XiaXiang on 2017/4/20. */ public class MoreModel extends AlphaCellModel { - private String name; private boolean needMore; - private String content; - private CellType type; private boolean isLoading; public MoreModel(String name, String content, boolean needMore, CellType type) { - this.name = name; + super(name, content, type); this.needMore = needMore; - this.content = content; - this.type = type; } public MoreModel(String name, CellType type) { - this.name = name; + super(name, null, type); this.needMore = false; - this.type = type; - } - - public MoreModel(String name) { - this.name = name; - this.isLoading = true; } public MoreModel(String name, boolean isLoading) { - this.name = name; + super(name, null); this.isLoading = isLoading; } - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - public boolean isNeedMore() { return needMore; } @@ -53,14 +34,6 @@ public class MoreModel extends AlphaCellModel { this.needMore = needMore; } - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - @Override public JSONObject ModelToJson() throws JSONException { return null; @@ -76,14 +49,6 @@ public class MoreModel extends AlphaCellModel { } - public CellType getType() { - return type; - } - - public void setType(CellType type) { - this.type = type; - } - public boolean isLoading() { return isLoading; } 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 edf5c3fe9..4f2d9f0cd 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -257,7 +257,7 @@ public class AlphaFineDialog extends UIDialog { */ private void initSearchResultComponents() { searchResultList = new AlphaFineList(); - //searchResultList.setFixedCellHeight(AlphaFineConstants.CELL_HEIGHT); + searchResultList.setFixedCellHeight(AlphaFineConstants.CELL_HEIGHT); searchListModel = new SearchListModel(new SearchResult()); searchResultList.setModel(searchListModel); searchResultPane = new JPanel(); @@ -686,7 +686,7 @@ public class AlphaFineDialog extends UIDialog { String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); para.put("token", CodeUtils.md5Encode(date, "", "MD5")); para.put("content", object.toString()); - HttpClient httpClient = new HttpClient(AlphaFineConstants.CLOUD_TEST_URL, para, true); + HttpClient httpClient = new HttpClient(AlphaFineConstants.CLOUD_SERVER_URL, para, true); httpClient.setTimeout(5000); httpClient.asGet(); if (!httpClient.isServerAlive()) { diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java index d5ffd61e5..4f7051bc0 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe.alphafine.search.manager; import com.fr.design.DesignerEnvManager; +import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.CellType; import com.fr.design.mainframe.alphafine.cell.CellModelHelper; @@ -24,8 +25,6 @@ import java.util.List; * Created by XiaXiang on 2017/3/31. */ public class RecommendSearchManager implements AlphaFineSearchProcessor { - //todo:for test - private static final String SEARCHAPI = "http://localhost:8080/cloud/intelligence/search/recommend?searchKey="; private static RecommendSearchManager recommendSearchManager = null; private SearchResult modelList; private List recommendModelList = new ArrayList<>(); @@ -43,7 +42,7 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { this.recommendModelList = new ArrayList<>(); if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainRecommend()) { String result; - HttpClient httpClient = new HttpClient(SEARCHAPI + CodeUtils.cjkEncode(searchText)); + HttpClient httpClient = new HttpClient(AlphaFineConstants.SEARCHAPI + CodeUtils.cjkEncode(searchText)); httpClient.asGet(); httpClient.setTimeout(5000); if (!httpClient.isServerAlive()) { From 8c767f7aaaa7e57fa2cee96c3d7028de1d56f05f Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 20:19:38 +0800 Subject: [PATCH 04/21] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F=20bu?= =?UTF-8?q?g=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 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 4f2d9f0cd..7ee184f21 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -295,7 +295,7 @@ public class AlphaFineDialog extends UIDialog { @Override protected void done() { - if (!isCancelled()) { + if (!isCancelled() && getModel().getSize() > 0) { searchResultList.setSelectedIndex(0); showResult(searchResultList.getSelectedValue()); } @@ -311,9 +311,7 @@ public class AlphaFineDialog extends UIDialog { * @param searchText */ private void rebuildList(String searchText) { - searchResultList.resetSelectedIndex(); - searchListModel.removeAllElements(); - searchResultList.resetSelectedIndex(); + 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()); @@ -341,6 +339,17 @@ public class AlphaFineDialog extends UIDialog { } + /** + * 重置面板 + */ + private void resetContainer() { + searchResultList.resetSelectedIndex(); + searchListModel.removeAllElements(); + rightSearchResultPane.removeAll(); + rightSearchResultPane.validate(); + rightSearchResultPane.repaint(); + } + /** * 普通搜索 * @@ -569,9 +578,7 @@ public class AlphaFineDialog extends UIDialog { } }); } - - - + /** * 窗口拖拽 */ @@ -773,6 +780,11 @@ public class AlphaFineDialog extends UIDialog { this.storeText = storeText; } + + + //------------------------------------------------------ + //----------------------自定义list----------------------- + //------------------------------------------------------ /** * 自定义JList */ @@ -795,7 +807,7 @@ public class AlphaFineDialog extends UIDialog { */ @Override public void setSelectedIndex(int index) { - if (index >= 0 && index <= getModel().getSize()) { + if (index >=0 && checkSelectedIndex(index)) { int previousIndex = getSelectedIndex(); super.setSelectedIndex(index); AlphaCellModel cellModel = getSelectedValue(); @@ -811,6 +823,11 @@ public class AlphaFineDialog extends UIDialog { ensureIndexIsVisible(getSelectedIndex()); } + private boolean checkSelectedIndex(int index) { + int size = getModel().getSize(); + return size > 0 && index < size; + } + private void initListListener() { /** @@ -834,7 +851,7 @@ public class AlphaFineDialog extends UIDialog { public void mouseClicked(MouseEvent e) { int selectedIndex = getSelectedIndex(); AlphaCellModel selectedValue = getSelectedValue(); - if (e.getClickCount() == 2) { + if (e.getClickCount() == 2 && !selectedValue.hasNoResult()) { doNavigate(); saveHistory(selectedValue); } else if (e.getClickCount() == 1) { From 9dc3b0c778afa7aa0ed43924bfdf999085d48354 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 20:20:10 +0800 Subject: [PATCH 05/21] bug fix --- .../alphafine/search/manager/DocumentSearchManager.java | 2 +- .../mainframe/alphafine/search/manager/PluginSearchManager.java | 2 +- .../alphafine/search/manager/RecommendSearchManager.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java index c9418792f..e212cc796 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java @@ -58,11 +58,11 @@ public class DocumentSearchManager implements AlphaFineSearchProcessor { String result; String url = AlphaFineConstants.DOCUMENT_SEARCH_URL + searchText + "-1"; HttpClient httpClient = new HttpClient(url); - httpClient.setTimeout(5000); httpClient.asGet(); if (!httpClient.isServerAlive()) { return getNoConnectList(); } + httpClient.setTimeout(5000); result = httpClient.getResponseText(); AlphaFineHelper.checkCancel(); try { diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java index 3e457fd1a..5eeddf6ba 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java @@ -93,11 +93,11 @@ public class PluginSearchManager implements AlphaFineSearchProcessor { String encodedKey = URLEncoder.encode(searchText, "UTF-8"); String url = AlphaFineConstants.PLUGIN_SEARCH_URL + "?keyword=" + encodedKey; HttpClient httpClient = new HttpClient(url); - httpClient.setTimeout(5000); httpClient.asGet(); if (!httpClient.isServerAlive()) { return getNoConnectList(); } + httpClient.setTimeout(5000); result = httpClient.getResponseText(); AlphaFineHelper.checkCancel(); JSONObject jsonObject = new JSONObject(result); diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java index 4f7051bc0..b78e9b02d 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java @@ -44,10 +44,10 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { String result; HttpClient httpClient = new HttpClient(AlphaFineConstants.SEARCHAPI + CodeUtils.cjkEncode(searchText)); httpClient.asGet(); - httpClient.setTimeout(5000); if (!httpClient.isServerAlive()) { return getNoConnectList(); } + httpClient.setTimeout(5000); result = httpClient.getResponseText(); AlphaFineHelper.checkCancel(); try { From 2914f37a2ef3a538cdd48be8d9bd85db8815af6e Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 20:27:54 +0800 Subject: [PATCH 06/21] bug fix --- .../alphafine/component/AlphaFineDialog.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 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 7ee184f21..4c924ff2d 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -578,7 +578,7 @@ public class AlphaFineDialog extends UIDialog { } }); } - + /** * 窗口拖拽 */ @@ -781,12 +781,11 @@ public class AlphaFineDialog extends UIDialog { } - - //------------------------------------------------------ - //----------------------自定义list----------------------- - //------------------------------------------------------ /** - * 自定义JList + +-------------------------------------+ + | 自定义JList | + | | + +-------------------------------------+ */ private class AlphaFineList extends JList { From 23fcda78b912e1e144415f53c60a6b9049ddca3c Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 20:32:17 +0800 Subject: [PATCH 07/21] rt --- .../fr/design/mainframe/alphafine/component/AlphaFineDialog.java | 1 - 1 file changed, 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 4c924ff2d..db75c7b39 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -784,7 +784,6 @@ public class AlphaFineDialog extends UIDialog { /** +-------------------------------------+ | 自定义JList | - | | +-------------------------------------+ */ private class AlphaFineList extends JList { From 6e401c117ccbf204d6f0055eac1e1b4246f1ea74 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 21:05:18 +0800 Subject: [PATCH 08/21] =?UTF-8?q?bug=20fix=20=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 --- .../design/mainframe/alphafine/CellType.java | 2 +- .../alphafine/cell/model/MoreModel.java | 16 +- .../alphafine/component/AlphaFineDialog.java | 192 ++++++++++-------- .../search/manager/ActionSearchManager.java | 2 +- .../search/manager/DocumentSearchManager.java | 2 +- .../search/manager/FileSearchManager.java | 2 +- .../search/manager/PluginSearchManager.java | 2 +- 7 files changed, 122 insertions(+), 96 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/CellType.java b/designer/src/com/fr/design/mainframe/alphafine/CellType.java index 23c6cc699..0f4f61a42 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/CellType.java +++ b/designer/src/com/fr/design/mainframe/alphafine/CellType.java @@ -4,7 +4,7 @@ package com.fr.design.mainframe.alphafine; * Created by XiaXiang on 2017/4/27. */ public enum CellType { - RECOMMEND(0), ACTION(1), DOCUMENT(2), FILE(3), PLUGIN(4), REUSE(5), NO_RESULT(6); + RECOMMEND(0), ACTION(1), DOCUMENT(2), FILE(3), PLUGIN(4), REUSE(5), NO_RESULT(6), MORE(7); private int typeValue; diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java index 1257c6aae..4abda1789 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java @@ -10,14 +10,16 @@ import com.fr.json.JSONObject; public class MoreModel extends AlphaCellModel { private boolean needMore; private boolean isLoading; + private CellType contentType; public MoreModel(String name, String content, boolean needMore, CellType type) { - super(name, content, type); + super(name, content, CellType.MORE); this.needMore = needMore; + this.contentType = type; } - public MoreModel(String name, CellType type) { - super(name, null, type); + public MoreModel(String name) { + super(name, null, CellType.MORE); this.needMore = false; } @@ -66,4 +68,12 @@ public class MoreModel extends AlphaCellModel { public boolean isNeedToSendToServer() { return false; } + + public CellType getContentType() { + return contentType; + } + + public void setContentType(CellType contentType) { + this.contentType = contentType; + } } 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 db75c7b39..941cfaaf4 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -414,115 +414,131 @@ public class AlphaFineDialog extends UIDialog { } private void showResult(final AlphaCellModel selectedValue) { - if (selectedValue instanceof FileModel) { - final String fileName = ((FileModel) selectedValue).getFilePath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1); - showDefaultPreviewPane(); - if (fileName.endsWith(ProjectConstants.FRM_SUFFIX)) { - checkWorker(); - this.showWorker = new SwingWorker() { - @Override - protected BufferedImage doInBackground() throws Exception { - Form form = FormIO.readForm(FRContext.getCurrentEnv(), fileName); - return FormIO.exportFormAsImage(form); - } - - @Override - protected void done() { - if (!isCancelled()) { - rightSearchResultPane.removeAll(); + switch (selectedValue.getType()) { + case FILE: + final String fileName = ((FileModel) selectedValue).getFilePath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1); + showDefaultPreviewPane(); + if (fileName.endsWith(ProjectConstants.FRM_SUFFIX)) { + checkWorker(); + this.showWorker = new SwingWorker() { + @Override + protected BufferedImage doInBackground() { + Form form = null; try { - rightSearchResultPane.add(new FilePreviewPane(get())); - } catch (InterruptedException e) { + form = FormIO.readForm(FRContext.getCurrentEnv(), fileName); + } catch (Exception e) { FRLogger.getLogger().error(e.getMessage()); - } catch (ExecutionException e) { + } + return FormIO.exportFormAsImage(form); + } + + @Override + protected void done() { + if (!isCancelled()) { + rightSearchResultPane.removeAll(); + try { + rightSearchResultPane.add(new FilePreviewPane(get())); + } catch (InterruptedException e) { + FRLogger.getLogger().error(e.getMessage()); + } catch (ExecutionException e) { + FRLogger.getLogger().error(e.getMessage()); + } + validate(); + repaint(); + } + + } + }; + this.showWorker.execute(); + } else if (fileName.endsWith(ProjectConstants.CPT_SUFFIX)) { + checkWorker(); + this.showWorker = new SwingWorker() { + @Override + protected BufferedImage doInBackground() { + WorkBook workBook = null; + try { + workBook = (WorkBook) TemplateWorkBookIO.readTemplateWorkBook(FRContext.getCurrentEnv(), fileName); + } catch (Exception e) { FRLogger.getLogger().error(e.getMessage()); } - validate(); - repaint(); + BufferedImage bufferedImage = new ImageExporter().exportToImage(workBook); + return bufferedImage; } - } - }; - this.showWorker.execute(); - } else if (fileName.endsWith(ProjectConstants.CPT_SUFFIX)) { + @Override + protected void done() { + if (!isCancelled()) { + rightSearchResultPane.removeAll(); + try { + rightSearchResultPane.add(new FilePreviewPane(get())); + validate(); + repaint(); + } catch (InterruptedException e) { + FRLogger.getLogger().error(e.getMessage()); + } catch (ExecutionException e) { + FRLogger.getLogger().error(e.getMessage()); + } + } + + } + }; + this.showWorker.execute(); + } + break; + case ACTION: + rightSearchResultPane.removeAll(); + rightSearchResultPane.add(new ActionPreviewPane()); + validate(); + repaint(); + break; + case DOCUMENT: + rightSearchResultPane.removeAll(); + rightSearchResultPane.add(new DocumentPreviewPane((selectedValue).getName(), (selectedValue).getContent())); + validate(); + repaint(); + break; + case PLUGIN: + case REUSE: + showDefaultPreviewPane(); checkWorker(); - this.showWorker = new SwingWorker() { + this.showWorker = new SwingWorker() { @Override - protected BufferedImage doInBackground() throws Exception { - WorkBook workBook = (WorkBook) TemplateWorkBookIO.readTemplateWorkBook(FRContext.getCurrentEnv(), fileName); - BufferedImage bufferedImage = new ImageExporter().exportToImage(workBook); + protected Image doInBackground() { + BufferedImage bufferedImage = null; + try { + bufferedImage = ImageIO.read(new URL(((PluginModel) selectedValue).getImageUrl())); + } catch (IOException e) { + try { + bufferedImage = ImageIO.read(getClass().getResource("/com/fr/design/mainframe/alphafine/images/default_product.png")); + } catch (IOException e1) { + FRLogger.getLogger().error(e.getMessage()); + } + } return bufferedImage; } @Override protected void done() { - if (!isCancelled()) { - rightSearchResultPane.removeAll(); - try { - rightSearchResultPane.add(new FilePreviewPane(get())); + try { + if (!isCancelled()) { + rightSearchResultPane.removeAll(); + rightSearchResultPane.add(new PluginPreviewPane((selectedValue).getName(), get(), ((PluginModel) selectedValue).getVersion(), ((PluginModel) selectedValue).getJartime(), ((PluginModel) selectedValue).getType(), ((PluginModel) selectedValue).getPrice())); validate(); repaint(); - } catch (InterruptedException e) { - FRLogger.getLogger().error(e.getMessage()); - } catch (ExecutionException e) { - FRLogger.getLogger().error(e.getMessage()); } + } catch (InterruptedException e) { + FRLogger.getLogger().error(e.getMessage()); + } catch (ExecutionException e) { + FRLogger.getLogger().error(e.getMessage()); } } }; this.showWorker.execute(); + break; + default: + return; - - } - } else if (selectedValue instanceof DocumentModel) { - rightSearchResultPane.removeAll(); - rightSearchResultPane.add(new DocumentPreviewPane(((DocumentModel) selectedValue).getName(), ((DocumentModel) selectedValue).getContent())); - validate(); - repaint(); - } else if (selectedValue instanceof PluginModel) { - showDefaultPreviewPane(); - checkWorker(); - this.showWorker = new SwingWorker() { - @Override - protected Image doInBackground() { - BufferedImage bufferedImage = null; - try { - bufferedImage = ImageIO.read(new URL(((PluginModel) selectedValue).getImageUrl())); - } catch (IOException e) { - try { - bufferedImage = ImageIO.read(getClass().getResource("/com/fr/design/mainframe/alphafine/images/default_product.png")); - } catch (IOException e1) { - FRLogger.getLogger().error(e.getMessage()); - } - } - return bufferedImage; - } - - @Override - protected void done() { - try { - if (!isCancelled()) { - rightSearchResultPane.removeAll(); - rightSearchResultPane.add(new PluginPreviewPane(((PluginModel) selectedValue).getName(), get(), ((PluginModel) selectedValue).getVersion(), ((PluginModel) selectedValue).getJartime(), ((PluginModel) selectedValue).getType(), ((PluginModel) selectedValue).getPrice())); - validate(); - repaint(); - } - } catch (InterruptedException e) { - FRLogger.getLogger().error(e.getMessage()); - } catch (ExecutionException e) { - FRLogger.getLogger().error(e.getMessage()); - } - - } - }; - this.showWorker.execute(); - - } else if (selectedValue instanceof ActionModel) { - rightSearchResultPane.removeAll(); - rightSearchResultPane.add(new ActionPreviewPane()); - validate(); - repaint(); } } @@ -727,7 +743,7 @@ public class AlphaFineDialog extends UIDialog { private SearchResult getMoreResult(MoreModel selectedValue) { SearchResult moreResult; - switch (selectedValue.getType()) { + switch (selectedValue.getContentType()) { case PLUGIN: moreResult = PluginSearchManager.getPluginSearchManager().getMoreSearchResult(); break; diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java index 6b048c4a4..6907ea3b3 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java @@ -20,7 +20,7 @@ import java.util.List; * Created by XiaXiang on 2017/3/27. */ public class ActionSearchManager implements AlphaFineSearchProcessor { - private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_Set"), CellType.ACTION); + private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_Set")); private static ActionSearchManager actionSearchManager = null; private SearchResult filterModelList; private SearchResult lessModelList; diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java index e212cc796..40eaea686 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java @@ -19,7 +19,7 @@ import com.fr.stable.StringUtils; * Created by XiaXiang on 2017/3/27. */ public class DocumentSearchManager implements AlphaFineSearchProcessor { - private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_COMMUNITY_HELP"), CellType.DOCUMENT); + private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_COMMUNITY_HELP")); private static DocumentSearchManager documentSearchManager = null; private SearchResult lessModelList; private SearchResult moreModelList; diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java index c198ee917..1a0c04412 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java @@ -30,7 +30,7 @@ public class FileSearchManager implements AlphaFineSearchProcessor { private static final String DS_NAME = "dsname=\""; private static final String FRM_PREFIX = "k:frm "; private static final String CPT_PREFIX = "k:cpt "; - private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_Templates"), CellType.FILE); + private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_Templates")); private static FileSearchManager fileSearchManager = null; private SearchResult filterModelList; private SearchResult lessModelList; diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java index 5eeddf6ba..e3be0c964 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java @@ -23,7 +23,7 @@ import java.net.URLEncoder; * Created by XiaXiang on 2017/3/27. */ public class PluginSearchManager implements AlphaFineSearchProcessor { - private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer-Plugin_Addon"), CellType.PLUGIN); + private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer-Plugin_Addon")); private static PluginSearchManager pluginSearchManager = null; private SearchResult lessModelList; private SearchResult moreModelList; From de5b91ac46a0d58449105f849a1b121beea460bc Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 21:06:30 +0800 Subject: [PATCH 09/21] bug fix --- .../mainframe/alphafine/cell/model/AlphaCellModel.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java index aa5c6a59b..064f1b615 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java @@ -27,11 +27,7 @@ public abstract class AlphaCellModel implements Comparable { this.content = content; } - - public AlphaCellModel() { - - } - + public CellType getType() { return type; } From be00139f08aba549df640ea3ce5b32deae9dbcc4 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 21:10:26 +0800 Subject: [PATCH 10/21] rt --- .../design/mainframe/alphafine/component/AlphaFineDialog.java | 4 ++++ 1 file changed, 4 insertions(+) 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 941cfaaf4..c578785c2 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -413,6 +413,10 @@ public class AlphaFineDialog extends UIDialog { } + /** + * 右侧面板展示搜索结果的内容 + * @param selectedValue + */ private void showResult(final AlphaCellModel selectedValue) { switch (selectedValue.getType()) { case FILE: From 8b264630c2544fc0659557558bbb4bd2d5b946a2 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 21:58:57 +0800 Subject: [PATCH 11/21] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 12 +++++------ .../alphafine/model/SearchListModel.java | 14 +++++++------ .../alphafine/model/SearchResult.java | 4 +++- .../search/manager/ActionSearchManager.java | 3 ++- .../search/manager/FileSearchManager.java | 3 ++- .../search/manager/RecentSearchManager.java | 20 ++++++++----------- .../manager/RecommendSearchManager.java | 7 ++----- 7 files changed, 31 insertions(+), 32 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 c578785c2..8459caca8 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -366,7 +366,7 @@ public class AlphaFineDialog extends UIDialog { private void getDocumentList(final String searchText) { SearchResult documentModelList = DocumentSearchManager.getDocumentSearchManager().getLessSearchResult(searchText); - for (Object object : documentModelList) { + for (AlphaCellModel object : documentModelList) { AlphaFineHelper.checkCancel(); searchListModel.addElement(object); } @@ -374,7 +374,7 @@ public class AlphaFineDialog extends UIDialog { private void getFileList(final String searchText) { SearchResult fileModelList = FileSearchManager.getFileSearchManager().getLessSearchResult(searchText); - for (Object object : fileModelList) { + for (AlphaCellModel object : fileModelList) { AlphaFineHelper.checkCancel(); searchListModel.addElement(object); } @@ -382,7 +382,7 @@ public class AlphaFineDialog extends UIDialog { private void getActionList(final String searchText) { SearchResult actionModelList = ActionSearchManager.getActionSearchManager().getLessSearchResult(searchText); - for (Object object : actionModelList) { + for (AlphaCellModel object : actionModelList) { AlphaFineHelper.checkCancel(); searchListModel.addElement(object); } @@ -390,7 +390,7 @@ public class AlphaFineDialog extends UIDialog { private void getPluginList(final String searchText) { SearchResult pluginModelList = PluginSearchManager.getPluginSearchManager().getLessSearchResult(searchText); - for (Object object : pluginModelList) { + for (AlphaCellModel object : pluginModelList) { AlphaFineHelper.checkCancel(); searchListModel.addElement(object); } @@ -398,7 +398,7 @@ public class AlphaFineDialog extends UIDialog { private void getRecommendList(final String searchText) { SearchResult recommendModelList = RecommendSearchManager.getRecommendSearchManager().getLessSearchResult(searchText); - for (Object object : recommendModelList) { + for (AlphaCellModel object : recommendModelList) { AlphaFineHelper.checkCancel(); searchListModel.addElement(object); } @@ -406,7 +406,7 @@ public class AlphaFineDialog extends UIDialog { private void getRecentList(final String searchText) { SearchResult recentModelList = RecentSearchManager.getRecentSearchManger().getLessSearchResult(searchText); - for (Object object : recentModelList) { + for (AlphaCellModel object : recentModelList) { AlphaFineHelper.checkCancel(); searchListModel.addElement(object); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/model/SearchListModel.java b/designer/src/com/fr/design/mainframe/alphafine/model/SearchListModel.java index 05eb401de..303e778e8 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/model/SearchListModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/model/SearchListModel.java @@ -1,11 +1,13 @@ package com.fr.design.mainframe.alphafine.model; +import com.fr.design.mainframe.alphafine.cell.model.AlphaCellModel; + import javax.swing.*; /** * Created by XiaXiang on 2017/4/20. */ -public class SearchListModel extends DefaultListModel { +public class SearchListModel extends DefaultListModel { SearchResult myDelegate; public SearchListModel(SearchResult searchResult) { @@ -13,26 +15,26 @@ public class SearchListModel extends DefaultListModel { } @Override - public void addElement(Object element) { + public void addElement(AlphaCellModel element) { int index = myDelegate.size(); myDelegate.add(element); fireContentsChanged(this, index, index); } @Override - public Object getElementAt(int index) { + public AlphaCellModel getElementAt(int index) { return myDelegate.get(index); } @Override - public void add(int index, Object element) { + public void add(int index, AlphaCellModel element) { myDelegate.add(index, element); fireIntervalAdded(this, index, index); } @Override - public Object remove(int index) { - Object object = myDelegate.get(index); + public AlphaCellModel remove(int index) { + AlphaCellModel object = myDelegate.get(index); myDelegate.remove(object); fireIntervalRemoved(this, index, index); return object; diff --git a/designer/src/com/fr/design/mainframe/alphafine/model/SearchResult.java b/designer/src/com/fr/design/mainframe/alphafine/model/SearchResult.java index 523ead7e0..4ebe963fa 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/model/SearchResult.java +++ b/designer/src/com/fr/design/mainframe/alphafine/model/SearchResult.java @@ -1,11 +1,13 @@ package com.fr.design.mainframe.alphafine.model; +import com.fr.design.mainframe.alphafine.cell.model.AlphaCellModel; + import java.util.ArrayList; /** * Created by XiaXiang on 2017/4/20. */ -public class SearchResult extends ArrayList { +public class SearchResult extends ArrayList { private boolean needMore; diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java index 6907ea3b3..a05021503 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java @@ -5,6 +5,7 @@ import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.CellType; import com.fr.design.mainframe.alphafine.cell.model.ActionModel; +import com.fr.design.mainframe.alphafine.cell.model.AlphaCellModel; import com.fr.design.mainframe.alphafine.cell.model.MoreModel; import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.toolbar.UpdateActionManager; @@ -70,7 +71,7 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { } } SearchResult result = new SearchResult(); - for (Object object : filterModelList) { + for (AlphaCellModel object : filterModelList) { if (!AlphaFineHelper.getFilterResult().contains(object)) { result.add(object); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java index 1a0c04412..843145f7d 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java @@ -6,6 +6,7 @@ import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.CellType; +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.model.SearchResult; @@ -94,7 +95,7 @@ public class FileSearchManager implements AlphaFineSearchProcessor { } SearchResult result = new SearchResult(); - for (Object object : filterModelList) { + for (AlphaCellModel object : filterModelList) { if (!AlphaFineHelper.getFilterResult().contains(object)) { result.add(object); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecentSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecentSearchManager.java index 4e70277f1..16de73fc0 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecentSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecentSearchManager.java @@ -39,8 +39,8 @@ public class RecentSearchManager extends XMLFileManager implements AlphaFineSear private static RecentSearchManager recentSearchManager = null; private static File recentFile = null; private SearchResult modelList; - private List recentModelList = new ArrayList<>(); - private Map> recentKVModelMap = new HashMap<>(); + private SearchResult recentModelList; + private Map recentKVModelMap = new HashMap<>(); public synchronized static RecentSearchManager getRecentSearchManger() { if (recentSearchManager == null) { @@ -64,7 +64,7 @@ public class RecentSearchManager extends XMLFileManager implements AlphaFineSear String nodeName = reader.getTagName(); if (nodeName.equals("RecentModelList")) { String key = reader.getAttrAsString("searchKey", StringUtils.EMPTY); - final ArrayList list = new ArrayList<>(); + final SearchResult list = new SearchResult(); reader.readXMLObject(new XMLReadable() { @Override public void readXML(XMLableReader reader) { @@ -206,23 +206,19 @@ public class RecentSearchManager extends XMLFileManager implements AlphaFineSear return recentModelList; } - public void setRecentModelList(List recentModelList) { - this.recentModelList = recentModelList; - } - /** * 根据搜索字段获取对应的model列表 * * @param searchText * @return */ - public synchronized List getRecentModelList(String searchText) { - recentModelList = new ArrayList<>(); + private synchronized SearchResult getRecentModelList(String searchText) { + recentModelList = new SearchResult(); for (String key : recentKVModelMap.keySet()) { AlphaFineHelper.checkCancel(); if (ComparatorUtils.equals(key, searchText)) { recentModelList = recentKVModelMap.get(searchText); - List resultModelList = new ArrayList<>(recentModelList); + SearchResult resultModelList = recentModelList; Iterator modelIterator = resultModelList.iterator(); while (modelIterator.hasNext()) { AlphaCellModel model = modelIterator.next(); @@ -234,7 +230,7 @@ public class RecentSearchManager extends XMLFileManager implements AlphaFineSear Collections.sort(resultModelList); int size = resultModelList.size(); if (size > MAX_SIZE) { - return resultModelList.subList(0, MAX_SIZE); + return (SearchResult) resultModelList.subList(0, MAX_SIZE); } return resultModelList; } @@ -259,7 +255,7 @@ public class RecentSearchManager extends XMLFileManager implements AlphaFineSear } //trimToSize(cellModels); } else { - List list = new ArrayList<>(); + SearchResult list = new SearchResult(); list.add(cellModel); recentKVModelMap.put(searchKey, list); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java index b78e9b02d..a7577af3a 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java @@ -27,7 +27,7 @@ import java.util.List; public class RecommendSearchManager implements AlphaFineSearchProcessor { private static RecommendSearchManager recommendSearchManager = null; private SearchResult modelList; - private List recommendModelList = new ArrayList<>(); + private SearchResult recommendModelList; public synchronized static RecommendSearchManager getRecommendSearchManager() { if (recommendSearchManager == null) { @@ -39,7 +39,7 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { @Override public synchronized SearchResult getLessSearchResult(String searchText) { this.modelList = new SearchResult(); - this.recommendModelList = new ArrayList<>(); + this.recommendModelList = new SearchResult(); if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainRecommend()) { String result; HttpClient httpClient = new HttpClient(AlphaFineConstants.SEARCHAPI + CodeUtils.cjkEncode(searchText)); @@ -105,7 +105,4 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { return recommendModelList; } - public void setRecommendModelList(List recommendModelList) { - this.recommendModelList = recommendModelList; - } } From b923aea0033f840680075846928e8c7094126c7a Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 22:23:10 +0800 Subject: [PATCH 12/21] =?UTF-8?q?bug=20fix=20=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 --- .../alphafine/cell/model/AlphaCellModel.java | 4 ++-- .../mainframe/alphafine/cell/model/MoreModel.java | 4 ++-- .../alphafine/cell/model/NoResultModel.java | 4 ++-- .../alphafine/cell/render/ContentCellRender.java | 14 +++++++------- .../alphafine/component/AlphaFineDialog.java | 4 ++-- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java index 064f1b615..1ba4e1a24 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/AlphaCellModel.java @@ -61,8 +61,8 @@ public abstract class AlphaCellModel implements Comparable { this.description = description; } - public boolean hasNoResult() { - return false; + public boolean hasAction() { + return true; } public boolean isNeedToSendToServer() { diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java index 4abda1789..a811e8603 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java @@ -60,8 +60,8 @@ public class MoreModel extends AlphaCellModel { } @Override - public boolean hasNoResult() { - return true; + public boolean hasAction() { + return false; } @Override diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/NoResultModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/NoResultModel.java index 4d52a288f..81b19e763 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/NoResultModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/NoResultModel.java @@ -28,8 +28,8 @@ public class NoResultModel extends AlphaCellModel { } @Override - public boolean hasNoResult() { - return true; + public boolean hasAction() { + return false; } @Override diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java b/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java index 18026d66a..28d70e5b7 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/render/ContentCellRender.java @@ -26,18 +26,18 @@ public class ContentCellRender implements ListCellRenderer { AlphaCellModel model = (AlphaCellModel) value; JPanel panel = new JPanel(new BorderLayout()); panel.setBackground(null); - if (isSelected && !model.hasNoResult()) { - panel.setBackground(AlphaFineConstants.BLUE); - } panel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0)); titleLabel.setText(" " + model.getName()); String iconUrl = "/com/fr/design/mainframe/alphafine/images/alphafine" + model.getType().getTypeValue() + ".png"; - if (model.hasNoResult()) { - titleLabel.setIcon(null); - titleLabel.setForeground(AlphaFineConstants.MEDIUM_GRAY); - } else { + if (model.hasAction()) { + if (isSelected) { + panel.setBackground(AlphaFineConstants.BLUE); + } titleLabel.setIcon(new ImageIcon(IOUtils.readImage(iconUrl))); titleLabel.setForeground(AlphaFineConstants.BLACK); + } else { + titleLabel.setIcon(null); + titleLabel.setForeground(AlphaFineConstants.MEDIUM_GRAY); } titleLabel.setFont(AlphaFineConstants.MEDIUM_FONT); String description = model.getDescription(); 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 8459caca8..c88aea15d 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -829,7 +829,7 @@ public class AlphaFineDialog extends UIDialog { int previousIndex = getSelectedIndex(); super.setSelectedIndex(index); AlphaCellModel cellModel = getSelectedValue(); - if (cellModel != null && cellModel.hasNoResult()) { + if (cellModel != null && !cellModel.hasAction()) { if (previousIndex <= getSelectedIndex()) { setSelectedIndex(index + 1); } else { @@ -869,7 +869,7 @@ public class AlphaFineDialog extends UIDialog { public void mouseClicked(MouseEvent e) { int selectedIndex = getSelectedIndex(); AlphaCellModel selectedValue = getSelectedValue(); - if (e.getClickCount() == 2 && !selectedValue.hasNoResult()) { + if (e.getClickCount() == 2 && selectedValue.hasAction()) { doNavigate(); saveHistory(selectedValue); } else if (e.getClickCount() == 1) { From 72da1856b680605ad3d3ffcd3b197e8d6ac1c079 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 27 Jun 2017 22:32:50 +0800 Subject: [PATCH 13/21] bug fix --- .../search/manager/RecommendSearchManager.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java index a7577af3a..f9df17553 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java @@ -17,7 +17,6 @@ import com.fr.json.JSONException; import com.fr.json.JSONObject; import com.fr.stable.CodeUtils; -import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -64,7 +63,6 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { } } } - } catch (JSONException e) { FRLogger.getLogger().error("recommend search error! :" + e.getMessage()); } @@ -74,17 +72,21 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { if (model.getType() == CellType.ACTION && !((ActionModel) model).getAction().isEnabled()) { modelIterator.remove(); } - } if (recommendModelList.size() > 0) { modelList.add(new MoreModel(Inter.getLocText("FR-Designer_AlphaFine_Recommend"), false)); modelList.addAll(recommendModelList); } } - return modelList; } + /** + * 是否已包含该model + * + * @param cellModel + * @return + */ private boolean alreadyContain(AlphaCellModel cellModel) { return RecentSearchManager.getRecentSearchManger().getRecentModelList().contains(cellModel) || this.recommendModelList.contains(cellModel); } From 57059ba0af77964f435b91d570e9e6ba4481fa96 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 28 Jun 2017 00:23:01 +0800 Subject: [PATCH 14/21] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E9=A1=B9=E4=BC=98=E5=8C=96=EF=BC=8C=E4=B9=8B?= =?UTF-8?q?=E5=89=8D=E6=98=AF=E5=85=A8=E9=83=A8=E5=8A=A0=E8=BD=BD=E5=AE=8C?= =?UTF-8?q?=E6=89=8D=E9=80=89=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 95 +++++++++++++++---- .../alphafine/model/SearchListModel.java | 52 ---------- 2 files changed, 76 insertions(+), 71 deletions(-) delete mode 100644 designer/src/com/fr/design/mainframe/alphafine/model/SearchListModel.java 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 c88aea15d..154f3cf39 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -13,7 +13,6 @@ import com.fr.design.mainframe.alphafine.cell.model.*; import com.fr.design.mainframe.alphafine.cell.render.ContentCellRender; import com.fr.design.mainframe.alphafine.listener.ComponentHandler; import com.fr.design.mainframe.alphafine.listener.DocumentAdapter; -import com.fr.design.mainframe.alphafine.model.SearchListModel; import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.preview.ActionPreviewPane; import com.fr.design.mainframe.alphafine.preview.DocumentPreviewPane; @@ -79,9 +78,17 @@ public class AlphaFineDialog extends UIDialog { private SwingWorker searchWorker; private SwingWorker showWorker; private String storeText; - //是否强制打开,因为面板是否关闭绑定了全局鼠标事件,这里需要处理一下 + + /** + * 是否强制打开,因为面板是否关闭绑定了全局鼠标事件,这里需要处理一下 + */ private boolean forceOpen; + /** + *List的第一可用项是否被选中 + */ + private boolean isSelected; + public AlphaFineDialog(Frame parent, boolean forceOpen) { super(parent); @@ -292,14 +299,6 @@ public class AlphaFineDialog extends UIDialog { rebuildList(searchTextField.getText().toLowerCase()); return null; } - - @Override - protected void done() { - if (!isCancelled() && getModel().getSize() > 0) { - searchResultList.setSelectedIndex(0); - showResult(searchResultList.getSelectedValue()); - } - } }; this.searchWorker.execute(); } @@ -343,8 +342,8 @@ public class AlphaFineDialog extends UIDialog { * 重置面板 */ private void resetContainer() { - searchResultList.resetSelectedIndex(); searchListModel.removeAllElements(); + setSelected(false); rightSearchResultPane.removeAll(); rightSearchResultPane.validate(); rightSearchResultPane.repaint(); @@ -800,6 +799,14 @@ public class AlphaFineDialog extends UIDialog { this.storeText = storeText; } + public boolean isSelected() { + return isSelected; + } + + public void setSelected(boolean selected) { + isSelected = selected; + } + /** +-------------------------------------+ @@ -812,13 +819,6 @@ public class AlphaFineDialog extends UIDialog { initListListener(); } - /** - * 重置选项 - */ - public void resetSelectedIndex() { - super.setSelectedIndex(0); - } - /** * 重写选中的方法 * @param index @@ -886,7 +886,7 @@ public class AlphaFineDialog extends UIDialog { addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { - if (!e.getValueIsAdjusting()) { + if (!e.getValueIsAdjusting() && getSelectedValue() != null) { showResult(getSelectedValue()); } @@ -897,4 +897,61 @@ public class AlphaFineDialog extends UIDialog { } + /** + +-------------------------------------+ + | 自定义ListModel | + +-------------------------------------+ + */ + private class SearchListModel extends DefaultListModel { + SearchResult myDelegate; + + public SearchListModel(SearchResult searchResult) { + this.myDelegate = searchResult; + } + + @Override + public void addElement(AlphaCellModel element) { + int index = myDelegate.size(); + myDelegate.add(element); + + + fireContentsChanged(this, index, index); + + if (element.hasAction() && !isSelected()) { + searchResultList.setSelectedIndex(index); + setSelected(true); + } + + } + + @Override + public AlphaCellModel getElementAt(int index) { + return myDelegate.get(index); + } + + @Override + public void add(int index, AlphaCellModel element) { + myDelegate.add(index, element); + fireIntervalAdded(this, index, index); + } + + @Override + public AlphaCellModel remove(int index) { + AlphaCellModel object = myDelegate.get(index); + myDelegate.remove(object); + fireIntervalRemoved(this, index, index); + return object; + } + + @Override + public int getSize() { + return this.myDelegate.size(); + } + + @Override + public void removeAllElements() { + this.myDelegate.clear(); + } + } + } \ No newline at end of file diff --git a/designer/src/com/fr/design/mainframe/alphafine/model/SearchListModel.java b/designer/src/com/fr/design/mainframe/alphafine/model/SearchListModel.java deleted file mode 100644 index 303e778e8..000000000 --- a/designer/src/com/fr/design/mainframe/alphafine/model/SearchListModel.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.fr.design.mainframe.alphafine.model; - -import com.fr.design.mainframe.alphafine.cell.model.AlphaCellModel; - -import javax.swing.*; - -/** - * Created by XiaXiang on 2017/4/20. - */ -public class SearchListModel extends DefaultListModel { - SearchResult myDelegate; - - public SearchListModel(SearchResult searchResult) { - this.myDelegate = searchResult; - } - - @Override - public void addElement(AlphaCellModel element) { - int index = myDelegate.size(); - myDelegate.add(element); - fireContentsChanged(this, index, index); - } - - @Override - public AlphaCellModel getElementAt(int index) { - return myDelegate.get(index); - } - - @Override - public void add(int index, AlphaCellModel element) { - myDelegate.add(index, element); - fireIntervalAdded(this, index, index); - } - - @Override - public AlphaCellModel remove(int index) { - AlphaCellModel object = myDelegate.get(index); - myDelegate.remove(object); - fireIntervalRemoved(this, index, index); - return object; - } - - @Override - public int getSize() { - return this.myDelegate.size(); - } - - @Override - public void removeAllElements() { - this.myDelegate.clear(); - } -} From c1f5c68071571abee10172c21b553c94141f85f9 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 28 Jun 2017 00:33:46 +0800 Subject: [PATCH 15/21] =?UTF-8?q?=E6=A3=80=E6=B5=8B=E5=88=B0=E6=9C=89?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E9=A1=B9=E7=AB=8B=E5=8D=B3=E9=80=89=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 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 154f3cf39..056aa3890 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -917,11 +917,20 @@ public class AlphaFineDialog extends UIDialog { fireContentsChanged(this, index, index); + fireSelectedStateChanged(element, index); + + } + + /** + * 触发选中 + * @param element + * @param index + */ + private void fireSelectedStateChanged(AlphaCellModel element, int index) { if (element.hasAction() && !isSelected()) { searchResultList.setSelectedIndex(index); setSelected(true); } - } @Override From b3657adbbfc19c29013196cb82fcaa5b8eb289d7 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 28 Jun 2017 00:58:12 +0800 Subject: [PATCH 16/21] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F=20?= =?UTF-8?q?=E9=80=89=E4=B8=AD=E7=8A=B6=E6=80=81=E6=A3=80=E6=9F=A5=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E6=94=BE=E5=88=B0listmodel=E9=87=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 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 056aa3890..f09810c81 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -78,16 +78,9 @@ public class AlphaFineDialog extends UIDialog { private SwingWorker searchWorker; private SwingWorker showWorker; private String storeText; - - /** - * 是否强制打开,因为面板是否关闭绑定了全局鼠标事件,这里需要处理一下 - */ + //是否强制打开,因为面板是否关闭绑定了全局鼠标事件,这里需要处理一下 private boolean forceOpen; - /** - *List的第一可用项是否被选中 - */ - private boolean isSelected; public AlphaFineDialog(Frame parent, boolean forceOpen) { @@ -343,7 +336,7 @@ public class AlphaFineDialog extends UIDialog { */ private void resetContainer() { searchListModel.removeAllElements(); - setSelected(false); + searchListModel.resetSelectedState(); rightSearchResultPane.removeAll(); rightSearchResultPane.validate(); rightSearchResultPane.repaint(); @@ -799,14 +792,6 @@ public class AlphaFineDialog extends UIDialog { this.storeText = storeText; } - public boolean isSelected() { - return isSelected; - } - - public void setSelected(boolean selected) { - isSelected = selected; - } - /** +-------------------------------------+ @@ -905,6 +890,11 @@ public class AlphaFineDialog extends UIDialog { private class SearchListModel extends DefaultListModel { SearchResult myDelegate; + /** + * 第一有效的项是否被选中 + */ + private boolean isValidSelected; + public SearchListModel(SearchResult searchResult) { this.myDelegate = searchResult; } @@ -922,14 +912,14 @@ public class AlphaFineDialog extends UIDialog { } /** - * 触发选中 + * 触发选中第一有效的项 * @param element * @param index */ private void fireSelectedStateChanged(AlphaCellModel element, int index) { - if (element.hasAction() && !isSelected()) { + if (element.hasAction() && !isValidSelected()) { searchResultList.setSelectedIndex(index); - setSelected(true); + setValidSelected(true); } } @@ -961,6 +951,21 @@ public class AlphaFineDialog extends UIDialog { public void removeAllElements() { this.myDelegate.clear(); } + + /** + * 重置选中状态 + */ + public void resetSelectedState() { + setValidSelected(false); + } + + public boolean isValidSelected() { + return isValidSelected; + } + + private void setValidSelected(boolean selected) { + isValidSelected = selected; + } } } \ No newline at end of file From 002df6dfdacb0f80142b644740356a07741c1dd3 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 28 Jun 2017 01:00:02 +0800 Subject: [PATCH 17/21] 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 f09810c81..c587c24a1 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -959,7 +959,7 @@ public class AlphaFineDialog extends UIDialog { setValidSelected(false); } - public boolean isValidSelected() { + private boolean isValidSelected() { return isValidSelected; } From 7eaf8a308bd8eccd884f864ae2193671ae1ca4e6 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 28 Jun 2017 01:01:47 +0800 Subject: [PATCH 18/21] reformat --- .../design/mainframe/alphafine/component/AlphaFineDialog.java | 4 ---- 1 file changed, 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 c587c24a1..b44ec8c07 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -903,12 +903,8 @@ public class AlphaFineDialog extends UIDialog { public void addElement(AlphaCellModel element) { int index = myDelegate.size(); myDelegate.add(element); - - fireContentsChanged(this, index, index); - fireSelectedStateChanged(element, index); - } /** From e611dd8f401eed1249534e55f99a019315c1bfae Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 28 Jun 2017 01:03:46 +0800 Subject: [PATCH 19/21] =?UTF-8?q?=E6=97=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 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 b44ec8c07..53cb28979 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -9,7 +9,10 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.cell.CellModelHelper; -import com.fr.design.mainframe.alphafine.cell.model.*; +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.listener.ComponentHandler; import com.fr.design.mainframe.alphafine.listener.DocumentAdapter; @@ -82,7 +85,6 @@ public class AlphaFineDialog extends UIDialog { private boolean forceOpen; - public AlphaFineDialog(Frame parent, boolean forceOpen) { super(parent); this.forceOpen = forceOpen; @@ -407,6 +409,7 @@ public class AlphaFineDialog extends UIDialog { /** * 右侧面板展示搜索结果的内容 + * * @param selectedValue */ private void showResult(final AlphaCellModel selectedValue) { @@ -705,7 +708,7 @@ public class AlphaFineDialog extends UIDialog { String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); para.put("token", CodeUtils.md5Encode(date, "", "MD5")); para.put("content", object.toString()); - HttpClient httpClient = new HttpClient(AlphaFineConstants.CLOUD_SERVER_URL, para, true); + HttpClient httpClient = new HttpClient(AlphaFineConstants.CLOUD_SERVER_URL, para, true); httpClient.setTimeout(5000); httpClient.asGet(); if (!httpClient.isServerAlive()) { @@ -714,7 +717,6 @@ public class AlphaFineDialog extends UIDialog { } - } /** @@ -794,9 +796,9 @@ public class AlphaFineDialog extends UIDialog { /** - +-------------------------------------+ - | 自定义JList | - +-------------------------------------+ + * +-------------------------------------+ + * | 自定义JList | + * +-------------------------------------+ */ private class AlphaFineList extends JList { @@ -806,11 +808,12 @@ public class AlphaFineDialog extends UIDialog { /** * 重写选中的方法 + * * @param index */ @Override public void setSelectedIndex(int index) { - if (index >=0 && checkSelectedIndex(index)) { + if (index >= 0 && checkSelectedIndex(index)) { int previousIndex = getSelectedIndex(); super.setSelectedIndex(index); AlphaCellModel cellModel = getSelectedValue(); @@ -883,9 +886,9 @@ public class AlphaFineDialog extends UIDialog { } /** - +-------------------------------------+ - | 自定义ListModel | - +-------------------------------------+ + * +-------------------------------------+ + * | 自定义ListModel | + * +-------------------------------------+ */ private class SearchListModel extends DefaultListModel { SearchResult myDelegate; @@ -909,6 +912,7 @@ public class AlphaFineDialog extends UIDialog { /** * 触发选中第一有效的项 + * * @param element * @param index */ From 3f4c27053a292c3c7f139fbe4f8876350b7b1755 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 28 Jun 2017 08:16:53 +0800 Subject: [PATCH 20/21] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=94=AE=E7=9B=98?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/alphafine/cell/model/MoreModel.java | 2 +- .../mainframe/alphafine/component/AlphaFineDialog.java | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java index a811e8603..5da7be486 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/model/MoreModel.java @@ -24,7 +24,7 @@ public class MoreModel extends AlphaCellModel { } public MoreModel(String name, boolean isLoading) { - super(name, null); + super(name, null, CellType.MORE); this.isLoading = isLoading; } 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 53cb28979..daab6961f 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -587,8 +587,9 @@ public class AlphaFineDialog extends UIDialog { searchTextField.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_UP) { + if (e.getKeyCode() == KeyEvent.VK_DOWN && searchTextField.hasFocus()) { searchResultList.requestFocus(); + searchResultList.setSelectedIndex(searchResultList.getSelectedIndex() + 1); } } }); @@ -813,7 +814,7 @@ public class AlphaFineDialog extends UIDialog { */ @Override public void setSelectedIndex(int index) { - if (index >= 0 && checkSelectedIndex(index)) { + if (index > 0 && checkSelectedIndex(index)) { int previousIndex = getSelectedIndex(); super.setSelectedIndex(index); AlphaCellModel cellModel = getSelectedValue(); @@ -845,6 +846,10 @@ public class AlphaFineDialog extends UIDialog { if (e.getKeyCode() == KeyEvent.VK_ENTER) { doNavigate(); saveHistory(getSelectedValue()); + } else if (e.getKeyCode() == KeyEvent.VK_UP) { + if (getSelectedIndex() == 1) { + searchTextField.requestFocus(); + } } } }); From 9703b53711a25384f180ae4e23c10c0457e24d88 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 28 Jun 2017 09:21:12 +0800 Subject: [PATCH 21/21] =?UTF-8?q?=E6=98=AF=E5=86=99=E9=94=99=E4=BA=86?= =?UTF-8?q?=EF=BC=8C=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=AB=AF=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=BF=98=E6=B2=A1=E4=BC=A0=E6=89=8D=E5=86=99=E7=9A=84localhost?= =?UTF-8?q?=EF=BC=8C=E5=85=88=E6=8A=8Adebug=E7=9A=84url=E5=88=A0=E6=8E=89?= =?UTF-8?q?=EF=BC=8C=E5=BE=85=E4=BC=9A=E4=BC=A0=E4=B8=80=E4=B8=8B=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E7=AB=AF=E4=BB=A3=E7=A0=81=EF=BC=8C=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E7=AB=AF=E5=8A=A0=E4=BA=86debug=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=9A=84url=E4=B9=8B=E5=90=8E=E8=BF=99=E9=87=8C?= =?UTF-8?q?=E5=86=8D=E5=88=A4=E6=96=AD=EF=BC=8C=E7=8E=B0=E5=9C=A8=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E9=82=A3=E8=BE=B9=E5=8F=AA=E6=9C=89=E6=AD=A3?= =?UTF-8?q?=E5=BC=8F=E6=8E=A5=E5=8F=A3=EF=BC=8C=E8=BF=98=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E4=BE=9B=E6=B5=8B=E8=AF=95=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/alphafine/AlphaFineConstants.java | 5 +---- .../alphafine/search/manager/RecommendSearchManager.java | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java index d5b4ed298..b10a61e36 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java +++ b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java @@ -83,10 +83,7 @@ public class AlphaFineConstants { public static final String CLOUD_SERVER_URL = "http://cloud.fanruan.com/api/monitor/record_of_afsearch/single"; - public static final String SEARCHAPI = "http://lcloud.fanruan.com/api/intelligence/search/recommend?searchKey="; + public static final String SEARCH_API = "http://cloud.fanruan.com/api/intelligence/search/recommend?searchKey="; - //private static final String SEARCHAPI = "http://localhost:8080/cloud/intelligence/search/recommend?searchKey="; - - //public static final String CLOUD_TEST_URL = "http://localhost:8080/cloud/monitor/record_of_afsearch/single"; } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java index f9df17553..e9ec20295 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java @@ -41,7 +41,7 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { this.recommendModelList = new SearchResult(); if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainRecommend()) { String result; - HttpClient httpClient = new HttpClient(AlphaFineConstants.SEARCHAPI + CodeUtils.cjkEncode(searchText)); + HttpClient httpClient = new HttpClient(AlphaFineConstants.SEARCH_API + CodeUtils.cjkEncode(searchText)); httpClient.asGet(); if (!httpClient.isServerAlive()) { return getNoConnectList();