AdvancedMenuForActions.java 文件源码

java
阅读 32 收藏 0 点赞 0 评论 0

项目:mytourbook 作者:
/**
 * This is called when the parent menu is displayed. An arm listener is added to each menu item
 * in the parent menu.
 * 
 * @param menuEvent
 * @param menuParentControl
 * @param isAutoOpen
 * @param autoOpenDelay
 * @param menuPosition
 * @param toolTip
 */
public void onShowParentMenu(   final MenuEvent menuEvent,
                                final Control menuParentControl,
                                final boolean isAutoOpen,
                                final boolean isAnimationEnabled,
                                final int autoOpenDelay,
                                final Point menuPosition,
                                final ToolTip toolTip) {

    _menuParentControl = menuParentControl;
    _isAutoOpen = isAutoOpen;
    _isAnimationEnabled = isAnimationEnabled;
    _autoOpenDelay = autoOpenDelay;
    _advMenuPosition = menuPosition;
    _toolTip = toolTip;

    final Menu menu = (Menu) menuEvent.widget;

    // add arm listener to each menu item
    for (final MenuItem menuItem : menu.getItems()) {

        /*
         * check if an arm listener is already set
         */
        final Listener[] itemArmListeners = menuItem.getListeners(SWT.Arm);
        boolean isArmAvailable = false;

        for (final Listener listener : itemArmListeners) {
            if (listener instanceof TypedListener) {
                if (((TypedListener) listener).getEventListener() instanceof ContextArmListener) {
                    isArmAvailable = true;
                    break;
                }
            }
        }

        if (isArmAvailable == false) {
            menuItem.addArmListener(_contextArmListener);
        }

        /*
         * it happened that the text of the menu item was not reset when the menu was opened
         * with a mouse click and not automatically
         */
        if (_armMenuItem != null && _armMenuItem.isDisposed() == false && _armMenuItem == menuItem) {
            _armMenuItem.setText(_armActionText);
        }
    }

    // reset data from previous menu
    final IAction action = _actionContributionItem.getAction();
    if (action instanceof IAdvancedMenuForActions) {
        ((IAdvancedMenuForActions) action).resetData();
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号