I having a model element that will hold ResourceBundle. let me call call the List Property as "ResourceBundles" of type "IResourceBundle". the IResourceBundle has just one property called "ResourceBundle" which is defined as follows,
When the property is rendered as List Property editor, am not able to invoke my ResourceBundleJumpActionHandler, i don't see the Hyperlink under it ..
Not sure why this not enabling the action ? I am giving my ResourceBundleJumpActionHandler because i will convert the resource bundle to actual file and call the IDE.openEditor(). For testing purpose i have made my computeEnablement() always return true.
You shouldn't need to define your own jump action handler here as there is a system-provided one for any property with RelativePathService (RelativePathJumpActionHandler).
When activating jump command, make sure that you aren't trying to do that while in table cell editing mode. When not in cell editing mode, hold down CTRL key, hover over the text in the table and you should see a hyperlink.
But what if I want to give my own implementation, right now am opening a ResourceBundle which will look like com.test.Bundle actually that's file com/test/Bundle.properties, so i need to convert the file to workspace file before I open it. that's why I was implicitly providing Sapphire.Jump and giving my handler.
Will this not work ? I don't see any hyper link on my ListProperty even when am not in cell editing mode.
Converting between a relative path (whatever the format) and the absolute path (in standard format) is the job of RelativePathService. I am not sure why this isn't working for you. I tried a similar case just now and it's working fine. Put a few breakpoints inside your jump action handler or disable yours and put breakpoints inside RelativePathJumpActionHandler.
May want to try your code on Windows to see if it works there. Painting jump hyperlinks is non-native behavior, there could be differences on Linux. It was tested on at least one version of Linux when originally implemented, but that was a while ago.
no actually my file (properties) file is of java package format like com.test.Sapphire --> src/com/test/Sapphire.properties, but strangely when i added to my own sapphire-extension.xml of my plugin and copy and pasted the action with a special condition that its only for my ResourceBundle or its related model.
> actually my file (properties) file is of java package format like com.test.Sapphire
That doesn't matter for RelativePathService. You can implement different separators, handle path variables, etc. You just need to implement RelativePathService's convertToRelative and convertToAbsolute methods.