Community
Participate
Working Groups
when I use SWT/JFace alone with my application,PreferenceDialog reports exception: java.lang.NullPointerException at cn.yusens.eatery.ui.system.PreferencePageCard.performOk(PreferencePageCard.java:84) at org.eclipse.jface.preference.PreferenceDialog$11.run(PreferenceDialog.java:889) at org.eclipse.jface.util.SafeRunnable$1.run(SafeRunnable.java:113) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149) at org.eclipse.jface.preference.PreferenceDialog.okPressed(PreferenceDialog.java:869) at org.eclipse.jface.preference.PreferenceDialog.buttonPressed(PreferenceDialog.java:230) at org.eclipse.jface.dialogs.Dialog$3.widgetSelected(Dialog.java:660) 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.Display.runDeferredEvents(Display.java:3348) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968) at org.eclipse.jface.window.Window.runEventLoop(Window.java:820) at org.eclipse.jface.window.Window.open(Window.java:796) at cn.yusens.eatery.ui.system.SystemManage.doSystemPreference(SystemManage.java:80) at cn.yusens.eatery.ui.system.SystemManage$2.widgetSelected(SystemManage.java:63) 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.Link.WM_LBUTTONUP(Link.java:785) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3280) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1923) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966) at cn.yusens.eatery.ui.UIStartup.run(UIStartup.java:386) at cn.yusens.eatery.ui.UIStartup.main(UIStartup.java:409) .... PreferencePageCard's method performOk is: IPreferenceStore preference=this.getPreferenceStore(); preference.setValue(FILLSHORTCUT,txtFillShortcut.getText()); //line 84 .... I use these code to populate page of preference: ... PreferenceNode card=new PreferenceNode("card", new PreferencePageCard()); pmg.addToRoot(card); PreferenceNode acc=new PreferenceNode("account", new PreferencePageAccount()); pmg.addToRoot(acc); ... It's surprise that no exception occur when preference's dialog show at first. look at code segment of PreferenceDialog(method okPressed ): ... if (page != null) { if (!page.performOk()){ hasFailedOK = true; return; } } ... I think it's not enough: page!=null. so I had to change my code (PreferencePage's method ): public boolean performOk() { IPreferenceStore preference=this.getPreferenceStore(); if (preference==null){ return true; } ...
There are currently no plans to work on this however I would be happy to look over a contribution