⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pluginmanager.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
package net.sourceforge.ganttproject.plugins;import java.lang.reflect.Array;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import net.sourceforge.ganttproject.chart.Chart;import net.sourceforge.ganttproject.export.Exporter;import org.eclipse.core.runtime.CoreException;import org.eclipse.core.runtime.IConfigurationElement;import org.eclipse.core.runtime.IExtensionRegistry;import org.eclipse.core.runtime.Platform;/** * Very basic Plugin Manager * @author bbaranne * */public class PluginManager {    private static final String EXTENSION_POINT_ID_CHART = "net.sourceforge.ganttproject.chart";    private static final String EXTENSION_POINT_ID_EXPORTER = "net.sourceforge.ganttproject.exporter";    private Chart[] myCharts;    private Exporter[] myExporters;    public Object[] getExtensions(Class extensionPointInterface) {        String extensionPointID = extensionPointInterface.getName();        return getExtensions(extensionPointID, extensionPointInterface);    }        public Object[] getExtensions(String extensionPointID, Class extensionPointInterface) {        IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();        IConfigurationElement[] configElements = extensionRegistry                .getConfigurationElementsFor(extensionPointID);                ArrayList extensions = new ArrayList();        for (int i = 0; i < configElements.length; i++) {            try {                Object nextExtension = configElements[i]                        .createExecutableExtension("class");                assert nextExtension!=null && extensionPointInterface.isAssignableFrom(nextExtension.getClass());                extensions.add(nextExtension);            } catch (CoreException e) {                e.printStackTrace();            }        }        return extensions.toArray((Object[])Array.newInstance(extensionPointInterface, 0));            }        public Chart[] getCharts() {        if (myCharts == null) {            myCharts = (Chart[]) getExtensions(EXTENSION_POINT_ID_CHART, Chart.class);        }        return myCharts;    }    public Exporter[] getExporters() {        if (myExporters == null) {            myExporters = (Exporter[]) getExtensions(EXTENSION_POINT_ID_EXPORTER, Exporter.class);        }        return myExporters;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -