diff --git a/designer_base/src/com/fr/design/fun/MenuHandler.java b/designer_base/src/com/fr/design/fun/MenuHandler.java index 53958f8562..5b9dd179d5 100644 --- a/designer_base/src/com/fr/design/fun/MenuHandler.java +++ b/designer_base/src/com/fr/design/fun/MenuHandler.java @@ -10,7 +10,7 @@ import com.fr.stable.fun.Level; * @since 8.0 * 设计器菜单栏插件接口 */ -public interface MenuHandler extends Level{ +public interface MenuHandler extends Level { String MARK_STRING = "MenuHandler"; @@ -30,47 +30,43 @@ public interface MenuHandler extends Level{ * 插入菜单的位置 * * @param total 插入的位置 - * * @return 插入位置,如果想放到最后,则返回-1 */ int insertPosition(int total); /** * 是否在插入的菜单前插入一个分割符 + * * @return 是否插入分隔符 */ boolean insertSeparatorBefore(); /** * 是否在插入的菜单后插入一个分割符 + * * @return 是否插入分隔符 */ boolean insertSeparatorAfter(); /** * 所属的分类菜单 + * * @return 分类菜单名 */ String category(); /** * 具体的菜单项内容 + * * @return 菜单项内容 */ ShortCut shortcut(); /** * 具体的菜单项内容 - * @param plus 当前模板 * + * @param plus 当前模板 * @return 菜单项内容 */ ShortCut shortcut(ToolBarMenuDockPlus plus); - - /** - * 两个菜单项相等等情况 - * @param obj 比较对象 - * @return 相等则返回true,否则返回false - */ - boolean equals(Object obj); } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractMenuHandler.java b/designer_base/src/com/fr/design/fun/impl/AbstractMenuHandler.java index db911f5010..d62769a2db 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractMenuHandler.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractMenuHandler.java @@ -3,39 +3,22 @@ package com.fr.design.fun.impl; import com.fr.design.fun.MenuHandler; import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; import com.fr.design.menu.ShortCut; -import com.fr.general.ComparatorUtils; +import com.fr.stable.fun.impl.AbstractProvider; /** * @author richie * @date 2015-05-13 * @since 8.0 */ -public abstract class AbstractMenuHandler implements MenuHandler { +public abstract class AbstractMenuHandler extends AbstractProvider implements MenuHandler { public int currentAPILevel() { return CURRENT_LEVEL; } - - public boolean equals(Object obj) { - return obj instanceof AbstractMenuHandler - && ComparatorUtils.equals(category(), ((AbstractMenuHandler) obj).category()) - && shortCutEquals(this, (AbstractMenuHandler)obj); - } - - private boolean shortCutEquals(AbstractMenuHandler target, AbstractMenuHandler self){ - ShortCut targetShortCut = target.shortcut(); - ShortCut selfShortCut = self.shortcut(); - - if (targetShortCut == null && selfShortCut == null){ - return true; - } - - if (targetShortCut != null && selfShortCut != null){ - return ComparatorUtils.equals(targetShortCut.getClass(), selfShortCut.getClass()); - } - - return false; + @Override + public String mark4Provider() { + return this.getClass().getName(); } /** @@ -43,9 +26,8 @@ public abstract class AbstractMenuHandler implements MenuHandler { * 不需要选中对象, (文件, 服务器, 关于) * * @return 菜单Action - * */ - public ShortCut shortcut(){ + public ShortCut shortcut() { return null; } @@ -53,11 +35,9 @@ public abstract class AbstractMenuHandler implements MenuHandler { * 获取当前菜单对应的Action * * @param plus 当前选中的对象(模板) - * * @return 菜单Action - * */ - public ShortCut shortcut(ToolBarMenuDockPlus plus){ + public ShortCut shortcut(ToolBarMenuDockPlus plus) { return null; } } \ No newline at end of file