Yes.. ..I am trying to do right that: open a view.
The problem is that your code suggest to start with:

   IWorkbenchPage activePage = window.getActivePage();

but to get a "window" I need something like:

   IWorkbenchWindow window =
PlatformUI.getWorkbench().getActiveWorkbenchWindow()

Unfortunately I ALWAYS get tuck at this point:
the getActiveWorkbenchWindow() method uses a Display.getCurrent() call
that, IN MY CASE, returns NULL and, ultimately, leads to a NPE.

The comments in the Workbench.class state this:

public IWorkbenchWindow getActiveWorkbenchWindow() {
// Return null if called from a non-UI thread.
 // This is not spec'ed behaviour and is misleading, however this is how
// it
 // worked in 2.1 and we cannot change it now.
// For more details, see [Bug 57384] [RCP] Main window not active on
 // startup
if (Display.getCurrent() == null) {
return null;                  <<<<<=== I ALWAYS GET HERE !!
 }
[...]

Does this suggest you any way around?
or
What I am doing wrong?

Marco



2012/6/21 andrea antonello <andrea.antone...@gmail.com>

> Hi Marco,
> sorry to be a bit quick, but it might be that you find it here:
>
> http://jgrasstechtips.blogspot.it/2008/01/how-to-open-view-from-action-and.html
>
> I hope your question was about how to open a view through its id :)
>
> Ciao,
> Andrea
>
>
> On Thu, Jun 21, 2012 at 12:03 PM, Marco Foi <foima...@gmail.com> wrote:
> > With the explicit intent of both informing the dev community and asking
> for
> > help, I am reporting my activities within the GSoC project.
> >
> > I decided to add an operation to the eu.udig.tools.merge to allow for
> > merging features selected with the core selection tools (suggested by
> Jody
> > https://jira.codehaus.org/browse/UDIG-1921 ).
> >
> > The workflow is:
> > - the users adds a layer
> > - the users selects a number of features of his interest using "Box
> > selection" or "Feature selection" core tools
> > - the users right-clicks on the layer -> operation -> "Merge selected"
> (the
> > newly added operation!)
> > - the selected features are "passed" to the MergeView (available in the
> > eu.merge.tools.merge.internal.view): the view that ultimately calls the
> > methods to process geometries.
> >
> > The workflow (should) proceed as before, using the MergeView features to
> > eventually remove features and select text attributes of the output
> merged
> > feature.
> >
> >
> > THE PROBLEM
> >
> > How can a ViewPart be opened in uDig by code? (MergeView extends
> ViewPart)
> > I can retrieve selected features but I found no way to open the view (to
> use
> > its addSourceFeatures() method)
> > It seems that since the operation I created is not in the UI-therad (or
> > something like that), a pretty basic code line such:
> >
> > MergeView view = (MergeView) ApplicationGIS.getView(true, MergeView.ID);
> >
> > fails with a NullPointerException, caused by a Display.getCurrent()
> > returning null in a private method down inside ApplicationGIS.
> >
> > Any hint?
> >
> > Marco
> >
> >
> > _______________________________________________
> > User-friendly Desktop Internet GIS (uDig)
> > http://udig.refractions.net
> > http://lists.refractions.net/mailman/listinfo/udig-devel
> >
> _______________________________________________
> User-friendly Desktop Internet GIS (uDig)
> http://udig.refractions.net
> http://lists.refractions.net/mailman/listinfo/udig-devel
>
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

Reply via email to