Hi all,

In fact, I searched in your codebase how to open a view by ID and found 
this snippet:
auto workbench = berry::PlatformUI::GetWorkbench();
auto window = workbench->GetActiveWorkbenchWindow();
berry::IWorkbenchPage::Pointer page = window->GetActivePage();
page->ShowView(viewID);

I had some problem because I was writing the plugin's ID instead of the 
view's, but it's working perfectly now. I wrote this snippet on the last 
line of my WorkbenchWindowAdvisor::PostWindowCreate() and everything 
seems ok.  Of course, it would be better if the plugin loaded without 
forcing it to display but this is by far the best solution I found.

Nil

Le 2016-12-02 à 17:48, Nil Goyette a écrit :
> Hi Stefan, Hi poor Paul Palei,
>
> I found a way to do what I want. Turns out an 'eager' plugin can access
> the good old IDataStorageService, which I can use to add my category
> nodes AND add a listener so I can change the node's parent when they are
> loaded.
>
> Of course it would be better if I could force my plugin to load but it's
> probably a big can of worms. Thank you for your help.
>
> Nil
>
> Le 2016-12-02 à 11:06, Nil Goyette a écrit :
>> Hi,
>>
>> Yes, we are already using this. We have our own app, perspective,
>> preferences, WorkbenchWindowAdvisor, etc. We may not be aware of all the
>> things we can do with these classes though. I think they are mostly used
>> to set up the UI. Do you have a particular idea in mind on how to do
>> what I want?
>>
>> We also use SetCloseable(false); on our plugin. It's never closed...
>> it's just not opened/activated ;) when there's another plugin in front.
>>
>> Nil
>>
>> Le 2016-12-02 à 03:42, Kislinskiy, Stefan a écrit :
>>> Hi,
>>>
>>> with this high amount of customization you may be interested in creating 
>>> your own Workbench-like application were you can set up a default 
>>> perspective any many more things to your needs. This is quite easy to 
>>> achieve. Have a look at [1,2] for an example. It also seems to be possible 
>>> to make a plugin kind of "non-closeable" like the Data Manager.
>>>
>>> Best,
>>> Stefan
>>>
>>> [1] https://github.com/MITK/MITK/tree/v2016.03.0/Applications/Diffusion
>>> [2] 
>>> https://github.com/MITK/MITK/tree/v2016.03.0/Plugins/org.mitk.gui.qt.diffusionimagingapp
>>> ________________________________________
>>> Von: Nil Goyette <nil.goye...@imeka.ca>
>>> Gesendet: Donnerstag, 1. Dezember 2016 17:01
>>> An: Kislinskiy, Stefan; mitk-users@lists.sourceforge.net
>>> Betreff: Re: AW: [mitk-users] Force plugin to load
>>>
>>> Hi Stefan,
>>>
>>> This is only for non-UI code, right? Setting IO classes, preferences,
>>> node descriptors, etc.?
>>>
>>> I ask because I doubt what I want to do is possible. Maybe you can tell.
>>> At the start of our app, we create 3 category nodes: Anatomies, ROIs and
>>> Tracts. Each time a file is loaded, the plugin places the new node in
>>> the right group, based on a predicate. Of course, without our plugin,
>>> the groups don't exist and the nodes just pile up in the DM.
>>>
>>> If we can 1) access the DM 2) create nodes 3) be warned when there's a
>>> new node (NodeAdded), then it's perfect. We have other problems, but I'm
>>> pretty sure we can fix them if we can fix this :)
>>>
>>> Nil
>>>
>>> Le 2016-11-30 à 18:12, Kislinskiy, Stefan a écrit :
>>>> This may not be the answer you are exactly looking for, but you should 
>>>> consider calling your initialization code from the start method of your 
>>>> plugin activator and set the eager policy. See [1,2] for an example.
>>>>
>>>> Best,
>>>> Stefan
>>>>
>>>> [1] 
>>>> https://github.com/MITK/MITK/blob/master/Plugins/org.mitk.simulation/manifest_headers.cmake#L6
>>>> [2] 
>>>> https://github.com/MITK/MITK/blob/master/Plugins/org.mitk.simulation/src/internal/org_mitk_simulation_Activator.cpp#L85
>>>> ________________________________________
>>>> Von: Nil Goyette <nil.goye...@imeka.ca>
>>>> Gesendet: Mittwoch, 30. November 2016 21:27
>>>> An: mitk-users@lists.sourceforge.net
>>>> Betreff: [mitk-users] Force plugin to load
>>>>
>>>> Hi all,
>>>>
>>>> I know that we can use Perspective::CreateInitialLayout to ask a plugin
>>>> to be at a specific posion and to open. This is working in MOST cases
>>>> but not all.
>>>>
>>>> If the user opens another plugin X, stack it on the main plugin, then
>>>> close the program, the app will open with plugin X in front of our main
>>>> plugin, which will be inactive (You may need to do it many times if you
>>>> want to see it. Without --BlueBerry.clean of course). The plugin's
>>>> Activator and the view's constructor won't be called.
>>>>
>>>> Wathever plugins is in front of our plugin, we need to load it anyway
>>>> because it loads the AUTOLOAD_WITH modules and the constructor of our
>>>> view is doing important stuff. So, is there a way to force a plugin to 
>>>> load?
>>>> Thank you for your time :)
>>>>
>>>> Nil
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> _______________________________________________
>>>> mitk-users mailing list
>>>> mitk-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/mitk-users
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
>> _______________________________________________
>> mitk-users mailing list
>> mitk-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/mitk-users
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> _______________________________________________
> mitk-users mailing list
> mitk-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mitk-users


------------------------------------------------------------------------------
_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to