Browse Source

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

* commit '191546eebdd9eaa63d968952bd77e63bfdd404c2':
  格式化
  menuhandler的equals方法会使带参数的shortcut不进行比较,改用AbstractProvider
master
richie 8 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
* 设计器菜单栏插件接口
*/
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);
}

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.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;
}
}
Loading…
Cancel
Save