當前位置: 首頁>>代碼示例>>Java>>正文


Java IConfigurationElement.createExecutableExtension方法代碼示例

本文整理匯總了Java中org.eclipse.core.runtime.IConfigurationElement.createExecutableExtension方法的典型用法代碼示例。如果您正苦於以下問題:Java IConfigurationElement.createExecutableExtension方法的具體用法?Java IConfigurationElement.createExecutableExtension怎麽用?Java IConfigurationElement.createExecutableExtension使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.eclipse.core.runtime.IConfigurationElement的用法示例。


在下文中一共展示了IConfigurationElement.createExecutableExtension方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: collectRegisteredProviders

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
private static Builder<DefaultQuickfixProvider> collectRegisteredProviders() {
	final Builder<DefaultQuickfixProvider> builder = ImmutableList.<DefaultQuickfixProvider> builder();
	if (Platform.isRunning()) {
		final IConfigurationElement[] elements = getQuickfixSupplierElements();
		for (final IConfigurationElement element : elements) {
			try {
				final Object extension = element.createExecutableExtension(CLAZZ_PROPERTY_NAME);
				if (extension instanceof QuickfixProviderSupplier) {
					builder.add(((QuickfixProviderSupplier) extension).get());
				}
			} catch (final CoreException e) {
				LOGGER.error("Error while instantiating quickfix provider supplier instance.", e);
			}
		}
	}
	return builder;
}
 
開發者ID:eclipse,項目名稱:n4js,代碼行數:18,代碼來源:DelegatingQuickfixProvider.java

示例2: execute

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
/**
 * Execute.
 * @param registry the registry
 */
@Execute
   public void execute() {
       
   	System.out.println("Start evaluating available extensions");
   	IConfigurationElement[] config = this.getExtensionRegistry().getConfigurationElementsFor(PLUGIN_ID);
   	
       try {
       	
           for (IConfigurationElement e : config) {
               System.out.println("Evaluating extension " + e.getName());
               final Object object = e.createExecutableExtension("class");
               if (object instanceof PlugIn) {
                   executeExtension(object);
               }
           }
       } catch (CoreException ex) {
           System.err.println(ex.getMessage());
       }
   }
 
開發者ID:EnFlexIT,項目名稱:AgentWorkbench,代碼行數:24,代碼來源:EvaluateContributionsHandler.java

示例3: createConnection

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
/**
 * Create a new connection from the connection created defined in the element
 * 
 * @param connectionInformation
 *            the connection information
 * @param ele
 *            the configuration element
 * @param autoReconnectDelay
 *            the automatic reconnect delay or <code>null</code> if not automatic reconnect should be used
 * @return a new {@link ConnectionService} or <code>null</code>
 */
private static ConnectionService createConnection ( final ConnectionInformation connectionInformation, final IConfigurationElement ele, final Integer autoReconnectDelay, final boolean lazyActivation )
{
    try
    {
        final Object o = ele.createExecutableExtension ( "class" );
        if ( ! ( o instanceof ConnectionCreator ) )
        {
            return null;
        }

        return ( (ConnectionCreator)o ).createConnection ( connectionInformation, autoReconnectDelay, lazyActivation );
    }
    catch ( final CoreException e )
    {
        Activator.getDefault ().getLog ().log ( e.getStatus () );
        return null;
    }
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:30,代碼來源:ConnectionCreatorHelper.java

示例4: findFactory

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
public static KeyProviderFactory findFactory ( final String id )
{
    for ( final IConfigurationElement ele : Platform.getExtensionRegistry ().getConfigurationElementsFor ( EXTP_KEY_PROVIDER_FACTORY ) )
    {
        if ( !ELE_FACTORY.equals ( ele.getName () ) )
        {
            continue;
        }

        try
        {
            return (KeyProviderFactory)ele.createExecutableExtension ( ATTR_CLASS );
        }
        catch ( final CoreException e )
        {
            StatusManager.getManager ().handle ( e, Activator.PLUGIN_ID );
        }
    }

    return null;
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:22,代碼來源:Helper.java

示例5: create

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
private StyleGenerator create ( final IConfigurationElement ele )
{
    if ( ele == null )
    {
        return null;
    }

    try
    {
        final Object o = ele.createExecutableExtension ( Messages.PreferenceSelectorStyleGenerator_2 );
        if ( o instanceof StyleGenerator )
        {
            return (StyleGenerator)o;
        }
        logger.warn ( "Class referenced in 'generatorClass' did not implement {}", StyleGenerator.class ); //$NON-NLS-1$
        return null;
    }
    catch ( final CoreException e )
    {
        StatusManager.getManager ().handle ( e, Activator.PLUGIN_ID );
        return null;
    }
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:24,代碼來源:PreferenceSelectorStyleGenerator.java

示例6: buildCache

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
private void buildCache ()
{
    for ( final IConfigurationElement ele : Platform.getExtensionRegistry ().getConfigurationElementsFor ( EXPT_DANGLING_RESOLVER ) )
    {
        if ( !ele.getName ().equals ( ELE_RESOLVER ) )
        {
            continue;
        }
        try
        {
            final DanglingReferenceResolver resolver = (DanglingReferenceResolver)ele.createExecutableExtension ( ATTR_CLASS );
            logger.debug ( "Adding resolver: {}", resolver ); //$NON-NLS-1$
            this.cache.add ( resolver );
        }
        catch ( final Exception e )
        {
            Activator.getDefault ().getLog ().log ( new Status ( IStatus.ERROR, Activator.PLUGIN_ID, "Failed to create resolver instance", e ) );
        }
    }
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:21,代碼來源:ForwardingDanglingReferenceResolver.java

示例7: initialize

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
/**
 * Read information from extensions defined in plugin.xml files
 */
private void initialize() {
	if (isInitialized) {
		throw new IllegalStateException("may invoke method initialize() only once");
	}
	isInitialized = true;

	final IExtensionRegistry registry = RegistryFactory.getRegistry();
	if (registry != null) {
		final IExtension[] extensions = registry.getExtensionPoint(SUBGENERATORS_EXTENSIONS_POINT_ID)
				.getExtensions();
		for (IExtension extension : extensions) {
			final IConfigurationElement[] configElems = extension.getConfigurationElements();
			for (IConfigurationElement elem : configElems) {
				try {
					String fileExtensions = elem.getAttribute(ATT_FILE_EXTENSIONS);
					List<String> fileExtensionList = Splitter.on(',').trimResults().omitEmptyStrings()
							.splitToList(fileExtensions);
					ISubGenerator generator = (ISubGenerator) elem
							.createExecutableExtension(ATT_SUB_GENERATOR_CLASS);
					for (String fileExtension : fileExtensionList) {
						register(generator, fileExtension);
					}

				} catch (Exception ex) {
					LOGGER.error(
							"Error while reading extensions for extension point "
									+ SUBGENERATORS_EXTENSIONS_POINT_ID,
							ex);
				}
			}
		}
	}
}
 
開發者ID:eclipse,項目名稱:n4js,代碼行數:37,代碼來源:SubGeneratorRegistry.java

示例8: editSelection

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
/**
 * Edits a not run yet selection
 */
@SuppressWarnings({"squid:S3776", "squid:S135"})
protected void editSelection() {

	for (StatusBean bean : getSelection()) {
		if (bean.getStatus()!=org.eclipse.scanning.api.event.status.Status.SUBMITTED) {
			MessageDialog.openConfirm(getSite().getShell(), "Cannot Edit '"+bean.getName()+"'", "The run '"+bean.getName()+"' cannot be edited because it is not waiting to run.");
			continue;
		}

		try {
			final IConfigurationElement[] c = Platform.getExtensionRegistry().getConfigurationElementsFor(MODIFY_HANDLER_EXTENSION_POINT_ID);
			if (c!=null) {
				for (IConfigurationElement i : c) {
					final IModifyHandler handler = (IModifyHandler)i.createExecutableExtension("class");
					handler.init(service, createConsumerConfiguration());
					if (handler.isHandled(bean)) {
						boolean ok = handler.modify(bean);
						if (ok) continue;
					}
				}
			}
		} catch (Exception ne) {
			final String err = "Cannot modify "+bean.getRunDirectory()+" normally.\n\nPlease contact your support representative.";
			logger.error(err, ne);
			ErrorDialog.openError(getSite().getShell(), "Internal Error", err, new Status(IStatus.ERROR, Activator.PLUGIN_ID, ne.getMessage()));
			continue;
		}
		MessageDialog.openConfirm(getSite().getShell(), "Cannot Edit '"+bean.getName()+"'", "There are no editers registered for '"+bean.getName()+"'\n\nPlease contact your support representative.");
	}
}
 
開發者ID:eclipse,項目名稱:scanning,代碼行數:34,代碼來源:StatusQueueView.java

示例9: rerunSelection

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
@SuppressWarnings("squid:S3776")
protected void rerunSelection() {

	for (StatusBean bean : getSelection()) {
		try {
			final IConfigurationElement[] c = Platform.getExtensionRegistry().getConfigurationElementsFor(RERUN_HANDLER_EXTENSION_POINT_ID);
			if (c!=null) {
				for (IConfigurationElement i : c) {
					final IRerunHandler handler = (IRerunHandler)i.createExecutableExtension("class");
					handler.init(service, createConsumerConfiguration());
					if (handler.isHandled(bean)) {
						final StatusBean copy = bean.getClass().newInstance();
						copy.merge(bean);
						copy.setUniqueId(UUID.randomUUID().toString());
						copy.setStatus(org.eclipse.scanning.api.event.status.Status.SUBMITTED);
						copy.setSubmissionTime(System.currentTimeMillis());
						boolean ok = handler.run(copy);
						if (ok) continue;
					}
				}
			}
		} catch (Exception ne) {
			final String err = "Cannot rerun "+bean.getRunDirectory()+" normally.\n\nPlease contact your support representative.";
			logger.error(err, ne);
			ErrorDialog.openError(getSite().getShell(), "Internal Error", err, new Status(IStatus.ERROR, Activator.PLUGIN_ID, ne.getMessage()));
			continue;
		}
		// If we have not already handled this rerun, it is possible to call a generic one.
		rerun(bean);
	}
}
 
開發者ID:eclipse,項目名稱:scanning,代碼行數:32,代碼來源:StatusQueueView.java

示例10: createFactory

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
public static ViewElementFactory createFactory ( final EObject modelObject ) throws CoreException
{
    if ( modelObject == null )
    {
        return null;
    }

    final String requestedClass = modelObject.eClass ().getInstanceClassName ();

    for ( final IConfigurationElement ele : Platform.getExtensionRegistry ().getConfigurationElementsFor ( EXTP_VIEW_ELEMENT_FACTORY ) )
    {
        if ( !"factory".equals ( ele.getName () ) )
        {
            continue;
        }

        for ( final IConfigurationElement child : ele.getChildren ( "supports" ) )
        {
            final String modelClass = child.getAttribute ( "modelClass" );
            if ( modelClass == null || modelClass.isEmpty () )
            {
                continue;
            }

            if ( modelClass.equals ( requestedClass ) )
            {
                return (ViewElementFactory)ele.createExecutableExtension ( "class" );
            }
        }

    }
    return null;
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:34,代碼來源:Activator.java

示例11: createDetailView

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
private static DetailView createDetailView ( final String id, final IConfigurationElement ele, final Map<String, String> properties ) throws CoreException
{
    final Object o = ele.createExecutableExtension ( "class" ); //$NON-NLS-1$
    if ( o instanceof DetailView )
    {
        final DetailView view = (DetailView)o;
        return view;
    }
    else
    {
        logger.warn ( "View created object of type: " + o ); //$NON-NLS-1$
        return null;
    }
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:15,代碼來源:DetailViewManager.java

示例12: createProcessor

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
private NodeElementProcessor createProcessor ( final EObject element, final World world, final ApplicationNode applicationNode ) throws CoreException
{
    final EAnnotation an = element.eClass ().getEAnnotation ( "http://eclipse.org/SCADA/Configuration/World" );

    if ( an != null && Boolean.parseBoolean ( an.getDetails ().get ( "ignore" ) ) )
    {
        return new NodeElementProcessor () {

            @Override
            public void process ( final String phase, final IFolder baseDir, final IProgressMonitor monitor, final Map<String, String> properties ) throws Exception
            {
                // no-op
            }
        };
    }

    for ( final IConfigurationElement ele : Platform.getExtensionRegistry ().getConfigurationElementsFor ( Activator.EXTP_GENERATOR ) )
    {
        if ( !ele.getName ().equals ( ELE_NODE_ELEMENT_PROCESSOR ) )
        {
            continue;
        }
        if ( isMatch ( Activator.getDefault ().getBundle ().getBundleContext (), ele, element ) )
        {
            final NodeElementProcessorFactory factory = (NodeElementProcessorFactory)ele.createExecutableExtension ( "factoryClass" );
            return factory.createProcessor ( element, world, applicationNode );
        }
    }

    throw new IllegalStateException ( String.format ( "No processor found for element: %s", element ) );
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:32,代碼來源:WorldRunner.java

示例13: createFactories

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
protected static Map<String, DriverFactory> createFactories ()
{
    final Map<String, DriverFactory> result = new HashMap<String, DriverFactory> ();

    for ( final IConfigurationElement ele : Platform.getExtensionRegistry ().getConfigurationElementsFor ( EXTP_DRIVER ) )
    {
        if ( !ELE_DRIVER_FACTORY.equals ( ele.getName () ) )
        {
            continue;
        }
        final String typeId = ele.getAttribute ( "typeId" );

        logger.debug ( "Found driver factory for type: {}", typeId );

        try
        {
            final DriverFactory factory = (DriverFactory)ele.createExecutableExtension ( "factoryClass" );
            if ( typeId != null && factory != null )
            {
                result.put ( typeId, factory );
            }
        }
        catch ( final CoreException e )
        {
            getDefault ().getLog ().log ( e.getStatus () );
        }
    }

    return result;
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:31,代碼來源:Activator.java

示例14: loadCodeLensProvidersFromExtension

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
/**
 * Add the SourceMap language supports.
 */
private synchronized void loadCodeLensProvidersFromExtension(IConfigurationElement[] cf) {
	for (IConfigurationElement ce : cf) {
		try {
			ICodeLensControllerFactory factory = (ICodeLensControllerFactory) ce.createExecutableExtension("class");
			factories.add(factory);
		} catch (Throwable e) {
			CodeLensEditorPlugin.log(e);
		}
	}
}
 
開發者ID:angelozerr,項目名稱:codelens-eclipse,代碼行數:14,代碼來源:CodeLensControllerRegistry.java

示例15: runElement

import org.eclipse.core.runtime.IConfigurationElement; //導入方法依賴的package包/類
protected boolean runElement ( final EObject element, final DiagnosticChain diagnostics, final Map<Object, Object> context )
{
    if ( element == null )
    {
        return true;
    }

    if ( isCached ( element, context ) )
    {
        return true;
    }

    final String packageUri = element.eClass ().getEPackage ().getNsURI ();
    if ( packageUri == null )
    {
        return false;
    }

    boolean result = true;

    for ( final IConfigurationElement ele : Platform.getExtensionRegistry ().getConfigurationElementsFor ( "org.eclipse.scada.utils.ecore.validation.handler" ) )
    {
        if ( !ele.getName ().equals ( "validationContext" ) )
        {
            continue;
        }

        final String uri = ele.getAttribute ( "packageUri" );
        if ( !packageUri.equals ( uri ) )
        {
            continue;
        }

        final String contextId = ele.getAttribute ( "contextId" );

        for ( final IConfigurationElement child : ele.getChildren ( "validator" ) )
        {
            if ( !child.getName ().equals ( "validator" ) )
            {
                continue;
            }

            if ( !isTargetMatch ( element.getClass (), child ) )
            {
                continue;
            }

            try
            {
                final Object o = child.createExecutableExtension ( "class" );
                if ( o instanceof Validator )
                {
                    final Validator v = (Validator)o;
                    final ValidationContextImpl validationContext = new ValidationContextImpl ( contextId, element );
                    v.validate ( validationContext );
                    if ( !validationContext.apply ( diagnostics ) )
                    {
                        result = false;
                    }
                }
            }
            catch ( final CoreException e )
            {
                ValidationPlugin.getDefault ().getLog ().log ( e.getStatus () );
                throw new IllegalStateException ( e );
            }
        }
    }

    return result;
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:72,代碼來源:ValidationRunner.java


注:本文中的org.eclipse.core.runtime.IConfigurationElement.createExecutableExtension方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。