NPE when laying out label in RowLayout

SWT Designer allows you to create the views, editors, perspectives, pref pages, composites, etc. that comprise Eclipse SWT & RCP applications and plug-ins.

Moderators: Konstantin.Scheglov, gnebling, Alexander.Mitin, jwren, Eric Clayberg

NPE when laying out label in RowLayout

Postby james_a_woods » Wed Jul 27, 2005 12:20 am

If I have hit a problem where the following code in a composite throws an NPE when I try and load it in the Design window of SWT-Designer v4.1.1 for eclipse 3.1.

Code: Select all
package au.com.emia.claim.gui.view;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;

public class Test extends Composite {

    private Label mLabel;
   
    public Test(Composite parent, int style) {
        super(parent, style);
        setLayout(new RowLayout());
        {
            mLabel = new Label(this, SWT.NONE);
            final RowData rowData = new RowData();
            rowData.width = 20;
            mLabel.setLayoutData(rowData);
            mLabel.setText("");
        }
    }

    public void dispose() {
        super.dispose();
    }

    protected void checkSubclass() {
    }

}


The problem goes away if I hide the setLayoutData line with

Code: Select all
            mLabel.setLayoutData(rowData); //$hide$


The exception thrown is
Code: Select all
!ENTRY com.swtdesigner 4 4 2005-07-27 18:11:32.739
!MESSAGE Designer internal error: java.lang.NullPointerException
!STACK 0
java.lang.NullPointerException
        at com.swtdesigner.model.swt.layout.row.RowDataInfo.setLayoutData(RowDataInfo.java:56)
        at com.swtdesigner.model.swt.layout.LayoutInfo.setLayoutData(LayoutInfo.java:345)
        at com.swtdesigner.model.swt.widgets.control.ControlInfo.applyLayoutData(ControlInfo.java:632)
        at com.swtdesigner.model.swt.widgets.control.ControlInfo.createControl(ControlInfo.java:493)
        at com.swtdesigner.model.swt.widgets.composite.AbstractCompositeInfo.createControl(AbstractCompositeInfo.java:346)
        at com.swtdesigner.model.swt.widgets.composite.ThisCompositeInfo.createControl(ThisCompositeInfo.java:99)
        at com.swtdesigner.model.swt.widgets.composite.AbstractCompositeInfo.createControl(AbstractCompositeInfo.java:309)
        at com.swtdesigner.model.JavaInfo.notifyPropertyChanged(JavaInfo.java:5703)
        at com.swtdesigner.model.swt.widgets.control.ControlInfo.notifyPropertyChanged(ControlInfo.java:255)
        at com.swtdesigner.model.JavaInfo.notifyPropertyChanged(JavaInfo.java:5688)
        at com.swtdesigner.gef.common.property.DesignerEditorPropertyComposite.handleRootNodeSelected(DesignerEditorPropertyComposite.java:546)
        at com.swtdesigner.gef.common.property.DesignerEditorPropertyComposite.updatePropertyComposite(DesignerEditorPropertyComposite.java:725)
        at com.swtdesigner.gef.DesignerEditor.parseCompilationUnit(DesignerEditor.java:1022)
        at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:921)
        at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:887)
        at com.swtdesigner.editors.MultiPageEditor.showDesignEditor(MultiPageEditor.java:325)
        at com.swtdesigner.editors.MultiPageEditor$2.widgetSelected(MultiPageEditor.java:168)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:867)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:852)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:660)
        at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3138)
        at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1922)
        at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:288)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
        at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
        at org.eclipse.core.launcher.Main.run(Main.java:973)
        at org.eclipse.core.launcher.Main.main(Main.java:948)


Cheers
James
james_a_woods
 
Posts: 2
Joined: Wed Jul 27, 2005 12:13 am

Re: NPE when laying out label in RowLayout

Postby Eric Clayberg » Wed Jul 27, 2005 4:58 am

james_a_woods wrote:If I have hit a problem where the following code in a composite throws an NPE when I try and load it in the Design window of SWT-Designer v4.1.1 for eclipse 3.1.

Try this again in the latest v4.1.1 build as I believe that this problem has already been corrected.
Eric Clayberg
Software Engineering Manager
Google
http://code.google.com/webtoolkit/download.html

Author: "Eclipse Plug-ins"
http://www.qualityeclipse.com
Eric Clayberg
Moderator
 
Posts: 4503
Joined: Tue Sep 30, 2003 6:39 am
Location: Boston, MA USA

Postby james_a_woods » Wed Jul 27, 2005 3:46 pm

Yes, it is fixed in the 2005.07.27 Build.

Thanks. :mrgreen:
james_a_woods
 
Posts: 2
Joined: Wed Jul 27, 2005 12:13 am


Return to SWT Designer

Who is online

Users browsing this forum: No registered users and 1 guest