public static List<ContextComputationStrategy> readContextComputationStrategies() {
    List<ContextComputationStrategy> strategies = new ArrayList<ContextComputationStrategy>();

    IExtensionPoint extensionPoint =
        Platform.getExtensionRegistry().getExtensionPoint(STRATEGIES_EXTENSION_POINT_ID);
    IExtension[] extensions = extensionPoint.getExtensions();
    for (IExtension extension : extensions) {
      IConfigurationElement[] configurationElements = extension.getConfigurationElements();
      for (IConfigurationElement element : configurationElements) {
        if (element.getName().equals(CONTEXT_COMPUTATION_STRATEGY)) {
          try {
            ContextComputationStrategy strategy =
                (ContextComputationStrategy) element.createExecutableExtension(ATTRIBUTE_CLASS);
            strategies.add(strategy);
          } catch (Throwable t) {
            StatusHandler.log(
                new Status(
                    IStatus.ERROR,
                    ContextCorePlugin.ID_PLUGIN,
                    NLS.bind(
                        "Cannot instantiate {0} from bundle {1}: {2}", //$NON-NLS-1$
                        new Object[] {
                          element.getAttribute(ATTRIBUTE_CLASS),
                          extension.getContributor().getName(),
                          t.getMessage()
                        }),
                    t));
          }
        }
      }
    }
    return strategies;
  }
示例#2
0
 void processingExtensionPointByHand() {
   String xpid = "net.refractions.udig.project.ui.tool";
   IExtensionRegistry registry = Platform.getExtensionRegistry();
   IExtensionPoint extensionPoint = registry.getExtensionPoint(xpid);
   if (extensionPoint == null) {
     throw new NullPointerException("Could not find extensionPoint:" + xpid);
   }
   for (IExtension extension : extensionPoint.getExtensions()) {
     for (IConfigurationElement element : extension.getConfigurationElements()) {
       String name = element.getName();
       System.out.println(name);
       if ("modalTool".equals(name)) {
         try {
           ModalTool tool = (ModalTool) element.createExecutableExtension("class");
           System.out.println(tool);
         } catch (CoreException e) {
           // Perhaps an error in the constructor?
           String message = "Could not create Modal tool " + element.getAttribute("class");
           Status status =
               new Status(IStatus.ERROR, extension.getContributor().getName(), message, e);
           Activator.getDefault().getLog().log(status);
         }
       }
     }
   }
 }
 private static void dumpExtensions(final IExtension[] extensions, final int depth) {
   for (final IExtension extension : extensions) {
     System.out.println(
         indent(0)
             + "uid="
             + extension.getUniqueIdentifier()
             + " bundle=" //$NON-NLS-1$ //$NON-NLS-2$
             + extension.getContributor().getName()
             + " "); //$NON-NLS-1$
     dumpConfigurationElements(1, depth, extension.getConfigurationElements());
   }
 }
 public Image getImage() {
   if (pageImage == null) {
     String imageName = fConfigElement.getAttribute(ATT_ICON);
     if (imageName != null) {
       IExtension extension = fConfigElement.getDeclaringExtension();
       String plugin = extension.getContributor().getName();
       Image image = getImageFromPlugin(plugin, imageName);
       pageImage = image;
     }
   }
   return pageImage;
 }
 private static void getExtensionsPaths(
     final Set<String> result, final String path, final IExtension[] extensions) {
   for (final IExtension extension : extensions) {
     final String subPath =
         path
             + "uid="
             + extension.getUniqueIdentifier()
             + " bundle=" //$NON-NLS-1$ //$NON-NLS-2$
             + extension.getContributor().getName()
             + " "; //$NON-NLS-1$
     getConfigurationElementsPaths(result, subPath, extension.getConfigurationElements());
   }
 }
 /**
  * Process extension.
  *
  * @param extension the extension
  * @return the collection
  */
 private Collection<ModelTemplateDescription> processExtension(IExtension extension) {
   List<ModelTemplateDescription> templates = new ArrayList<ModelTemplateDescription>();
   for (IConfigurationElement configElement : extension.getConfigurationElements()) {
     ModelTemplateDescription template =
         new ModelTemplateDescription(
             configElement.getAttribute(ATTRIBUTE_NAME),
             extension.getContributor().getName(),
             configElement.getAttribute(ATTRIBUTE_UML_FILE),
             configElement.getAttribute(ATTRIBUTE_NOTATION_FILE),
             configElement.getAttribute(ATTRIBUTE_DI_FILE));
     template.setLanguage(configElement.getAttribute(ATTRIBUTE_LANGUAGE));
     templates.add(template);
   }
   return templates;
 }
  /**
   * return the list of EPackage declared in the given list of bundles.
   *
   * @param bundles a collection of bundles.
   * @return the list of EPackage declarations made through the plugin.xml of those bundles.
   */
  protected Collection<EPackageLoadingCallback.EPackageDeclarationSource>
      getEPackagesDeclaredInBundles(Collection<String> bundles) {
    Collection<EPackageLoadingCallback.EPackageDeclarationSource> result = Lists.newArrayList();
    if (EMFPlugin.IS_ECLIPSE_RUNNING) {
      final IExtensionRegistry reg = Platform.getExtensionRegistry();
      Multimap<String, EPackageDeclaration> contributions = HashMultimap.create();
      final IExtensionPoint ep = reg.getExtensionPoint(EMF_GENERATED_PACKAGE_EXTENSIONPOINT);
      for (final IExtension ext : ep.getExtensions()) {
        final IConfigurationElement[] ce = ext.getConfigurationElements();
        String contributorName = ext.getContributor().getName();
        if (bundles.contains(contributorName)) {
          for (IConfigurationElement element : ce) {

            String nsURI = element.getAttribute("uri"); // $NON-NLS-1$
            String className = element.getAttribute("class"); // $NON-NLS-1$
            String genModel = element.getAttribute("genModel"); // $NON-NLS-1$

            if (nsURI != null && className != null) {
              contributions.put(
                  contributorName, new EPackageDeclaration(nsURI, className, genModel));
            } else {
              DslCommonPlugin.getDefault()
                  .warning(
                      MessageFormat.format(
                          Messages.BundleClassLoading_ignoredEPackageDeclaration, contributorName),
                      new IllegalArgumentException());
            }
          }
        }
      }

      for (String contributor : contributions.keySet()) {
        Collection<EPackageDeclaration> declarations = contributions.get(contributor);
        if (declarations.size() > 0) {
          result.add(
              new EPackageLoadingCallback.EPackageDeclarationSource(
                  contributor, declarations, true));
        }
      }
    }
    return result;
  }
