From cd0e098e4397504c7203575bfed48adc03275132 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Thu, 1 Jun 2017 21:39:40 +0800 Subject: [PATCH 01/20] =?UTF-8?q?alphafine=20=E8=AE=BE=E7=BD=AE=E7=9A=84?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E5=86=85=E5=AE=B9=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/ReportEngineAttrAction.java | 7 +- .../report/ReportExportAttrAction.java | 5 +- .../report/ReportMobileAttrAction.java | 4 +- .../actions/report/ReportPageAttrAction.java | 4 +- .../actions/report/ReportPageSetupAction.java | 4 +- .../actions/report/ReportWebAttrAction.java | 4 +- .../actions/report/ReportWriteAttrAction.java | 4 +- .../server/ServerConfigManagerAction.java | 4 +- .../actions/server/StyleListAction.java | 4 +- .../com/fr/design/actions/UpdateAction.java | 79 +++++++++++++++++++ .../design/actions/file/PreferenceAction.java | 56 ++++++------- .../fr/design/actions/help/AboutAction.java | 8 ++ .../help/alphafine/AlphafineAction.java | 4 +- .../actions/server/FunctionManagerAction.java | 4 +- .../design/gui/frpane/LoadingBasicPane.java | 7 ++ .../mainframe/toolbar/UpdateActionModel.java | 19 +++++ .../fr/design/module/ChartPreStyleAction.java | 4 +- 17 files changed, 182 insertions(+), 39 deletions(-) diff --git a/designer/src/com/fr/design/actions/report/ReportEngineAttrAction.java b/designer/src/com/fr/design/actions/report/ReportEngineAttrAction.java index 796e3b638..bb5942bd4 100644 --- a/designer/src/com/fr/design/actions/report/ReportEngineAttrAction.java +++ b/designer/src/com/fr/design/actions/report/ReportEngineAttrAction.java @@ -8,6 +8,7 @@ import com.fr.design.menu.KeySetUtils; import com.fr.design.report.LayerReportPane; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; +import com.fr.general.IOUtils; import com.fr.report.worksheet.WorkSheet; public class ReportEngineAttrAction extends ReportComponentAction { @@ -17,7 +18,11 @@ public class ReportEngineAttrAction extends ReportComponentAction componentMap; + private String searchText = StringUtils.EMPTY; + /** * Constructor */ @@ -426,4 +432,77 @@ public abstract class UpdateAction extends ShortCut implements Action { return menuItem; } + + public void setSearchText(JPanel panel) { + if (panel instanceof LoadingBasicPane) { + ((LoadingBasicPane) panel).initForSearch(); + } + this.searchText = getComponentTexts(panel, new StringBuffer()); + + } + + /** + * 获取搜索匹配字符串 + * @return + */ + public String getSearchText() { + return searchText; + } + + /** + * 遍历面板中所有控件,获取text用于alphafine的action搜索 + * @param panel + * @param stringBuffer + * @return + */ + public String getComponentTexts(JPanel panel, StringBuffer stringBuffer) { + Border border = panel.getBorder(); + if (border instanceof TitledBorder) { + stringBuffer.append(((TitledBorder) border).getTitle()); + } + Component[] components = panel.getComponents(); + for (Component component : components) { + if (component instanceof JPanel) { + getComponentTexts((JPanel) component, stringBuffer); + } else if (component instanceof JScrollPane) { + Component childComponent = ((JScrollPane) component).getViewport().getView(); + if (childComponent instanceof JPanel) { + getComponentTexts((JPanel) childComponent, stringBuffer); + } + } else if (component instanceof JLabel) { + stringBuffer.append(((JLabel) component).getText()); + } else if (component instanceof JCheckBox) { + stringBuffer.append(((JCheckBox) component).getText()); + } else if (component instanceof JButton) { + stringBuffer.append(((JButton) component).getText()); + } else if (component instanceof JRadioButton) { + stringBuffer.append(((JRadioButton) component).getText()); + } else if (component instanceof JComboBox) { + for (int i = 0; i < ((JComboBox) component).getItemCount(); i++) { + stringBuffer.append(((JComboBox) component).getItemAt(i)); + } + } else if (component instanceof JTabbedPane) { + getTabPaneTexts(stringBuffer, (JTabbedPane) component); + } + } + return String.valueOf(stringBuffer); + } + + /** + * 递归遍历tabbedPane + * @param stringBuffer + * @param component + */ + private void getTabPaneTexts(StringBuffer stringBuffer, JTabbedPane component) { + for (int i = 0; i < component.getTabCount(); i++) { + stringBuffer.append(component.getTitleAt(i)); + Component tabComponent = component.getComponentAt(i); + if (tabComponent instanceof JPanel) { + getComponentTexts((JPanel) tabComponent, stringBuffer); + } else if (tabComponent instanceof JTabbedPane) { + getTabPaneTexts(stringBuffer, (JTabbedPane) tabComponent); + } + } + } + } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/actions/file/PreferenceAction.java b/designer_base/src/com/fr/design/actions/file/PreferenceAction.java index 71c25837d..f9f222c1b 100644 --- a/designer_base/src/com/fr/design/actions/file/PreferenceAction.java +++ b/designer_base/src/com/fr/design/actions/file/PreferenceAction.java @@ -1,47 +1,49 @@ package com.fr.design.actions.file; -import java.awt.event.ActionEvent; - import com.fr.design.DesignerEnvManager; import com.fr.design.actions.UpdateAction; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; import com.fr.design.mainframe.JTemplate; import com.fr.design.menu.KeySetUtils; -import com.fr.design.dialog.BasicDialog; -import com.fr.design.dialog.DialogActionAdapter; + +import java.awt.event.ActionEvent; public class PreferenceAction extends UpdateAction { - public PreferenceAction() { + public PreferenceAction() { this.setMenuKeySet(KeySetUtils.PREFERENCE); - this.setName(getMenuKeySet().getMenuKeySetName()+"..."); + this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - } + this.setSearchText(new PreferencePane()); + } /** * 动作 + * * @param e 事件 */ - public void actionPerformed(ActionEvent e) { - final DesignerFrame designerFrame = DesignerContext.getDesignerFrame(); - - final PreferencePane preferencePane = new PreferencePane(); - preferencePane.populate(DesignerEnvManager.getEnvManager()); - - BasicDialog basicDialog = preferencePane.showWindow(designerFrame); - basicDialog.addDialogActionListener(new DialogActionAdapter() { - public void doOk() { - preferencePane.update(DesignerEnvManager.getEnvManager()); - DesignerEnvManager.loadLogSetting(); - DesignerEnvManager.getEnvManager().saveXMLFile(); - JTemplate jt = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); - jt.refreshToolArea(); - preferencePane.showRestartDialog(); - } - }); - - basicDialog.setVisible(true); - } + public void actionPerformed(ActionEvent e) { + final DesignerFrame designerFrame = DesignerContext.getDesignerFrame(); + + final PreferencePane preferencePane = new PreferencePane(); + preferencePane.populate(DesignerEnvManager.getEnvManager()); + + BasicDialog basicDialog = preferencePane.showWindow(designerFrame); + basicDialog.addDialogActionListener(new DialogActionAdapter() { + public void doOk() { + preferencePane.update(DesignerEnvManager.getEnvManager()); + DesignerEnvManager.loadLogSetting(); + DesignerEnvManager.getEnvManager().saveXMLFile(); + JTemplate jt = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); + jt.refreshToolArea(); + preferencePane.showRestartDialog(); + } + }); + + basicDialog.setVisible(true); + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/actions/help/AboutAction.java b/designer_base/src/com/fr/design/actions/help/AboutAction.java index 1c3c48d0e..0b7b77571 100644 --- a/designer_base/src/com/fr/design/actions/help/AboutAction.java +++ b/designer_base/src/com/fr/design/actions/help/AboutAction.java @@ -7,8 +7,12 @@ import com.fr.design.actions.UpdateAction; import com.fr.design.mainframe.DesignerContext; import com.fr.design.menu.MenuKeySet; import com.fr.general.Inter; +import com.fr.stable.StringUtils; +import org.eclipse.swt.internal.ole.win32.COM; +import javax.imageio.plugins.jpeg.JPEGHuffmanTable; import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; /** @@ -19,6 +23,7 @@ public class AboutAction extends UpdateAction { this.setMenuKeySet(ABOUT); this.setName(getMenuKeySet().getMenuKeySetName()+"..."); this.setMnemonic(getMenuKeySet().getMnemonic()); + this.setSearchText(new AboutPane()); } /** @@ -47,4 +52,7 @@ public class AboutAction extends UpdateAction { return null; } }; + + + } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/actions/help/alphafine/AlphafineAction.java b/designer_base/src/com/fr/design/actions/help/alphafine/AlphafineAction.java index fdd6e060e..23cf7de75 100644 --- a/designer_base/src/com/fr/design/actions/help/alphafine/AlphafineAction.java +++ b/designer_base/src/com/fr/design/actions/help/alphafine/AlphafineAction.java @@ -9,6 +9,7 @@ import com.fr.design.dialog.DialogActionListener; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; import com.fr.design.menu.MenuKeySet; +import com.fr.general.IOUtils; import javax.swing.*; import java.awt.event.ActionEvent; @@ -21,7 +22,8 @@ public class AlphafineAction extends UpdateAction { this.setMenuKeySet(ALPHAFINE); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/mainframe/alphafine/images/smallsearch.png")); + this.setSmallIcon(IOUtils.readIcon("/com/fr/design/mainframe/alphafine/images/smallsearch.png")); + this.setSearchText(new AlphafineConfigPane()); } public static final MenuKeySet ALPHAFINE = new MenuKeySet() { diff --git a/designer_base/src/com/fr/design/actions/server/FunctionManagerAction.java b/designer_base/src/com/fr/design/actions/server/FunctionManagerAction.java index 664d44862..7467a00ea 100644 --- a/designer_base/src/com/fr/design/actions/server/FunctionManagerAction.java +++ b/designer_base/src/com/fr/design/actions/server/FunctionManagerAction.java @@ -14,6 +14,7 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.design.menu.MenuKeySet; import com.fr.file.FunctionManager; import com.fr.file.FunctionManagerProvider; +import com.fr.general.IOUtils; import com.fr.general.Inter; import javax.swing.*; @@ -28,7 +29,8 @@ public class FunctionManagerAction extends UpdateAction { this.setMenuKeySet(FUNCTION_MANAGER); this.setName(getMenuKeySet().getMenuKeySetName()+"..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_web/function.png")); + this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_web/function.png")); + this.setSearchText(new FunctionManagerPane()); } /** diff --git a/designer_base/src/com/fr/design/gui/frpane/LoadingBasicPane.java b/designer_base/src/com/fr/design/gui/frpane/LoadingBasicPane.java index 32a211807..4ca17be09 100644 --- a/designer_base/src/com/fr/design/gui/frpane/LoadingBasicPane.java +++ b/designer_base/src/com/fr/design/gui/frpane/LoadingBasicPane.java @@ -74,6 +74,13 @@ public abstract class LoadingBasicPane extends BasicPane { } + /** + * 为了alphafine搜索,需要初始化的时候加载一次组件 + */ + public void initForSearch() { + initComponents(new JPanel()); + } + /** * 完成时 */ diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java index ad3db0348..4884f0f95 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java @@ -12,12 +12,15 @@ import com.fr.design.actions.UpdateAction; public class UpdateActionModel { private String parentName; private String actionName; + private String relatedKey; + private String searchKey; private UpdateAction action; public UpdateActionModel(String parentName, UpdateAction action) { this.parentName = parentName; this.action = action; this.actionName = action.getName(); + this.searchKey = action.getSearchText(); } /** @@ -55,4 +58,20 @@ public class UpdateActionModel { public void setActionName(String actionName) { this.actionName = actionName; } + + public String getRelatedKey() { + return relatedKey; + } + + public void setRelatedKey(String relatedKey) { + this.relatedKey = relatedKey; + } + + public String getSearchKey() { + return searchKey; + } + + public void setSearchKey(String searchKey) { + this.searchKey = searchKey; + } } diff --git a/designer_chart/src/com/fr/design/module/ChartPreStyleAction.java b/designer_chart/src/com/fr/design/module/ChartPreStyleAction.java index 36909565b..e93b271e2 100644 --- a/designer_chart/src/com/fr/design/module/ChartPreStyleAction.java +++ b/designer_chart/src/com/fr/design/module/ChartPreStyleAction.java @@ -9,6 +9,7 @@ import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; import com.fr.design.menu.MenuKeySet; +import com.fr.general.IOUtils; import com.fr.general.Inter; import javax.swing.*; @@ -25,7 +26,8 @@ public class ChartPreStyleAction extends UpdateAction { this.setMenuKeySet(CHART_DEFAULT_STYLE); this.setName(getMenuKeySet().getMenuKeySetName()+ "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/chart/ChartType.png")); + this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/chart/ChartType.png")); + this.setSearchText(new ChartPreStyleManagerPane()); } /** From 28c21627b51c1451facabef6d4f0d2ff5e0cf3e6 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Sun, 4 Jun 2017 11:26:32 +0800 Subject: [PATCH 02/20] =?UTF-8?q?alphafine=20bug=20fix=20=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/ReportEngineAttrAction.java | 11 +-- .../actions/report/ReportPageSetupAction.java | 9 +- .../actions/report/ReportWebAttrAction.java | 5 +- .../actions/report/ReportWriteAttrAction.java | 8 +- .../server/ServerConfigManagerAction.java | 5 +- .../EditReportServerParameterPane.java | 8 +- .../fr/design/webattr/ReportWebAttrPane.java | 11 ++- .../design/webattr/ReportWriteAttrPane.java | 2 +- .../com/fr/design/actions/UpdateAction.java | 90 +++++++++++++------ .../actions/server/ConnectionListAction.java | 6 +- .../design/gui/frpane/LoadingBasicPane.java | 25 +++--- 11 files changed, 105 insertions(+), 75 deletions(-) diff --git a/designer/src/com/fr/design/actions/report/ReportEngineAttrAction.java b/designer/src/com/fr/design/actions/report/ReportEngineAttrAction.java index bb5942bd4..894e25f36 100644 --- a/designer/src/com/fr/design/actions/report/ReportEngineAttrAction.java +++ b/designer/src/com/fr/design/actions/report/ReportEngineAttrAction.java @@ -1,13 +1,12 @@ package com.fr.design.actions.report; -import com.fr.base.BaseUtils; import com.fr.design.actions.ReportComponentAction; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.WorkSheetDesigner; import com.fr.design.menu.KeySetUtils; import com.fr.design.report.LayerReportPane; -import com.fr.design.dialog.BasicDialog; -import com.fr.design.dialog.DialogActionAdapter; import com.fr.general.IOUtils; import com.fr.report.worksheet.WorkSheet; @@ -19,10 +18,8 @@ public class ReportEngineAttrAction extends ReportComponentAction Date: Sun, 4 Jun 2017 11:27:26 +0800 Subject: [PATCH 03/20] bug fix --- .../com/fr/design/mainframe/alphafine/AlphaFineHelper.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java index d5901f8f4..a3c79f138 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java +++ b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java @@ -14,9 +14,7 @@ public class AlphaFineHelper { * 弹出alphafine搜索面板 */ public static void showAlphaFineDialog(boolean forceOpen) { - if (dialog == null) { - dialog = new AlphaFineDialog(DesignerContext.getDesignerFrame(), forceOpen); - } + dialog = new AlphaFineDialog(DesignerContext.getDesignerFrame(), forceOpen); dialog.setVisible(true); } From 59eea922d3fb884c5cc0aa27ecbf5367cf1b645f Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Sun, 4 Jun 2017 16:54:28 +0800 Subject: [PATCH 04/20] bug fix --- .../fr/design/actions/insert/cell/DSColumnCellAction.java | 8 +++++--- .../mainframe/alphafine/component/AlphaFineDialog.java | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/designer/src/com/fr/design/actions/insert/cell/DSColumnCellAction.java b/designer/src/com/fr/design/actions/insert/cell/DSColumnCellAction.java index 632a8a2ee..90d0ccb8b 100644 --- a/designer/src/com/fr/design/actions/insert/cell/DSColumnCellAction.java +++ b/designer/src/com/fr/design/actions/insert/cell/DSColumnCellAction.java @@ -1,9 +1,10 @@ package com.fr.design.actions.insert.cell; -import com.fr.base.BaseUtils; import com.fr.design.actions.core.WorkBookSupportable; -import com.fr.design.menu.KeySetUtils; +import com.fr.design.dscolumn.DSColumnPane; import com.fr.design.mainframe.ElementCasePane; +import com.fr.design.menu.KeySetUtils; +import com.fr.general.IOUtils; import com.fr.report.cell.cellattr.core.group.DSColumn; public class DSColumnCellAction extends AbstractCellAction implements WorkBookSupportable { @@ -12,7 +13,8 @@ public class DSColumnCellAction extends AbstractCellAction implements WorkBookSu this.setMenuKeySet(KeySetUtils.INSERT_DATA_COLUMN); this.setName(getMenuKeySet().getMenuKeySetName()+ "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/bindColumn.png")); + this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_insert/bindColumn.png")); + this.setSearchText(new DSColumnPane()); } @Override 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 25bcef15f..dc47677c3 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -72,6 +72,7 @@ public class AlphaFineDialog extends UIDialog { public AlphaFineDialog(Frame parent, boolean foreOpen) { super(parent); + this.foreOpen = foreOpen; initProperties(); initListener(); initComponents(); From 7bcb2b0261a137cea7ca319bcf7c1c36525e56ca Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Sun, 4 Jun 2017 23:22:54 +0800 Subject: [PATCH 05/20] bug fix --- .../alphafine/search/manager/ActionSearchManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 32b71eeb3..04b631652 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 @@ -39,7 +39,9 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { List updateActions = UpdateActionManager.getUpdateActionManager().getUpdateActions(); for (UpdateActionModel updateActionModel : updateActions) { if (updateActionModel.getActionName() != null) { - if (updateActionModel.getActionName().toLowerCase().contains(searchText.toLowerCase()) || updateActionModel.getParentName().toLowerCase().contains(searchText.toLowerCase())) { + StringBuffer buffer = new StringBuffer(); + buffer.append(updateActionModel.getActionName()).append(updateActionModel.getParentName()).append(updateActionModel.getSearchKey()); + if (buffer.toString().toLowerCase().contains(searchText.toLowerCase()) ) { filterModelList.add(new ActionModel(updateActionModel.getActionName(), updateActionModel.getParentName(), updateActionModel.getAction())); } } @@ -53,7 +55,7 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { moreModelList.add(filterModelList.get(i)); } if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE) { - lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Set"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.ACTION)); + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Set"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"), true, CellType.ACTION)); } else { lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Set"), CellType.ACTION)); } From ee98544836648dc9823e425904162eeba9297476 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Sun, 4 Jun 2017 23:23:37 +0800 Subject: [PATCH 06/20] bug fix --- .../src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index f80e20331..430314458 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -166,11 +166,10 @@ public abstract class ToolBarMenuDock { * @param menuDef */ private void addUpdateActionToList(MenuDef menuDef) { - - String ParentName = menuDef.getName(); if (menuDef instanceof OpenRecentReportMenuDef) { return; } + String ParentName = menuDef.getName(); for (ShortCut shortCut : menuDef.getShortcutList()) { if (shortCut instanceof UpdateAction) { shortCutsList.add(new UpdateActionModel(ParentName, (UpdateAction) shortCut)); From 4317084856e535ed0d8b9ec736f81c2a52246b4f Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Sun, 4 Jun 2017 23:24:15 +0800 Subject: [PATCH 07/20] bug fix --- .../fr/design/mainframe/alphafine/cell/model/ActionModel.java | 1 - 1 file changed, 1 deletion(-) 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 493c5ad10..fdc63feac 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 @@ -6,7 +6,6 @@ import com.fr.json.JSONException; import com.fr.json.JSONObject; import javax.swing.*; -import java.io.Serializable; /** * Created by XiaXiang on 2017/4/20. From 2cbd7359020010284585b08592c15bb39deb81ee Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Sun, 4 Jun 2017 23:27:10 +0800 Subject: [PATCH 08/20] bug fix --- .../alphafine/component/AlphaFineDialog.java | 18 +++++++++--------- 1 file changed, 9 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 dc47677c3..52a77574e 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -68,11 +68,11 @@ public class AlphaFineDialog extends UIDialog { private SearchListModel searchListModel; private SwingWorker searchWorker; //是否强制打开,因为面板是否关闭绑定了全局鼠标事件,这里需要处理一下 - private boolean foreOpen; + private boolean forceOpen; - public AlphaFineDialog(Frame parent, boolean foreOpen) { + public AlphaFineDialog(Frame parent, boolean forceOpen) { super(parent); - this.foreOpen = foreOpen; + this.forceOpen = forceOpen; initProperties(); initListener(); initComponents(); @@ -488,9 +488,9 @@ public class AlphaFineDialog extends UIDialog { Point p = k.getLocationOnScreen(); Rectangle dialogRectangle = AlphaFineDialog.this.getBounds(); Rectangle paneRectangle = new Rectangle(AlphaFinePane.createAlphaFinePane().getLocationOnScreen(), AlphaFinePane.createAlphaFinePane().getSize()); - if (!dialogRectangle.contains(p) && !paneRectangle.contains(p) && !foreOpen) { + if (!dialogRectangle.contains(p) && !paneRectangle.contains(p) && !forceOpen) { AlphaFineDialog.this.dispose(); - foreOpen = false; + forceOpen = false; } } } @@ -670,11 +670,11 @@ public class AlphaFineDialog extends UIDialog { } - public boolean isForeOpen() { - return foreOpen; + public boolean isForceOpen() { + return forceOpen; } - public void setForeOpen(boolean foreOpen) { - this.foreOpen = foreOpen; + public void setForceOpen(boolean forceOpen) { + this.forceOpen = forceOpen; } } \ No newline at end of file From ec31aa0179b678afb64e09ea4a5e6116c0b64e35 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Sun, 4 Jun 2017 23:47:16 +0800 Subject: [PATCH 09/20] bug fix --- .../fr/design/actions/help/alphafine/AlphafineConfigManager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/designer_base/src/com/fr/design/actions/help/alphafine/AlphafineConfigManager.java b/designer_base/src/com/fr/design/actions/help/alphafine/AlphafineConfigManager.java index eba6de79c..c119e09b9 100644 --- a/designer_base/src/com/fr/design/actions/help/alphafine/AlphafineConfigManager.java +++ b/designer_base/src/com/fr/design/actions/help/alphafine/AlphafineConfigManager.java @@ -95,6 +95,7 @@ public class AlphafineConfigManager implements XMLable { public void readXML(XMLableReader reader) { if (reader.isAttr()) { this.setEnabled(reader.getAttrAsBoolean("isEnabled", true)); + this.setSearchOnLine(reader.getAttrAsBoolean("isSearchOnline", true)); this.setContainPlugin(reader.getAttrAsBoolean("isContainDocument", true)); this.setContainDocument(reader.getAttrAsBoolean("isContainDocument", true)); this.setContainRecommend(reader.getAttrAsBoolean("isContainRecommend", true)); From 19ddad4e26159076568aa320f57e5ea061491764 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 09:41:36 +0800 Subject: [PATCH 10/20] bug fix --- .../mainframe/alphafine/component/AlphaFineDialog.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index 52a77574e..71d46deb1 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -605,15 +605,20 @@ public class AlphaFineDialog extends UIDialog { } + /** + * 点击显示更多时,添加对应的model到list;点击收起是移除model + * @param index + * @param selectedValue + */ private void rebuildShowMoreList(int index, MoreModel selectedValue) { SearchResult moreResult = getMoreResult(selectedValue); if((selectedValue).getContent().equals(Inter.getLocText("FR-Designer_AlphaFine_ShowLess"))) { for (int i = 0; i < moreResult.size(); i++) { - this.searchListModel.insertElementAt(moreResult.get(i), index + AlphaFineConstants.SHOW_SIZE -1 + i); + this.searchListModel.insertElementAt(moreResult.get(i), index + AlphaFineConstants.SHOW_SIZE + 1 + i); } } else { for (int i = 0; i < moreResult.size(); i++) { - this.searchListModel.removeElementAt(index + AlphaFineConstants.SHOW_SIZE - 1); + this.searchListModel.removeElementAt(index + AlphaFineConstants.SHOW_SIZE + 1); } } From 160acaec730b3ae1fbda0f9146239b5255d808de Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 10:08:25 +0800 Subject: [PATCH 11/20] =?UTF-8?q?bug=20fix=20=E8=AE=BE=E7=BD=AE=E7=9A=84?= =?UTF-8?q?=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 7 +++++++ .../search/manager/ActionSearchManager.java | 6 ++---- .../mainframe/toolbar/UpdateActionModel.java | 19 ++++++++++++++++++- 3 files changed, 27 insertions(+), 5 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 71d46deb1..7eb3d1d7e 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -231,6 +231,13 @@ public class AlphaFineDialog extends UIDialog { searchResultList.repaint(); validate(); repaint(); + /** + * 默认选中第1项,第0项为title + */ + if (searchResultList.getModel().getSize() > 0) { + searchResultList.setSelectedIndex(1); + } + } } catch (InterruptedException e) { FRLogger.getLogger().error(e.getMessage()); 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 04b631652..232d14000 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 @@ -38,10 +38,8 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { if (DesignerEnvManager.getEnvManager().getAlphafineConfigManager().isContainAction()) { List updateActions = UpdateActionManager.getUpdateActionManager().getUpdateActions(); for (UpdateActionModel updateActionModel : updateActions) { - if (updateActionModel.getActionName() != null) { - StringBuffer buffer = new StringBuffer(); - buffer.append(updateActionModel.getActionName()).append(updateActionModel.getParentName()).append(updateActionModel.getSearchKey()); - if (buffer.toString().toLowerCase().contains(searchText.toLowerCase()) ) { + if (updateActionModel.getActionName() != null && updateActionModel.getParentName() != null) { + if (updateActionModel.getSearchKey().toLowerCase().contains(searchText.toLowerCase()) ) { filterModelList.add(new ActionModel(updateActionModel.getActionName(), updateActionModel.getParentName(), updateActionModel.getAction())); } } diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java index 4884f0f95..fb1fdc1ee 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java @@ -1,6 +1,8 @@ package com.fr.design.mainframe.toolbar; import com.fr.design.actions.UpdateAction; +import com.fr.stable.pinyin.PinyinFormat; +import com.fr.stable.pinyin.PinyinHelper; /** * Created by XiaXiang on 2017/5/24. @@ -10,6 +12,7 @@ import com.fr.design.actions.UpdateAction; * action对象 */ public class UpdateActionModel { + private static final String SEPARATOR = "/"; private String parentName; private String actionName; private String relatedKey; @@ -20,7 +23,21 @@ public class UpdateActionModel { this.parentName = parentName; this.action = action; this.actionName = action.getName(); - this.searchKey = action.getSearchText(); + setSearchKey(parentName, action); + } + + /** + * 获取搜索关键字,包括上级菜单名,菜单名,以及对应打开面板的所有文字信息(使其能够支持模糊搜索) + * @param parentName + * @param action + */ + private void setSearchKey(String parentName, UpdateAction action) { + StringBuffer buffer = new StringBuffer(); + buffer.append(parentName).append(PinyinHelper.convertToPinyinString(parentName, SEPARATOR, PinyinFormat.WITHOUT_TONE)) + .append(PinyinHelper.getShortPinyin(parentName)) + .append(actionName).append(PinyinHelper.convertToPinyinString(actionName, SEPARATOR, PinyinFormat.WITHOUT_TONE)) + .append(PinyinHelper.getShortPinyin(actionName)).append(action.getSearchText()); + this.searchKey = buffer.toString(); } /** From 2bac4047dd822db44f5191628b769152326d4f70 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 10:21:06 +0800 Subject: [PATCH 12/20] bug fix --- .../src/com/fr/design/actions/help/AboutAction.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/help/AboutAction.java b/designer_base/src/com/fr/design/actions/help/AboutAction.java index 0b7b77571..b8bcd4f2c 100644 --- a/designer_base/src/com/fr/design/actions/help/AboutAction.java +++ b/designer_base/src/com/fr/design/actions/help/AboutAction.java @@ -7,12 +7,8 @@ import com.fr.design.actions.UpdateAction; import com.fr.design.mainframe.DesignerContext; import com.fr.design.menu.MenuKeySet; import com.fr.general.Inter; -import com.fr.stable.StringUtils; -import org.eclipse.swt.internal.ole.win32.COM; -import javax.imageio.plugins.jpeg.JPEGHuffmanTable; import javax.swing.*; -import java.awt.*; import java.awt.event.ActionEvent; /** @@ -23,7 +19,6 @@ public class AboutAction extends UpdateAction { this.setMenuKeySet(ABOUT); this.setName(getMenuKeySet().getMenuKeySetName()+"..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSearchText(new AboutPane()); } /** From 6e5e18d88cebae03adcbb7e771814588220e4628 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 10:47:16 +0800 Subject: [PATCH 13/20] bug fix --- .../alphafine/component/AlphaFineDialog.java | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index 7eb3d1d7e..e84e95601 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -78,6 +78,9 @@ public class AlphaFineDialog extends UIDialog { initComponents(); } + /** + * 初始化全部组件 + */ private void initComponents() { searchTextField = new AlphaFineTextField("AlphaFine"); searchTextField.setFont(AlphaFineConstants.GREATER_FONT); @@ -123,6 +126,9 @@ public class AlphaFineDialog extends UIDialog { }); } + /** + * + */ private void initProperties() { setUndecorated(true); addComponentListener(new ComponentHandler()); @@ -130,6 +136,10 @@ public class AlphaFineDialog extends UIDialog { centerWindow(this); } + /** + * 设置面板位置 + * @param win + */ private void centerWindow(Window win) { Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); @@ -145,6 +155,10 @@ public class AlphaFineDialog extends UIDialog { win.setLocation((screenSize.width - winSize.width ) / 2, (screenSize.height - winSize.height) / AlphaFineConstants.SHOW_SIZE); } + /** + * 执行搜索,暂时字符要求超过两个才开始搜索 + * @param text + */ private void doSearch(String text) { if (text.length() < 2 || text.contains("'")) { return; @@ -157,6 +171,9 @@ public class AlphaFineDialog extends UIDialog { } + /** + * 移除搜索结果 + */ private void removeSearchResult() { if (searchResultPane != null) { remove(searchResultPane); @@ -179,7 +196,10 @@ public class AlphaFineDialog extends UIDialog { // } - + /** + * 展示搜索结果 + * @param searchText + */ private void showSearchResult(String searchText) { if (searchResultPane == null) { initSearchResultComponents(); @@ -188,6 +208,9 @@ public class AlphaFineDialog extends UIDialog { initSearchWorker(searchText); } + /** + * 初始化搜索面板 + */ private void initSearchResultComponents() { searchResultList = new JList(); searchResultPane = new JPanel(); @@ -209,6 +232,10 @@ public class AlphaFineDialog extends UIDialog { setSize(AlphaFineConstants.FULL_SIZE); } + /** + * 异步加载搜索结构 + * @param searchText + */ private void initSearchWorker(final String searchText) { searchResultList.setModel(new SearchListModel(AlphaSearchManager.getSearchManager().showDefaultSearchResult())); if (this.searchWorker != null && !this.searchWorker.isDone()) { @@ -251,7 +278,14 @@ public class AlphaFineDialog extends UIDialog { this.searchWorker.execute(); } + /** + * 初始化监听器 + * @param searchText + */ private void initListListener(final String searchText) { + /** + * 鼠标监听器 + */ searchResultList.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { @@ -270,7 +304,9 @@ public class AlphaFineDialog extends UIDialog { } }); - // TODO: 2017/5/8 xiaxiang: e.getClickCount() == 1 时,偶发性的不能触发,所以先放到valueChanged + /** + *单击时触发右侧面板动作 + */ searchResultList.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { @@ -281,6 +317,9 @@ public class AlphaFineDialog extends UIDialog { } }); + /** + * 键盘监听器 + */ searchResultList.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { From 65f4d551afd591033a406856b1827915e8b3b7bf Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 11:30:23 +0800 Subject: [PATCH 14/20] bug fix --- .../mainframe/alphafine/component/AlphaFineDialog.java | 5 ++++- 1 file changed, 4 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 e84e95601..9dfba7af6 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -305,7 +305,7 @@ public class AlphaFineDialog extends UIDialog { }); /** - *单击时触发右侧面板动作 + *单击时触发右侧面板展示搜索结果 */ searchResultList.addListSelectionListener(new ListSelectionListener() { @Override @@ -482,6 +482,9 @@ public class AlphaFineDialog extends UIDialog { } + /** + * 窗口拖拽 + */ private void initMouseListener() { addMouseMotionListener(new MouseMotionAdapter() { @Override From ce9ed87d3e14a8710f22c079165d74906339d197 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 11:45:28 +0800 Subject: [PATCH 15/20] bug fix --- .../search/manager/ActionSearchManager.java | 3 ++- .../design/mainframe/toolbar/UpdateActionModel.java | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) 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 232d14000..53fe4438a 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 @@ -11,6 +11,7 @@ import com.fr.design.mainframe.toolbar.UpdateActionManager; import com.fr.design.mainframe.toolbar.UpdateActionModel; import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.stable.StringUtils; import java.util.List; @@ -38,7 +39,7 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { if (DesignerEnvManager.getEnvManager().getAlphafineConfigManager().isContainAction()) { List updateActions = UpdateActionManager.getUpdateActionManager().getUpdateActions(); for (UpdateActionModel updateActionModel : updateActions) { - if (updateActionModel.getActionName() != null && updateActionModel.getParentName() != null) { + if (StringUtils.isNotBlank(updateActionModel.getSearchKey())) { if (updateActionModel.getSearchKey().toLowerCase().contains(searchText.toLowerCase()) ) { filterModelList.add(new ActionModel(updateActionModel.getActionName(), updateActionModel.getParentName(), updateActionModel.getAction())); } diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java index fb1fdc1ee..9c701840f 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe.toolbar; import com.fr.design.actions.UpdateAction; +import com.fr.stable.StringUtils; import com.fr.stable.pinyin.PinyinFormat; import com.fr.stable.pinyin.PinyinHelper; @@ -33,10 +34,13 @@ public class UpdateActionModel { */ private void setSearchKey(String parentName, UpdateAction action) { StringBuffer buffer = new StringBuffer(); - buffer.append(parentName).append(PinyinHelper.convertToPinyinString(parentName, SEPARATOR, PinyinFormat.WITHOUT_TONE)) - .append(PinyinHelper.getShortPinyin(parentName)) - .append(actionName).append(PinyinHelper.convertToPinyinString(actionName, SEPARATOR, PinyinFormat.WITHOUT_TONE)) - .append(PinyinHelper.getShortPinyin(actionName)).append(action.getSearchText()); + if (actionName == null) { + return; + } + buffer.append(parentName).append(SEPARATOR).append(PinyinHelper.convertToPinyinString(parentName, "", PinyinFormat.WITHOUT_TONE)) + .append(SEPARATOR).append(PinyinHelper.getShortPinyin(parentName)).append(SEPARATOR) + .append(actionName).append(SEPARATOR).append(PinyinHelper.convertToPinyinString(actionName, "", PinyinFormat.WITHOUT_TONE)) + .append(SEPARATOR).append(PinyinHelper.getShortPinyin(actionName)).append(action.getSearchText()); this.searchKey = buffer.toString(); } From a7456326cb359fd06354e81ae231a39be6cf02e8 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 12:59:59 +0800 Subject: [PATCH 16/20] bug fix --- .../alphafine/cell/model/ActionModel.java | 15 +-- .../search/manager/ActionSearchManager.java | 22 ++-- .../search/manager/RecentSearchManager.java | 102 +++++++++++------- .../mainframe/toolbar/UpdateActionModel.java | 19 ++-- 4 files changed, 86 insertions(+), 72 deletions(-) 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 fdc63feac..12b19fe12 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 @@ -13,7 +13,7 @@ import javax.swing.*; public class ActionModel extends AlphaCellModel { private Action action; - private String actionName; + private String className; public ActionModel(String name, String content, CellType type) { super(name, content, type); @@ -43,11 +43,6 @@ public class ActionModel extends AlphaCellModel { this.setDescription(description); } - public ActionModel(String name, Action action) { - super(name, null, CellType.ACTION); - this.action = action; - } - public Action getAction() { return action; } @@ -69,14 +64,14 @@ public class ActionModel extends AlphaCellModel { @Override public String getStoreInformation() { - return getActionName(); + return getClassName(); } - public String getActionName() { + public String getClassName() { return getAction().getClass().getName(); } - public void setActionName(String actionName) { - this.actionName = actionName; + public void setClassName(String className) { + this.className = className; } } 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 53fe4438a..59182594f 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 @@ -9,6 +9,7 @@ import com.fr.design.mainframe.alphafine.cell.model.ActionModel; import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.toolbar.UpdateActionManager; import com.fr.design.mainframe.toolbar.UpdateActionModel; +import com.fr.general.ComparatorUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.stable.StringUtils; @@ -71,24 +72,17 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { } /** - * 根据类名反射获取对象 + * 根据类名获取对象 * @param actionName * @return */ public static ActionModel getModelFromCloud(String actionName ) { - UpdateAction action = null; - String name = null; - try { - Class className = Class.forName(actionName); - action = (UpdateAction) className.newInstance(); - name = action.getName(); - } catch (ClassNotFoundException e) { - FRLogger.getLogger().error(e.getMessage()); - } catch (IllegalAccessException e) { - FRLogger.getLogger().error(e.getMessage()); - } catch (InstantiationException e) { - FRLogger.getLogger().error(e.getMessage()); + List updateActions = UpdateActionManager.getUpdateActionManager().getUpdateActions(); + for (UpdateActionModel updateActionModel : updateActions) { + if (ComparatorUtils.equals(actionName, updateActionModel.getClassName())) { + return new ActionModel(updateActionModel.getActionName(), updateActionModel.getParentName(), updateActionModel.getAction()); + } } - return new ActionModel(name, action); + return null; } } 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 8742c09ba..e755a1477 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 @@ -3,9 +3,9 @@ package com.fr.design.mainframe.alphafine.search.manager; import com.fr.base.FRContext; import com.fr.base.Utils; import com.fr.design.mainframe.alphafine.AlphaFineConstants; +import com.fr.design.mainframe.alphafine.CellType; import com.fr.design.mainframe.alphafine.cell.CellModelHelper; -import com.fr.design.mainframe.alphafine.cell.model.AlphaCellModel; -import com.fr.design.mainframe.alphafine.cell.model.MoreModel; +import com.fr.design.mainframe.alphafine.cell.model.*; import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.file.XMLFileManager; import com.fr.general.ComparatorUtils; @@ -38,11 +38,11 @@ public class RecentSearchManager extends XMLFileManager implements AlphaFineSear private static final int MAX_SIZE = 3; private static RecentSearchManager recentSearchManager = null; private static File recentFile = null; - private List fileList; - private List actionList; - private List documentList; private SearchResult modelList; - private List pluginList; + private List fileList = new ArrayList<>(); + private List actionList = new ArrayList<>(); + private List documentList = new ArrayList<>(); + private List pluginList = new ArrayList<>(); private List recentModelList = new ArrayList<>(); private Map> recentKVModelMap = new HashMap<>(); @@ -95,17 +95,73 @@ public class RecentSearchManager extends XMLFileManager implements AlphaFineSear } } + private void addModelToList(List list, String name) { try { - AlphaCellModel model = CellModelHelper.getModelFromJson(new JSONObject(name)); + AlphaCellModel model = getModelFromJson(new JSONObject(name)); if (model != null) { - list.add(CellModelHelper.getModelFromJson(new JSONObject(name))); + list.add(model); } } catch (JSONException e) { FRLogger.getLogger().error(e.getMessage()); } } + /** + * 转成cellModel + * @param object + * @return + */ + private AlphaCellModel getModelFromJson(JSONObject object) { + int typeValue = object.optInt("cellType"); + AlphaCellModel cellModel = null; + switch (CellType.parse(typeValue)) { + case ACTION: + cellModel = ActionSearchManager.getModelFromCloud(object.optString("result")); + if (cellModel != null) { + actionList.add(cellModel); + } + break; + case DOCUMENT: + cellModel = DocumentSearchManager.getModelFromCloud(object.optJSONObject("result")); + if (cellModel != null) { + documentList.add(cellModel); + } + break; + case FILE: + cellModel = FileSearchManager.getModelFromCloud(object.optString("result")); + if (cellModel != null) { + fileList.add(cellModel); + } + break; + case PLUGIN: + case REUSE: + cellModel = PluginSearchManager.getModelFromCloud(object.optJSONObject("result")); + if (cellModel != null) { + pluginList.add(cellModel); + } + break; + + } + return cellModel; + } + + public List getFileList() { + return fileList; + } + + public List getActionList() { + return actionList; + } + + public List getDocumentList() { + return documentList; + } + + public List getPluginList() { + return pluginList; + } + @Override public void writeXML(XMLPrintWriter writer) { writer.startTAG(XML_TAG); @@ -135,37 +191,7 @@ public class RecentSearchManager extends XMLFileManager implements AlphaFineSear return "alphafine_recent.xml"; } - public List getFileList() { - return fileList; - } - public void setFileList(List fileList) { - this.fileList = fileList; - } - - public List getActionList() { - return actionList; - } - - public void setActionList(List actionList) { - this.actionList = actionList; - } - - public List getDocumentList() { - return documentList; - } - - public void setDocumentList(List documentList) { - this.documentList = documentList; - } - - public List getPluginList() { - return pluginList; - } - - public void setPluginList(List pluginList) { - this.pluginList = pluginList; - } /** * 获取xml diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java index 9c701840f..4ded05f71 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java @@ -1,7 +1,6 @@ package com.fr.design.mainframe.toolbar; import com.fr.design.actions.UpdateAction; -import com.fr.stable.StringUtils; import com.fr.stable.pinyin.PinyinFormat; import com.fr.stable.pinyin.PinyinHelper; @@ -16,7 +15,7 @@ public class UpdateActionModel { private static final String SEPARATOR = "/"; private String parentName; private String actionName; - private String relatedKey; + private String className; private String searchKey; private UpdateAction action; @@ -80,14 +79,6 @@ public class UpdateActionModel { this.actionName = actionName; } - public String getRelatedKey() { - return relatedKey; - } - - public void setRelatedKey(String relatedKey) { - this.relatedKey = relatedKey; - } - public String getSearchKey() { return searchKey; } @@ -95,4 +86,12 @@ public class UpdateActionModel { public void setSearchKey(String searchKey) { this.searchKey = searchKey; } + + public String getClassName() { + return getAction().getClass().getName(); + } + + public void setClassName(String className) { + this.className = className; + } } From bddc2fff5741a6578152a94822ea081ecbb375b9 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 13:37:41 +0800 Subject: [PATCH 17/20] bug fix --- .../alphafine/search/manager/RecommendSearchManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d1213822b..94f718be2 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 @@ -47,7 +47,7 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { if (jsonArray != null && jsonArray.length() > 0) { for (int i = 0; i < jsonArray.length(); i++) { AlphaCellModel alphaCellModel = CellModelHelper.getModelFromJson((JSONObject) jsonArray.get(i)); - if (!RecentSearchManager.getRecentSearchManger().getRecentModelList().contains(alphaCellModel)) { + if (alphaCellModel != null && !RecentSearchManager.getRecentSearchManger().getRecentModelList().contains(alphaCellModel)) { this.modelList.add(alphaCellModel); } } From d6717b9a71afd37db49e4b145cf1bbaec347901a Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 13:43:36 +0800 Subject: [PATCH 18/20] bug fix --- .../src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 430314458..6a3079f9d 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -169,10 +169,10 @@ public abstract class ToolBarMenuDock { if (menuDef instanceof OpenRecentReportMenuDef) { return; } - String ParentName = menuDef.getName(); + String parentName = menuDef.getName(); for (ShortCut shortCut : menuDef.getShortcutList()) { if (shortCut instanceof UpdateAction) { - shortCutsList.add(new UpdateActionModel(ParentName, (UpdateAction) shortCut)); + shortCutsList.add(new UpdateActionModel(parentName, (UpdateAction) shortCut)); } else if (shortCut instanceof MenuDef) { addUpdateActionToList((MenuDef) shortCut); } From 1d7d09eee657d4e08dc9e0782092a90832da8914 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 13:45:31 +0800 Subject: [PATCH 19/20] bug fix --- .../src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java index a3c79f138..3507978d2 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java +++ b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java @@ -8,13 +8,12 @@ import com.fr.stable.StringUtils; * Created by XiaXiang on 2017/5/8. */ public class AlphaFineHelper { - private static AlphaFineDialog dialog; /** * 弹出alphafine搜索面板 */ public static void showAlphaFineDialog(boolean forceOpen) { - dialog = new AlphaFineDialog(DesignerContext.getDesignerFrame(), forceOpen); + AlphaFineDialog dialog = new AlphaFineDialog(DesignerContext.getDesignerFrame(), forceOpen); dialog.setVisible(true); } From d705d50fa21418af0872eed06a6e3dde7cc3b11c Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 5 Jun 2017 13:48:02 +0800 Subject: [PATCH 20/20] bug fix --- .../alphafine/search/manager/ActionSearchManager.java | 4 +--- .../alphafine/search/manager/RecentSearchManager.java | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) 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 59182594f..b174e0b73 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 @@ -1,16 +1,14 @@ package com.fr.design.mainframe.alphafine.search.manager; import com.fr.design.DesignerEnvManager; -import com.fr.design.actions.UpdateAction; import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.design.mainframe.alphafine.CellType; -import com.fr.design.mainframe.alphafine.cell.model.MoreModel; import com.fr.design.mainframe.alphafine.cell.model.ActionModel; +import com.fr.design.mainframe.alphafine.cell.model.MoreModel; import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.toolbar.UpdateActionManager; import com.fr.design.mainframe.toolbar.UpdateActionModel; import com.fr.general.ComparatorUtils; -import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.stable.StringUtils; 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 e755a1477..535d6b1a6 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 @@ -4,8 +4,8 @@ import com.fr.base.FRContext; import com.fr.base.Utils; import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.design.mainframe.alphafine.CellType; -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.MoreModel; import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.file.XMLFileManager; import com.fr.general.ComparatorUtils;