Error initializing actions in createActions() in ViewPart

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

Error initializing actions in createActions() in ViewPart

Postby maitscha » Mon Dec 04, 2006 6:55 am

Hello!

I always get the following error when initializing some actions in a ViewPart:

Code: Select all
    private void createActions() {
        searchFieldsMenuAction = new SearchFieldMenu(this.getViewSite().getWorkbenchWindow(), searchModel);
        searchSourceMenuAction = new SearchSourceMenu(this.getViewSite().getWorkbenchWindow());
    }


This is the error:
Operation failed!

Argument cannot be null!

Contact support by e-mail now?


Any ideas?

Regards

Christoph
maitscha
 
Posts: 5
Joined: Mon Dec 04, 2006 6:50 am
Location: Vienna

Re: Error initializing actions in createActions() in ViewPar

Postby Eric Clayberg » Tue Dec 05, 2006 6:45 am

Can you send us a complete test case and your Eclipse ".log" file?

The log file should indicate what is null.
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 maitscha » Wed Dec 06, 2006 12:01 am

Hello!

Where is the log-file of eclipse located?

Regards
maitscha
 
Posts: 5
Joined: Mon Dec 04, 2006 6:50 am
Location: Vienna

Postby Eric Clayberg » Wed Dec 06, 2006 5:06 am

maitscha wrote:Where is the log-file of eclipse located?

It is always located in your workspace .metadata directory.
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 maitscha » Sat Dec 09, 2006 8:55 am

Hello!

This is what my log-file says:

Code: Select all

!ENTRY com.swtdesigner 4 4 2006-12-09 18:16:50.421
!MESSAGE Designer internal error [5.1.0.20060908125203]: java.lang.reflect.InvocationTargetException
!STACK 0
com.swtdesigner.properties.PropertyException: java.lang.reflect.InvocationTargetException
   at com.swtdesigner.model.swt.jface.action.types.ExternalActionInfo.createAction(ExternalActionInfo.java:97)
   at com.swtdesigner.model.swt.jface.action.ActionReference.createItem(ActionReference.java:74)
   at com.swtdesigner.model.swt.jface.action.AbstractManagerInfo.fillManager(AbstractManagerInfo.java:128)
   at com.swtdesigner.model.swt.jface.action.ToolBarInfo.fillToolBarManager(ToolBarInfo.java:136)
   at com.swtdesigner.model.swt.jface.action.ToolBarInfo.createToolBarManager(ToolBarInfo.java:130)
   at com.swtdesigner.model.swt.rcp.parts.ViewPartInfo$ViewControl.<init>(ViewPartInfo.java:317)
   at com.swtdesigner.model.swt.rcp.parts.ViewPartInfo.createPartControl(ViewPartInfo.java:90)
   at com.swtdesigner.model.swt.rcp.parts.WorkbenchPartInfo.createSingleControl(WorkbenchPartInfo.java:204)
   at com.swtdesigner.model.swt.widgets.control.ControlInfo.createControl(ControlInfo.java:636)
   at com.swtdesigner.model.swt.widgets.composite.AbstractCompositeInfo.createControl(AbstractCompositeInfo.java:350)
   at com.swtdesigner.model.swt.widgets.composite.AbstractCompositeInfo.createGUIComponent(AbstractCompositeInfo.java:343)
   at com.swtdesigner.model.JavaInfo.notifyPropertyChanged(JavaInfo.java:5660)
   at com.swtdesigner.model.swt.widgets.control.ControlInfo.notifyPropertyChanged(ControlInfo.java:345)
   at com.swtdesigner.model.swt.rcp.parts.WorkbenchPartInfo.notifyPropertyChanged(WorkbenchPartInfo.java:189)
   at com.swtdesigner.model.JavaInfo.notifyPropertyChanged(JavaInfo.java:5634)
   at com.swtdesigner.gef.common.property.DesignerEditorPropertyComposite.handleRootNodeSelected(DesignerEditorPropertyComposite.java:577)
   at com.swtdesigner.gef.common.property.DesignerEditorPropertyComposite.updatePropertyComposite(DesignerEditorPropertyComposite.java:757)
   at com.swtdesigner.gef.DesignerEditor.parseCompilationUnit(DesignerEditor.java:1036)
   at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:941)
   at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:926)
   at com.swtdesigner.editors.MultiPageEditor.showDesignEditor(MultiPageEditor.java:402)
   at com.swtdesigner.editors.MultiPageEditor$2.widgetSelected(MultiPageEditor.java:175)
   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:928)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
   at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:709)
   at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3171)
   at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1953)
   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:928)
   at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
   at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
   at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
   at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
   at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
   at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
   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:336)
   at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
   at org.eclipse.core.launcher.Main.run(Main.java:977)
   at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: java.lang.reflect.InvocationTargetException
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
   at java.lang.reflect.Constructor.newInstance(Unknown Source)
   at com.swtdesigner.model.swt.widgets.ConstructorSourcePropertiesHelper.createObject(ConstructorSourcePropertiesHelper.java:207)
   at com.swtdesigner.model.swt.jface.action.types.ExternalActionInfo.createAction(ExternalActionInfo.java:85)
   ... 52 more
