Ship ICY toolbars to end users via plugin mechanism - how to?

Hey Icy plugin developers,

I managed to create a toolbar in Icy offering functionality provided by the Clicy plugin.

I’m now wondering if it is possible to ship this toolbar to end users. However, it’s part of the workspace/sys.xml file.

Did anybody ship toolbars in Icy and could point me to a resource where it’s done?

Thanks!

Cheers,
Robert

Hi Robert,

Excellent idea to make CLIcy blocks easier to use :+1:
Initially the workspaces were intended to be downloadable as plugins, so anyone could submit its own workspace as your. But as this feature was not really used we disabled it :-/
Still what you can do is to install it by yourself through your plugin :
Just copy your workspace file (can be any name but should have a .xml extension) into Icy WorkspaceLoader.WORKSPACE_PATH folder, you can have a look on other workspace file to see how they are formatted (don’t forget root node).
When this is done you can make it active using this method :
WorkspaceLocalPreferences.setWorkspaceEnable(“CLIJx filters”, true);

Then you need to restart Icy to rebuild the toolbar, you can just display a message to users or make Icy to restart using Icy.exit(true) but i discourage you to do so :wink:

Best,

– Stephane

1 Like

Hey @Stephane,

ah great. I do have that XML file already. So thanks to your instructions I write that little installer right away. Thanks a lot! That was very helpful insights. :+1:

Cheers,
Robert

1 Like

Hey @Stephane,

thanks again for your hints. Just a follow up question: Is there by chance an event thrown when clicy ist installed? I’m wondering when to execute your procedure explained above…

Thanks!

Cheers,
Robert

Hi @haesleinhuepf,

Just realized you replied to my last message ! You have an event for plugin installation indeed.
You can register this event with :
PluginInstaller.addListener(new PluginInstallerListener() {...});
You will receive a PluginDescriptor instance from that event providing informations about the installed plugin (as the name or the class name). That should help you to do what you want :slight_smile:

Cheers,

– Stephane

1 Like