Hi Anton,

Please see https://www.canoo.com/jira/browse/UBA-7323. ULCScrollPane was
not handling inherited component menu correctly. This has been fixed in
ULC 6.2.1. Kindly upgrade your ULC version to a later or latest release.

Please subscribe to the developer list and post your queries there.

Thanks and regards,

Janak

-----------------------------------------
Janak Mulani

email: [EMAIL PROTECTED]
url: http://www.canoo.com

Beyond AJAX - Java Rich Internet Applications

http://www.canoo.com/ulc
-----------------------------------------
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Anton Karmanov
Sent: Saturday, June 28, 2008 2:59 PM
To: [EMAIL PROTECTED]
Subject: [Ulc-info] NullPointerException in UIList

I use ULCList and call setInheritsPopupMenu(true) on it.
NullPointerException occurs on client side when right mouse button is
clicked in the list. ULC 6.2 is used.



Please, let me know how to solve this problem.



Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException

      at
com.ulcjava.base.client.UIComponent.getComponentPopupMenu(UIComponent.java
:149)

      at
com.ulcjava.base.client.UIComponent.getComponentPopupMenu(UIComponent.java
:72)

      at
com.ulcjava.base.client.UIList.getComponentPopupMenu(UIList.java:77)

      at
com.ulcjava.base.client.UIComponent.showPopupMenu(UIComponent.java:40)

      at com.ulcjava.base.client.UIComponent$a_.a(UIComponent$a_.java:4)

      at
com.ulcjava.base.client.UIComponent$a_.mouseReleased(UIComponent$a_.java:8
)

      at
java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:232)

      at
java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)

      at
java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)

      at java.awt.Component.processMouseEvent(Component.java:5517)

      at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)

      at
com.ulcjava.base.client.UIList$BasicList.processMouseEvent(UIList.java:21)

      at java.awt.Component.processEvent(Component.java:5282)

      at java.awt.Container.processEvent(Container.java:1966)

      at java.awt.Component.dispatchEventImpl(Component.java:3984)

      at java.awt.Container.dispatchEventImpl(Container.java:2024)

      at java.awt.Component.dispatchEvent(Component.java:3819)

      at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)

      at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)

      at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)

      at java.awt.Container.dispatchEventImpl(Container.java:2010)

      at java.awt.Window.dispatchEventImpl(Window.java:1791)

      at java.awt.Component.dispatchEvent(Component.java:3819)

      at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)

      at
com.ulcjava.base.client.FilteringEventQueue.dispatchEvent(FilteringEventQu
eue.java:23)

      at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.
java:242)

      at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.ja
va:163)

      at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

      at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

      at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)



To reproduce error, run following program:



package test11ulc;



import java.util.ArrayList;

import java.util.List;



import com.ulcjava.base.application.AbstractApplication;

import com.ulcjava.base.application.ULCBorderLayoutPane;

import com.ulcjava.base.application.ULCButton;

import com.ulcjava.base.application.ULCFrame;

import com.ulcjava.base.application.ULCList;

import com.ulcjava.base.application.ULCMenuItem;

import com.ulcjava.base.application.ULCPopupMenu;

import com.ulcjava.base.application.ULCScrollPane;

import com.ulcjava.base.application.event.IWindowListener;

import com.ulcjava.base.application.event.WindowEvent;

import com.ulcjava.base.development.DevelopmentRunner;



@SuppressWarnings("serial")

public class Win extends AbstractApplication

{

      private static final Object SYNC = new Object();

     

      public void start()

      {

            ULCPopupMenu menu = new ULCPopupMenu();

            menu.add(new ULCMenuItem("Menu"));

           

            ULCFrame frame = new ULCFrame("Window");

            frame.getContentPane().setComponentPopupMenu(menu);

           

            ULCButton button = new ULCButton("Button");

            button.setInheritsPopupMenu(true);

           

            List<String> itemList = new ArrayList<String>();

            for (int i = 0; i < 1000; i++) {

                  itemList.add(Integer.toString(i));

            }

            ULCList list = new ULCList(itemList);

            ULCScrollPane pane = new ULCScrollPane(list);

            pane.setInheritsPopupMenu(true);

            list.setInheritsPopupMenu(true);

           

            frame.getContentPane().add(pane, ULCBorderLayoutPane.CENTER);

            frame.getContentPane().add(button, ULCBorderLayoutPane.SOUTH);

           

            frame.setSize(100, 400);           

            frame.setDefaultCloseOperation(ULCFrame.DISPOSE_ON_CLOSE);

            frame.setLocationRelativeTo(null);

            frame.addWindowListener(new IWindowListener() {

                  public void windowClosing(WindowEvent arg0)

                  {

                        synchronized (SYNC) {

                              SYNC.notify();

                        }

                  }

            });

            frame.setVisible(true);

      }



      public static void main(String[] args) throws Exception

      {

            System.out.println(Thread.currentThread().getStackTrace()[2]);

           

            DevelopmentRunner.setApplicationClass(Win.class);

            DevelopmentRunner.main(args);

           

            synchronized (SYNC) {

                  SYNC.wait();

            }

           

           
DevelopmentRunner.getClientSession().sendStopApplicationAndWait();

      }

}



Best Regards,

Anton Karmanov

Mirasoft Group



_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer

Reply via email to