Caused by: java.lang.NullPointerException
   at org.dseas.base.util.BundleUtils.getFileUrl(BundleUtils.java:27)
   at org.dseas.ui.rcp.search.OpenSearchViewMenu.<init>(OpenSearchViewMenu.java:87)
   ... 58 more

!ENTRY com.swtdesigner 4 4 2006-12-09 18:16:50.437
!MESSAGE Designer internal error [5.1.0.20060908125203]: Argument cannot be null
!STACK 0
java.lang.IllegalArgumentException: Argument cannot be null
   at org.eclipse.swt.SWT.error(SWT.java:3358)
   at org.eclipse.swt.SWT.error(SWT.java:3297)
   at org.eclipse.swt.SWT.error(SWT.java:3268)
   at org.eclipse.swt.widgets.Widget.error(Widget.java:435)
   at org.eclipse.swt.widgets.Widget.checkParent(Widget.java:267)
   at org.eclipse.swt.widgets.Widget.<init>(Widget.java:141)
   at org.eclipse.swt.widgets.Control.<init>(Control.java:96)
   at org.eclipse.swt.widgets.Scrollable.<init>(Scrollable.java:72)
   at org.eclipse.swt.widgets.Composite.<init>(Composite.java:93)
   at com.swtdesigner.model.swt.widgets.composite.AbstractCompositeInfo.createControl(AbstractCompositeInfo.java:355)
   at com.swtdesigner.model.swt.widgets.composite.AbstractCompositeInfo.createGUIComponent(AbstractCompositeInfo.java:343)
   at com.swtdesigner.model.JavaInfo.notifyPropertyChanged(JavaInfo.java:5660)
   at com.swtdesigner.model.swt.widgets.control.ControlInfo.notifyPropertyChanged(ControlInfo.java:345)
   at com.swtdesigner.model.swt.rcp.parts.WorkbenchPartInfo.notifyPropertyChanged(WorkbenchPartInfo.java:189)
   at com.swtdesigner.model.JavaInfo.notifyPropertyChanged(JavaInfo.java:5634)
   at com.swtdesigner.gef.common.property.DesignerEditorPropertyComposite.handleRootNodeSelected(DesignerEditorPropertyComposite.java:577)
   at com.swtdesigner.gef.common.property.DesignerEditorPropertyComposite.updatePropertyComposite(DesignerEditorPropertyComposite.java:757)
   at com.swtdesigner.gef.DesignerEditor.parseCompilationUnit(DesignerEditor.java:1036)
   at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:941)
   at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:926)
   at com.swtdesigner.editors.MultiPageEditor.showDesignEditor(MultiPageEditor.java:402)
   at com.swtdesigner.editors.MultiPageEditor$2.widgetSelected(MultiPageEditor.java:175)
   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:928)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
   at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:709)
   at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3171)
   at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1953)
   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:928)
   at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
   at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
   at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
   at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
   at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
   at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
   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:336)
   at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
   at org.eclipse.core.launcher.Main.run(Main.java:977)
   at org.eclipse.core.launcher.Main.main(Main.java:952)
maitscha
 
Posts: 5
Joined: Mon Dec 04, 2006 6:50 am
Location: Vienna

Postby maitscha » Sat Dec 09, 2006 8:58 am

And here is the class (ViewPart):
Code: Select all
package org.dseas.ui.rcp.search;

import java.util.ArrayList;

