Browse Source

Merge pull request #55 in BA/design from ~VITO/design:dev to dev

* commit '191546eebdd9eaa63d968952bd77e63bfdd404c2':
  格式化
  menuhandler的equals方法会使带参数的shortcut不进行比较,改用AbstractProvider
master
richie 9 years ago
parent
commit
44c2c1e733
  1. 16
      designer_base/src/com/fr/design/fun/MenuHandler.java
  2. 34
      designer_base/src/com/fr/design/fun/impl/AbstractMenuHandler.java

16
designer_base/src/com/fr/design/fun/MenuHandler.java

@ -10,7 +10,7 @@ import com.fr.stable.fun.Level;
* @since 8.0 * @since 8.0
* 设计器菜单栏插件接口 * 设计器菜单栏插件接口
*/ */
public interface MenuHandler extends Level{ public interface MenuHandler extends Level {
String MARK_STRING = "MenuHandler"; String MARK_STRING = "MenuHandler";
@ -30,47 +30,43 @@ public interface MenuHandler extends Level{
* 插入菜单的位置 * 插入菜单的位置
* *
* @param total 插入的位置 * @param total 插入的位置
*
* @return 插入位置如果想放到最后则返回-1 * @return 插入位置如果想放到最后则返回-1
*/ */
int insertPosition(int total); int insertPosition(int total);
/** /**
* 是否在插入的菜单前插入一个分割符 * 是否在插入的菜单前插入一个分割符
*
* @return 是否插入分隔符 * @return 是否插入分隔符
*/ */
boolean insertSeparatorBefore(); boolean insertSeparatorBefore();
/** /**
* 是否在插入的菜单后插入一个分割符 * 是否在插入的菜单后插入一个分割符
*
* @return 是否插入分隔符 * @return 是否插入分隔符
*/ */
boolean insertSeparatorAfter(); boolean insertSeparatorAfter();
/** /**
* 所属的分类菜单 * 所属的分类菜单
*
* @return 分类菜单名 * @return 分类菜单名
*/ */
String category(); String category();
/** /**
* 具体的菜单项内容 * 具体的菜单项内容
*
* @return 菜单项内容 * @return 菜单项内容
*/ */
ShortCut shortcut(); ShortCut shortcut();
/** /**
* 具体的菜单项内容 * 具体的菜单项内容
* @param plus 当前模板
* *
* @param plus 当前模板
* @return 菜单项内容 * @return 菜单项内容
*/ */
ShortCut shortcut(ToolBarMenuDockPlus plus); ShortCut shortcut(ToolBarMenuDockPlus plus);
/**
* 两个菜单项相等等情况
* @param obj 比较对象
* @return 相等则返回true否则返回false
*/
boolean equals(Object obj);
} }

34
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.fun.MenuHandler;
import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus;
import com.fr.design.menu.ShortCut; import com.fr.design.menu.ShortCut;
import com.fr.general.ComparatorUtils; import com.fr.stable.fun.impl.AbstractProvider;
/** /**
* @author richie * @author richie
* @date 2015-05-13 * @date 2015-05-13
* @since 8.0 * @since 8.0
*/ */
public abstract class AbstractMenuHandler implements MenuHandler { public abstract class AbstractMenuHandler extends AbstractProvider implements MenuHandler {
public int currentAPILevel() { public int currentAPILevel() {
return CURRENT_LEVEL; return CURRENT_LEVEL;
} }
@Override
public boolean equals(Object obj) { public String mark4Provider() {
return obj instanceof AbstractMenuHandler return this.getClass().getName();
&& 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;
} }
/** /**
@ -43,9 +26,8 @@ public abstract class AbstractMenuHandler implements MenuHandler {
* 不需要选中对象, (文件, 服务器, 关于) * 不需要选中对象, (文件, 服务器, 关于)
* *
* @return 菜单Action * @return 菜单Action
*
*/ */
public ShortCut shortcut(){ public ShortCut shortcut() {
return null; return null;
} }
@ -53,11 +35,9 @@ public abstract class AbstractMenuHandler implements MenuHandler {
* 获取当前菜单对应的Action * 获取当前菜单对应的Action
* *
* @param plus 当前选中的对象(模板) * @param plus 当前选中的对象(模板)
*
* @return 菜单Action * @return 菜单Action
*
*/ */
public ShortCut shortcut(ToolBarMenuDockPlus plus){ public ShortCut shortcut(ToolBarMenuDockPlus plus) {
return null; return null;
} }
} }
Loading…
Cancel
Save