0

ZK でカスタム コマンドを定義し、メニュー項目をクリックして呼び出したいと考えています。

AuRequest オブジェクトを定義できることがわかりましたが、zkau.send 関数を使用して JavaScript で行っているように、この AuRequest を送信する方法が見つかりません。

何かがまったく可能ですか?そうでない場合、zkau.send を JavaScript 関数で定義し、MeunItem クリック イベントで呼び出すことは可能ですか?

     public class MyCustomCommand extends Command
     {
        protected MyCustomCommand(final String id, final int flags)
        {
            super(id, flags);
        }

        @Override
        protected void process(final AuRequest request)
        {
            System.out.println("Menu Item Click");
        }

     }

コマンドを登録します。

<bean id="myCustomCommand" class="com.test.commands.MyCustomCommand">
    <constructor-arg value="onMenuEdit" />
    <constructor-arg><util:constant static-field="org.zkoss.zk.au.Command.IGNORE_OLD_EQUIV"/></constructor-arg>
</bean>

および MenuItem イベント

        menuItem.addEventListener(Events.ON_CLICK, new EventListener()
        {
            @Override
            public void onEvent(final Event event) throws Exception
            {

                final Tree tree = (Tree) parent;
                final Treeitem treeitem = tree.getSelectedItem();

                final AuRequest auRequest = new AuRequest(treeitem.getDesktop(), treeitem.getUuid(), "onMenuEdit", new String[]{});

                //how to send the auRequest??
            }
        });
4

1 に答える 1

2

ここで提案しているように、Commandまたはオブジェクトの使用についてコメントすることはできません。AuRequest私はそれらが使用されているのを見たことがなく、自分で使用したこともありません。この問題を解決するためにそれらを使用する方法があれば、うまくいけば答えが得られます。とはいえ、やりたいことを達成する方法は他にもあります。

開発者リファレンスのイベント発生セクションで詳しく説明されているように、静的Eventsオブジェクトからイベントを発生させることができます。

Events.postEvent("onMenuEdit", myTree, myDataEgTheTreeItem);

また..

Events.sendEvent("onMenuEdit", myTree, myDataEgTheTreeItem);

また..

Events.echoEvent("onMenuEdit", myTree, myDataEgTheTreeItem);

これらはいずれもComposerusing..

@Listen("onMenuItem = #myTree")
public void onTreeMenuItemEvent(Event event) {
    // Handle event
}

それが役立つことを願っています。

于 2013-03-01T19:08:10.597 に答える