import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IViewSite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.part.ViewPart;
import org.dseas.base.logging.Logger;
import org.dseas.ui.rcp.common.adapter.TableAdapterFactory;
import org.dseas.ui.rcp.common.provider.TableContentProvider;
import org.dseas.ui.rcp.common.provider.TableLabelProvider;


public class SearchView extends ViewPart {

    public static final String      ID = "org.dseas.ui.rcp.search.SearchView"; //$NON-NLS-1$

    private TableViewer             tableViewer;
    private Table                   table;
   
    private Composite               searchFieldComposite;
   
    private FormToolkit             toolkit;
   
    private SearchFieldMenu         searchFieldsMenuAction;
    private OpenSearchViewMenu        searchSourceMenuAction;
   
    private ArrayList<Text>         searchFields;
    private ArrayList<TableColumn>  resultColumns;
    private ArrayList<String>       filters;
   
    private Object[]                records;
    private RecordFilter            recordFilter;
   
    private SearchModel             searchModel;

    private final Logger            log = new Logger(SearchView.class);
   
   
    /**
     * Default constructor
     */
    public SearchView() {
        searchModel = new PatientSearchModel();
    }
   
    /**
     * Constructor which creates a new SearchView with a
     * given search model.
     * @param model
     */
    public SearchView(SearchModel model) {
        this.searchModel = model;
    }
   
    /* (non-Javadoc)
     * @see org.eclipse.ui.part.ViewPart#init(org.eclipse.ui.IViewSite)
     */
    @Override
    public void init(IViewSite arg0) throws PartInitException {
        super.init(arg0);
        toolkit = new FormToolkit(Display.getCurrent());
    }

    /**
     * Create contents of the view part
     * @param parent
     */
    @Override
    public void createPartControl(Composite parent) {
        Composite rootComposite = new Composite(parent, SWT.NONE);
        rootComposite.setLayout(new FormLayout());
       
        final CTabFolder tabFolder = new CTabFolder(rootComposite, SWT.NONE);
        tabFolder.setTabPosition(SWT.BOTTOM);
       
        final FormData formData = new FormData();
        formData.right = new FormAttachment(100, 0);
        formData.top = new FormAttachment(0, 0);
        formData.left = new FormAttachment(0, 0);
        formData.bottom = new FormAttachment(100, 0);
        tabFolder.setLayoutData(formData);
        toolkit.adapt(tabFolder, true, true);
       
       
        final CTabItem searchTabItem = new CTabItem(tabFolder, SWT.NONE);
        searchTabItem.setText("Suche");

        final Composite searchComposite = new Composite(tabFolder, SWT.NONE);
        final GridLayout gridLayout_2 = new GridLayout();
        searchComposite.setLayout(gridLayout_2);
        toolkit.adapt(searchComposite);
        searchTabItem.setControl(searchComposite);

        searchFieldComposite = new Composite(searchComposite, SWT.NONE);
        searchFieldComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
        final GridLayout gridLayout = new GridLayout();
        gridLayout.numColumns = 2;
        gridLayout.marginWidth = 0;
        gridLayout.marginHeight = 0;
        searchFieldComposite.setLayout(gridLayout);
        toolkit.adapt(searchFieldComposite);
       
        final Composite tableComposite = new Composite(searchComposite, SWT.NONE);
        tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
        tableComposite.setLayout(new FillLayout());
        toolkit.adapt(tableComposite);

        tableViewer = new TableViewer(tableComposite, SWT.FULL_SELECTION | SWT.BORDER | SWT.VIRTUAL );
       
        this.getSite().setSelectionProvider(tableViewer);
        tableViewer.setLabelProvider(new TableLabelProvider());
        tableViewer.setContentProvider(new TableContentProvider());
       
        table = tableViewer.getTable();
        table.setLinesVisible(true);
        table.setHeaderVisible(true);
        toolkit.adapt(table, true, true);
        //
       
        tabFolder.setSelection(searchTabItem);

        final CTabItem optionTabItem = new CTabItem(tabFolder, SWT.NONE);
        optionTabItem.setText("Optionen");
       
        createAdditionalPartControl();
        initializeToolBar();
        initializeMenu();
    }
   