示例#8
0
  /**
   * Acede aos pontos de extensão que implementam a interface SearchProvider e adiciona-os a uma
   * lista
   */
  private void getProviders() {
    IExtensionRegistry reg = Platform.getExtensionRegistry();
    IExtensionPoint extensionPoint = reg.getExtensionPoint("pa.iscde.filtersearch.SearchProvider");
    IExtension[] extensions = extensionPoint.getExtensions();

    SearchProvider p = null;
    String iconName = null;

    for (IExtension ext : extensions) {
      for (IConfigurationElement configurationElement : ext.getConfigurationElements()) {
        try {
          p = (SearchProvider) configurationElement.createExecutableExtension("SearchProvider");
          iconName = configurationElement.getAttribute("iconName");
        } catch (CoreException e) {
          e.printStackTrace();
        }
        providerAndImageMap.put(p, new ExternalImage(iconName, ext.getContributor().getName()));
      }
    }
  }
 public static IFormFieldExtension[] getFormFieldExtensions() {
   ArrayList<IFormFieldExtension> formFieldExtensionList = new ArrayList<IFormFieldExtension>();
   IExtensionRegistry reg = Platform.getExtensionRegistry();
   IExtensionPoint xp = reg.getExtensionPoint(Activator.PLUGIN_ID, "formfields");
   IExtension[] extensions = xp.getExtensions();
   for (IExtension extension : extensions) {
     IConfigurationElement[] elements = extension.getConfigurationElements();
     for (IConfigurationElement element : elements) {
       String name = element.getAttribute("name");
       boolean active = "true".equalsIgnoreCase(element.getAttribute("active"));
       FormFieldExtension formFieldExt = new FormFieldExtension(name);
       formFieldExt.setContibuterBundleId(extension.getContributor().getName());
       formFieldExt.setActive(active);
       formFieldExt.setScope(getScopePriority(element.getAttribute("scope")));
       formFieldExt.setModelClassName(element.getAttribute("modelClass"));
       formFieldExt.setFactoryClassName(getClassName(element.getChildren("factory"), "class"));
       formFieldExt.setUiClassName(getClassName(element.getChildren("uiClass"), "class"));
       formFieldExtensionList.add(formFieldExt);
     }
   }
   return formFieldExtensionList.toArray(new IFormFieldExtension[formFieldExtensionList.size()]);
 }
  UIExtensionManifest(IExtension dataSourceExtn) throws OdaException {
    // first process the dataSourceUI element
    IConfigurationElement dataSourceElement =
        UIManifestExplorer.getNamedElement(dataSourceExtn, DATA_SOURCE_ELEMENT_NAME);
    assert (dataSourceElement != null);

    m_namespace = dataSourceExtn.getContributor().getName();

    // first cache the data source element's attributes
    m_dataSourceElementId = dataSourceElement.getAttribute("id"); // $NON-NLS-1$
    assert (m_dataSourceElementId != null && m_dataSourceElementId.length() > 0);

    // newDataSourceWizard element associated with dataSourceUI
    IConfigurationElement[] newWizardElements =
        dataSourceElement.getChildren(DATA_SOURCE_WIZARD_ELEMENT_NAME);
    if (newWizardElements.length < 1) // expects one element
    throw new OdaException(
          Messages.bind(Messages.manifest_missingAttributeValue, DATA_SOURCE_WIZARD_ELEMENT_NAME));
    m_dataSourceWizardInfo = new DataSourceWizardInfo(newWizardElements[0]);

    // data set UI definition elements in the same extension
    m_dataSetUIElements = getDataSetUIElements(dataSourceExtn);
  }
  public void initialize() {

    //
    if (_isInitalized) {
      return;
    }

    // set initialized
    _isInitalized = true;

    //
    _extensionInstances = new LinkedList<T>();
    _extensionBundleNamespaces = new LinkedList<String>();

    // get the extension registry
    IExtensionRegistry registry = RegistryFactory.getRegistry();

    // get the extension points
    IExtensionPoint extensionPoint = registry.getExtensionPoint(_extensionPointId);

    // get the extension tracker
    _tracker = new ExtensionTracker(registry);

    //
    for (IExtension extension : extensionPoint.getExtensions()) {

      //
      _extensionBundleNamespaces.add(extension.getContributor().getName());

      //
      addExtension(_tracker, extension);
    }

    // register IExtensionChangeHandler
    _tracker.registerHandler(this, ExtensionTracker.createExtensionPointFilter(extensionPoint));
  }