Browse Source

menuhandler的equals方法会使带参数的shortcut不进行比较,改用AbstractProvider

master
vito 8 years ago
parent
commit
187dc6340b
  1. 7
      designer_base/src/com/fr/design/fun/MenuHandler.java
  2. 27
      designer_base/src/com/fr/design/fun/impl/AbstractMenuHandler.java

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

@ -66,11 +66,4 @@ public interface MenuHandler extends Level{
* @return 菜单项内容 * @return 菜单项内容
*/ */
ShortCut shortcut(ToolBarMenuDockPlus plus); ShortCut shortcut(ToolBarMenuDockPlus plus);
/**
* 两个菜单项相等等情况
* @param obj 比较对象
* @return 相等则返回true否则返回false
*/
boolean equals(Object obj);
} }

27
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;
} }
/** /**

Loading…
Cancel
Save