Skip to main content

Creating Image Registry in Eclipse RCP


Advantage of Creating Image Registry in Eclipse RCP
  1. Share the same image between different plugin.
  2. Don't dispose the image and keep it for another plugin.

How to create Image Registry?

Override the initializeImageRegistry method inside the Activator and you are ready to use t

 public class Activator  {
      public static final String MY_PLUGIN_ID = "org.harikrushnav.myplugin.name";
      public static final String MY_IMAGE_ID = "myimage.save";
   

....
     @override
      protected void initializeImageRegistry(ImageRegistry registry) {
     
         Bundle bundle = Platform.getBundle(MY_PLUGIN_ID);
         IPath path = new Path("icons/save_image.gif");
         URL url = FileLocator.find(bundle, path, null);
         ImageDescriptor desc = ImageDescriptor.createFromURL(url);
         registry.put(MY_IMAGE_ID , desc);
      }
   }

How to use in Code :

In same plugin :
ProfileAction.setImageDescriptor(
            imageRegistry.getDescriptor( Activator.MY_IMAGE_ID) );

In Different plugin :

AbstractUIPlugin.imageDescriptorFromPlugin( "org.harikrushnav.myplugin.name", "myimage.save" );

Best Practice for Maintaining Images in Eclipse Plugin

If we maintain the same image in multiple Plugins the each plugin will be of large size. Instead of maintaining the copy of Image at multiple locations, reusing the images is the best practice.
By doing this, we can avoid loading of the same image multiple times and as a result, RCP application will perform faster.
So I would suggest reusing the images as much as possible in the Eclipse Plugin Development.

Comments

Popular posts from this blog

Could not launch the product because the associated workspace is currently in use by another Eclipse application

If you are seeing following error at the beginning of the Eclipse or any RCP based product then here is the solution: Error Message: "Could not launch the product because the associated workspace is currently in use by another Eclipse application." or “Workspace in use or cannot be created chose a different one.” Solution :  go to workspace location remove file <workspace location>/.metadata/.lock Reason: Through eclipse, user can create multiple Workspace locations. One Workspace location can be edited by one user at a time. A workspace contains the data related to various project configuration and local file storage. To avoid multiple users to access the same workspace, eclipse is maintaining a ".lock" file inside the Workspace. Eclipse will remove this ".lock" file when you will close the Eclipse. But in some cases, the Eclipse will crash due to some error, due to which it could not able to remove ".lock" file from

HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException

HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException If you get following error while connecting to your Database with Spring boot, try the suggested solution below: 2018 - 11 - 25 15 : 28 : 50.078 INFO 5335 --- [ main] o. h . e . j . e . i . LobCreatorBuilderImpl : HHH000424: Disabling contextual LOB creation as createClob() method threw error : java. lang . reflect . InvocationTargetException java. lang . reflect . InvocationTargetException : null at sun. reflect . NativeMethodAccessorImpl . invoke0 (Native Method) ~[na: 1.8 . 0 _161] at sun. reflect . NativeMethodAccessorImpl . invoke (NativeMethodAccessorImpl. java : 62 ) ~[na: 1.8 . 0 _161] at sun. reflect . DelegatingMethodAccessorImpl . invoke (DelegatingMethodAccessorImpl. java : 43 ) ~[na: 1.8 . 0 _161] at java. lang . reflect . Method . invoke (Method. java : 498 ) ~[na: 1.8 . 0 _161] at org. hibernate . engin

Use these Eclipse RCP Testing tools before your code goes to LIVE

Use these Eclipse RCP Testing tools before your code goes to LIVE Testing is most important part of any software development lifecycle. There are different type of testing required before Eclipse RCP tool is released to productions. Eclipse RCP is very easy to test with the these testing tools: UI Testing: RCP Testing Tool RCP Testing Tool is a project for GUI testing automation of Eclipse-based applications. RCPTT is fully aware about Eclipse Platform's internals, hiding this complexity from end users and allowing QA engineers to create highly reliable UI tests at great pace. SWT Bot SWTBot is an open-source Java based UI/functional testing tool for testing SWT, Eclipse and GEF based applications.  SWTBot provides APIs that are simple to read and write. The APIs also hide the complexities involved with SWT and Eclipse. This makes it suitable for UI/functional testing by everyone, not just developers. SWTBot also provides its own set of ass