From 9eba157623f2af396420280cbe7491fd2aed14db Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 24 May 2017 18:47:11 +0800 Subject: [PATCH] bug fix --- .../alphafine/cell/model/ActionModel.java | 8 ++++- .../search/manager/ActionSearchManager.java | 8 +++-- .../mainframe/toolbar/ToolBarMenuDock.java | 24 +++++++++----- .../toolbar/UpdateActionManager.java | 8 ++--- .../mainframe/toolbar/UpdateActionModel.java | 32 +++++++++++++++++++ 5 files changed, 63 insertions(+), 17 deletions(-) create mode 100644 designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java 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 f0f0e32f6..493c5ad10 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 @@ -11,7 +11,7 @@ import java.io.Serializable; /** * Created by XiaXiang on 2017/4/20. */ -public class ActionModel extends AlphaCellModel implements Serializable { +public class ActionModel extends AlphaCellModel { private Action action; private String actionName; @@ -38,6 +38,12 @@ public class ActionModel extends AlphaCellModel implements Serializable { return action != null ? action.hashCode() : 0; } + public ActionModel(String name, String description, Action action) { + super(name, null, CellType.ACTION); + this.action = action; + this.setDescription(description); + } + public ActionModel(String name, Action action) { super(name, null, CellType.ACTION); this.action = action; 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 0200cdb24..12417f4d6 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 @@ -8,6 +8,7 @@ import com.fr.design.mainframe.alphafine.cell.model.MoreModel; 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.FRLogger; import com.fr.general.Inter; @@ -35,10 +36,11 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { lessModelList = new SearchResult(); moreModelList = new SearchResult(); if (DesignerEnvManager.getEnvManager().getAlphafineConfigManager().isContainAction()) { - List updateActions = UpdateActionManager.getUpdateActionManager().getUpdateActions(); - for (UpdateAction updateAction : updateActions) { + List updateActions = UpdateActionManager.getUpdateActionManager().getUpdateActions(); + for (UpdateActionModel updateActionModel : updateActions) { + UpdateAction updateAction = updateActionModel.getAction(); if (updateAction.getName() != null && updateAction.getName().toLowerCase().contains(searchText.toLowerCase())) { - filterModelList.add(new ActionModel(updateAction.getName() ,updateAction)); + filterModelList.add(new ActionModel(updateAction.getName() ,updateActionModel.getParentName(), updateAction)); } } if (filterModelList != null && filterModelList.size() >0) { 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 536f984eb..ff49aa7b0 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -55,8 +55,7 @@ public abstract class ToolBarMenuDock { public static final int PANLE_HEIGNT = 26; private MenuDef[] menus; private ToolBarDef toolBarDef; - private ArrayList shortCuts; - + private List shortCutsList; /** * 更新菜单 */ @@ -145,27 +144,36 @@ public abstract class ToolBarMenuDock { addCommunityMenuDef(menuList); // 添加全部UpdateAction到actionmanager中 - getAllUpdateActions(menuList); - UpdateActionManager.getUpdateActionManager().setUpdateActions(shortCuts); + addAllUpdateActionsToList(menuList); + UpdateActionManager.getUpdateActionManager().setUpdateActions(shortCutsList); return menuList.toArray(new MenuDef[menuList.size()]); } - private List getAllUpdateActions(List menuList) { - shortCuts = new ArrayList<>(); + /** + * 获取所有actionmodel + * @param menuList + */ + private void addAllUpdateActionsToList(List menuList) { + shortCutsList = new ArrayList<>(); for (MenuDef menuDef : menuList) { addUpdateActionToList(menuDef); } - return shortCuts; } + /** + * 递归获取所有UpdateAction + * @param menuDef + */ private void addUpdateActionToList(MenuDef menuDef) { + + String ParentName = menuDef.getName(); if (menuDef instanceof OpenRecentReportMenuDef) { return; } for (ShortCut shortCut : menuDef.getShortcutList()) { if (shortCut instanceof UpdateAction) { - shortCuts.add((UpdateAction) shortCut); + shortCutsList.add(new UpdateActionModel(ParentName, (UpdateAction) shortCut)); } else if (shortCut instanceof MenuDef) { addUpdateActionToList((MenuDef) shortCut); } diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionManager.java b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionManager.java index 05cad8d98..47ae6101f 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionManager.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionManager.java @@ -1,7 +1,5 @@ package com.fr.design.mainframe.toolbar; -import com.fr.design.actions.UpdateAction; - import java.util.List; /** @@ -9,7 +7,7 @@ import java.util.List; */ public class UpdateActionManager { private static UpdateActionManager updateActionManager = null; - private List updateActions; + private List updateActions; public synchronized static UpdateActionManager getUpdateActionManager() { if (updateActionManager == null) { @@ -18,11 +16,11 @@ public class UpdateActionManager { return updateActionManager; } - public List getUpdateActions() { + public List getUpdateActions() { return updateActions; } - public void setUpdateActions(List updateActions) { + public void setUpdateActions(List updateActions) { this.updateActions = updateActions; } } diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java new file mode 100644 index 000000000..b14277618 --- /dev/null +++ b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java @@ -0,0 +1,32 @@ +package com.fr.design.mainframe.toolbar; + +import com.fr.design.actions.UpdateAction; + +/** + * Created by XiaXiang on 2017/5/24. + */ +public class UpdateActionModel { + private String parentName; + private UpdateAction action; + + public UpdateActionModel(String parentName, UpdateAction action) { + this.parentName = parentName; + this.action = action; + } + + public String getParentName() { + return parentName; + } + + public void setParentName(String parentName) { + this.parentName = parentName; + } + + public UpdateAction getAction() { + return action; + } + + public void setAction(UpdateAction action) { + this.action = action; + } +}