2013-03-01 3 views
0

Я определил пользовательскую команду в ZK и хочу называть ее, нажав на пункт меню.ZK Fire Event от Java API

Я вижу, что мы можем определить объект AuRequest, но не можем найти способ отправить это AuRequest, как в JavaScript, используя функцию zkau.send.

что-то вообще возможно? Если нет, можно ли определить zkau.send в функции JavaScript и вызвать его в MeunItem Click Event?

 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?? 
      } 
     }); 

ответ

2

Я не могу прокомментировать использование Command или AuRequest объектов, как вы предлагаете здесь. Я никогда их не видел и никогда не использовал их сам. Если есть способ использовать их для решения этой проблемы, надеюсь, вы получите ответ. Тем не менее, есть другие способы добиться того, что вы хотите сделать.

Как указано в разделе справочника разработчиков, вы можете запустить событие из статического объекта Events.

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

или ..

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

или ..

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

Любой из них может быть обработан в Composer используя ..

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

Надежда, что помогает.