Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Rich Client Platform (RCP) » createExecutableExtension with parameters
createExecutableExtension with parameters [message #452457] Thu, 06 July 2006 04:23 Go to next message
Eclipse UserFriend
Originally posted by: kent.126.com

Hi,
According to the IConfigurationElement javadoc, it always use
0-parameter public constructor to instantiate the class specified in
Executable Extension .
But in my application ,the class need to be instantiated with two
parameters, So is it possible to create an Executable Extension with
parameters? How to deal the case that need to be instantiated with
parameters?

Thanks,
Kent.
Re: createExecutableExtension with parameters [message #716761 is a reply to message #452457] Thu, 18 August 2011 11:14 Go to previous messageGo to next message
Philipp M. Fischer is currently offline Philipp M. FischerFriend
Messages: 67
Registered: November 2010
Location: Germany
Member
Hi there,

An old Question but still relevant. At least for me.

I am currently struggeling with the same issue. I solved it using reflection, which is not the most beatiful way, but it works for me at the moment.

IConfigurationElement[] configElements = Platform.getExtensionRegistry).getConfigurationElementsFor(EXTENSION_DETAIL_CONTRIBUTION); 
try {
   for (IConfigurationElement configElement : configElements) {
      String id = configElement.getAttribute(DETAIL_CONTRIBUTION_ID);
      String name = configElement.getAttribute(DETAIL_CONTRIBUTION_NAME);
      String clazz = configElement.getAttribute(DETAIL_CONTRIBUTION_CLASS);
				
      Class<DetailItem> detailItem= (Class<DetailItem>) Class.forName(clazz);
      Constructor constructor = detailItem.getConstructors()[0]; 	
      DetailItem detailItem = (DetailItem) constructor.newInstance(this, id, name);
   }
} catch ...


So if anyone has a better idea, please let us know. I guess there is a better way for this kind of Problem.

Cheers

Phil
Re: createExecutableExtension with parameters [message #1006574 is a reply to message #716761] Thu, 31 January 2013 20:32 Go to previous message
Brian Watt is currently offline Brian WattFriend
Messages: 20
Registered: February 2012
Junior Member
Originally posted by: merks.ca.ibm.com

This is what do do when we want return the static singleton we know is
declared in the interface rather than invoke a constructor:

Class<?> javaClass =
Platform.getBundle(element.getDeclaringExtension().getContributor().getName()).loadClass(element.getAttribute(attributeName));
Field field = javaClass.getField("eINSTANCE");
Object result = field.get(null);
return (EPackage)result;

So you can use this same approach to load the class and then use normal
Java reflection to invoke some other constructor.

Previous Topic:track changes made before activation of plugin
Next Topic:Get the Command id in a PropertyTester
Goto Forum:
  


Current Time: Wed Apr 24 16:32:31 GMT 2024

Powered by FUDForum. Page generated in 0.03299 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top