Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] How to make a Custom RCP Application

Tahnks for your quick reply Jody.
Still investigating...
My goal would be in integrate udig with BIRT charts in my own branded RCP
application.


> That is great Cedric; this page really needs the feedback from someone
> trying it in the wild.  Part of the reason it is hard to work on this
> page is the subject of making an RCP application is covered so many
> places on the web. We started that page because it is a road bump ever
> developer hits  and a single page would be better then buying a book or
> hunting down the information scattered across the web.
>
> Additional comments inline.
>
>> Hi udigers,
>>
>> I'm trying to follow the online documentation on building a custom
>> application based on udig features (SDK RC13). I've passed the distance
>> tool tutorial and created the feature including this plugin. I followed
>> this link :
>> http://udig.refractions.net/confluence/display/DEV/5+Custom+Application+Tutorial
>>
>> and created a product based on my feature and udig features.
>>
> Cool; there is a slightly easier approach involving just marking off
> plugins; but it is easier to maintain and
> update your application when it is put together with features.


I've also tried to base my product on plugins and included ALL plugin from
SDK RC13 and my distance tool plugin.

The run gives me the same kind of output :

Exception in thread "Thread-3" java.lang.NullPointerException
	at org.eclipse.ui.internal.IntroAction.<init>(IntroAction.java:60)
	at org.eclipse.ui.actions.ActionFactory$11.create(ActionFactory.java:338)
	at
net.refractions.udig.internal.ui.UDIGActionBarAdvisor.fillHelpMenu(UDIGActionBarAdvisor.java:449)
	at
net.refractions.udig.internal.ui.UDIGActionBarAdvisor.fillMenuBar(UDIGActionBarAdvisor.java:165)
	at
org.eclipse.ui.application.ActionBarAdvisor.fillActionBars(ActionBarAdvisor.java:150)
	at
org.eclipse.ui.internal.WorkbenchWindow.fillActionBars(WorkbenchWindow.java:3301)
	at org.eclipse.ui.internal.WorkbenchWindow.<init>(WorkbenchWindow.java:380)
	at org.eclipse.ui.internal.Workbench.newWorkbenchWindow(Workbench.java:1725)
	at org.eclipse.ui.internal.Workbench.access$14(Workbench.java:1724)
	at
org.eclipse.ui.internal.Workbench$18.runWithException(Workbench.java:1001)
	at
org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296)
	at
org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:801)
	at
org.eclipse.ui.internal.Workbench$25.runWithException(Workbench.java:1342)
	at
org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2309)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
	at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
	at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at
net.refractions.udig.internal.ui.UDIGApplication.start(UDIGApplication.java:93)
	at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
	at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
	at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
	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.equinox.launcher.Main.invokeFramework(Main.java:508)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
>> Tying to run my own custom application, I faced some problems related to
>> WorkBenchConfiguration and menuBuilders as following :
>>
>> !ENTRY net.refractions.udig.ui 1 0 2007-12-03 14:57:08.125
>> !MESSAGE Info: Implementation of
>> net.refractions.udig.ui.WorkbenchConfiguration not specified. Defaulting
>> to uDig internal implementation.
>>
> I am trying to kill this WorkbenchConfiguration step; the extra
> complexity saves you making your
> own Application; trading real Java code you can see for some xml
> configuration steps. Not a good
> trade when we can get the same benefit with subclassing.
>> Exception in thread "Thread-3" java.lang.NullPointerException
>> 	at org.eclipse.ui.internal.IntroAction.<init>(IntroAction.java:60)
>> 	at
>> org.eclipse.ui.actions.ActionFactory$11.create(ActionFactory.java:338)
>> 	at
>> net.refractions.udig.internal.ui.UDIGActionBarAdvisor.fillHelpMenu(UDIGActionBarAdvisor.java:449)
>> 	at
>> net.refractions.udig.internal.ui.UDIGActionBarAdvisor.fillMenuBar(UDIGActionBarAdvisor.java:165)
>>
>> Any hints on how to solve this problem ?
>>
> Thinking ...
> UDIGActionBarAdvisor is a normal ActionBarAdvisor (a stratagy object
> used to tell the workbench how to draw the menu and tool bars). It looks
> like it had trouble creating one of the out of the box actions defined
> by ActionFactory (usually for things like CUT, COPY, PASTE...). Since we
> are
> building the help menu it is probably something like "Find and Install".
>
> My guess is going to be that the action mentioned at that line number
> involves a feature (say online help?) that was not specified in your
> application. What is the command at line 449 above - that will be our
> next clue.

I've included ALL udig features from SDK RC13 in my product. Don't know
which one include the help plugin...

>From the UDIGActionBarAdvisor :
line 165 is :
fillHelpMenu(helpMenu);
line 449 is :
IAction welcome = ActionFactory.INTRO.create(window);

That's my feedback. Don't expect to much cause I'm not an eclipse expert.
I'll get back to you if I find something else and will update the wiki if
I find a way to get it working.


Cedric

>
> Jody
> _______________________________________________
> User-friendly Desktop Internet GIS (uDig)
> http://udig.refractions.net
> http://lists.refractions.net/mailman/listinfo/udig-devel
>




Back to the top