    /**
     * Create additional part controls outside of the tabItems
     */
    public void createAdditionalPartControl() {
        if (toolkit == null || tableViewer == null) {
            return;
        }
       
        searchFields = new ArrayList<Text>();
        filters = new ArrayList<String>();
       
        recordFilter = new RecordFilter(filters,records);
       
        for (int i=0; i<searchModel.getFieldCount(); i++) {
            SearchField f = searchModel.getField(i);
           
            toolkit.createLabel(searchFieldComposite, f.name);
           
            Text field = toolkit.createText(searchFieldComposite, null, SWT.NONE);
            field.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
            field.setVisible(f.visible);
           
            searchFields.add(field);
           
            field.addModifyListener(new SearchFieldModifyListener(i) {
                public void modifyText(ModifyEvent e) {
                    Text text = (Text)e.widget;
                   
                    filters.set(idx,text.getText());
                    table.setItemCount(recordFilter.getSize());
                    tableViewer.refresh();
                }
            });
        }
       
        tableViewer.getTable().addMouseListener(new MouseAdapter() {
            public void mouseDoubleClick(final MouseEvent e) {
                int row = tableViewer.getTable().getSelectionIndex();
               
                Object o = tableViewer.getElementAt(row);
                searchModel.openEditorPart(o);
            }
        });
       
        tableViewer.getTable().addListener(SWT.SetData, new Listener () {
            public void handleEvent(Event event) {
                TableItem item = (TableItem)event.item;
                int idx = tableViewer.getTable().indexOf(item);
                Object o = records[idx];
            }
        });

        resultColumns = new ArrayList<TableColumn>();
       
        for (int i=0; i<searchModel.getColumnCount(); i++) {
            ResultColumn c = searchModel.getColumn(i);
           
            TableColumn column = new TableColumn(table, SWT.NONE);
            column.setWidth(c.columnWitdh);
            column.setText(c.name);
           
            resultColumns.add(column);
        }

        records = searchModel.getRecords();
        tableViewer.setInput(records);
    }
   
    /**
     * Initialize the toolbar
     */
    private void initializeToolBar() {
        //searchFieldsMenuAction = new SearchFieldMenu(this.getViewSite().getWorkbenchWindow(), searchModel);
        searchSourceMenuAction = new OpenSearchViewMenu(this.getViewSite().getWorkbenchWindow());

        IToolBarManager toolbarManager = getViewSite().getActionBars().getToolBarManager();

        toolbarManager.add(searchSourceMenuAction);
        //toolbarManager.add(searchFieldsMenuAction);
    }

    /**
     * Initialize the menu
     */
    private void initializeMenu() {
        IMenuManager menuManager = getViewSite().getActionBars()
                .getMenuManager();
    }

    @Override
    public void setFocus() {
       
    }
}
maitscha
 
Posts: 5
Joined: Mon Dec 04, 2006 6:50 am
Location: Vienna

Postby Eric Clayberg » Sat Dec 09, 2006 9:43 am

Based on your log file, here's the problem:

Code: Select all
java.lang.NullPointerException
   at org.dseas.base.util.BundleUtils.getFileUrl(BundleUtils.java:27)
   at org.dseas.ui.rcp.search.OpenSearchViewMenu.<init>(OpenSearchViewMenu.java:87)

Fix that NPE in the OpenSearchViewMenu class and it should work fine.

Looking at your source code, the basic problem is in the following line of code:

Code: Select all
searchSourceMenuAction = new OpenSearchViewMenu(this.getViewSite().getWorkbenchWindow());

At design time, this.getViewSite().getWorkbenchWindow() will always be null, so you need to code OpenSearchViewMenu defensively.
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 maitscha » Sun Dec 10, 2006 2:07 am

Thank you, that fixed my problem!
maitscha
 
Posts: 5
Joined: Mon Dec 04, 2006 6:50 am
Location: Vienna

better indication

Postby czerwonka » Tue Jan 30, 2007 3:36 pm

Eric,

It may make sense to throw the stack trace into the dialog so user know that it's potentially their code no playing nice. Thoughts?
czerwonka
 
Posts: 12
Joined: Wed Feb 11, 2004 5:31 am

Re: better indication

Postby Eric Clayberg » Wed Feb 07, 2007 7:42 pm

czerwonka wrote:It may make sense to throw the stack trace into the dialog so user know that it's potentially their code no playing nice. Thoughts?

BTW, if you keep the Eclipse Error Log view open, you can double-click on any excxeption that appears very easily.
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


Return to SWT Designer

Who is online

Users browsing this forum: No registered users and 1 guest