blob: eac3c87860461cf5649106741adb5b5064483341 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.uima.taeconfigurator;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPluginDescriptor;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.forms.FormColors;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
/**
* The main plugin class to be used in the desktop.
*/
/*
* Plugin not yet converted to OSGi Bundle (3.0 design) - therefore will require the compatibility
* interface.
*
* The descriptor editor is a Multi-page editor, and implements the Model View Controller pattern
* (MVC). Model: Maintain data, basic logic plus one or more data sources View: Display all or a
* portion of the data. Implements the GUI that displays information about the model to the user
* Controller: Handle events that affect the model or view. The flow-control mechanism means by
* which the user interacts with the application
*
* View: in packages ...editors, editors.ui, and editors.ui.dialogs Observer links: View updates
* from model when update() is called on the page that is showing. This happens when which page is
* showing changes, or when the model changes.
*
*
* Life Cycle: On first activation - does almost nothing. Anything that could be done here is done
* lazily, on first use/need. On shutdown: shutdown call not done (it's deprecated.) Instead, we use
* the stop method. It releases SWT resources.
*/
public class TAEConfiguratorPlugin extends AbstractUIPlugin {
// no longer include support for < 3.1
public static final boolean is30version = false;
/*
public static final int eclipseVersionMajor;
public static final int eclipseVersionMinor;
static {
Bundle bundle = Platform.getBundle("org.eclipse.platform");
String versionString = (String) bundle.getHeaders().get(
org.osgi.framework.Constants.BUNDLE_VERSION);
PluginVersionIdentifier version = new PluginVersionIdentifier(versionString);
eclipseVersionMajor = version.getMajorComponent();
eclipseVersionMinor = version.getMinorComponent();
is30version = eclipseVersionMajor == 3 && eclipseVersionMinor == 0;
}
*/
// The shared instance.
private static TAEConfiguratorPlugin plugin;
// Resource bundle.
private ResourceBundle resourceBundle;
private static FormColors formColors;
private static ImageRegistry imageRegistry = new ImageRegistry();
public final static String IMAGE_ANNOTATOR = "annotator.gif";
public final static String IMAGE_BIG_AE = "big_ae.gif";
public final static String IMAGE_BIG_T_S = "big_t_s.gif";
public final static String IMAGE_BLANK = "blank.gif";
public final static String IMAGE_COMMON = "common.gif";
public final static String IMAGE_EDITOR = "editor.gif";
public final static String IMAGE_FORM_BANNER = "form_banner.gif";
public final static String IMAGE_GELB = "gelb.gif";
public final static String IMAGE_GROUP = "group.gif";
public final static String IMAGE_PARAMETER = "parameter.gif";
public final static String IMAGE_T_S = "t_s.gif";
public final static String IMAGE_TH_HORIZONTAL = "th_horizontal.gif";
public final static String IMAGE_TH_VERTICAL = "th_vertical.gif";
public final static String IMAGE_MREFOK = "arrows.gif";
public final static String IMAGE_NOMREF = "one_arrow.gif";
private static URL installURL = null;
public static String pluginId;
/**
* The constructor.
*/
public TAEConfiguratorPlugin(IPluginDescriptor descriptor) {
super(descriptor);
plugin = this;
pluginId = descriptor.getUniqueIdentifier();
try {
resourceBundle = ResourceBundle.getBundle("org.apache.uima.taeconfigurator.taeconfigurator");
} catch (MissingResourceException x) {
resourceBundle = null;
}
imageRegistry.put(IMAGE_ANNOTATOR, getImageDescriptor("annotator.gif"));
imageRegistry.put(IMAGE_BIG_AE, getImageDescriptor("big_ae.gif"));
imageRegistry.put(IMAGE_BIG_T_S, getImageDescriptor("big_t_s.gif"));
imageRegistry.put(IMAGE_BLANK, getImageDescriptor("blank.gif"));
imageRegistry.put(IMAGE_COMMON, getImageDescriptor("common.gif"));
imageRegistry.put(IMAGE_EDITOR, getImageDescriptor("editor.gif"));
imageRegistry.put(IMAGE_FORM_BANNER, getImageDescriptor("form_banner.gif"));
imageRegistry.put(IMAGE_GELB, getImageDescriptor("gelb.gif"));
imageRegistry.put(IMAGE_GROUP, getImageDescriptor("group.gif"));
imageRegistry.put(IMAGE_PARAMETER, getImageDescriptor("parameter.gif"));
imageRegistry.put(IMAGE_T_S, getImageDescriptor("t_s.gif"));
imageRegistry.put(IMAGE_TH_HORIZONTAL, getImageDescriptor("th_horizontal.gif"));
imageRegistry.put(IMAGE_TH_VERTICAL, getImageDescriptor("th_vertical.gif"));
imageRegistry.put(IMAGE_MREFOK, getImageDescriptor("arrows.gif"));
imageRegistry.put(IMAGE_NOMREF, getImageDescriptor("one_arrow.gif"));
}
/**
* Returns the shared instance.
*/
public static TAEConfiguratorPlugin getDefault() {
return plugin;
}
/**
* Returns the workspace instance.
*/
public static IWorkspace getWorkspace() {
return ResourcesPlugin.getWorkspace();
}
/**
* Returns the string from the plugin's resource bundle, or 'key' if not found.
*/
public static String getResourceString(String key) {
ResourceBundle bundle = TAEConfiguratorPlugin.getDefault().getResourceBundle();
try {
return bundle.getString(key);
} catch (MissingResourceException e) {
return key;
}
}
/**
* called when the Eclipse environment is shut down
*/
public void stop(BundleContext context) throws Exception {
try {
if (null != formColors)
formColors.dispose();
} finally {
formColors = null;
super.stop(context);
}
}
/**
* On first call, gets a formColors instance; on subsequent calls, returns that instance.
*
* @param display
* @return
*/
public FormColors getFormColors(Display display) {
if (null == formColors) {
FormColors tempToAvoidSyncIssues = new FormColors(display);
tempToAvoidSyncIssues.markShared(); // keep it from being disposed early
formColors = tempToAvoidSyncIssues;
}
return formColors;
}
/**
* Returns the plugin's resource bundle,
*/
public ResourceBundle getResourceBundle() {
return resourceBundle;
}
public static Image getImage(String imageFile) {
return imageRegistry.get(imageFile);
}
public static ImageDescriptor getImageDescriptor(String imageFile) {
String iconPath = "icons/";
try {
if (null == installURL)
installURL = getDefault().getDescriptor().getInstallURL();
URL url = new URL(installURL, iconPath + imageFile);
return ImageDescriptor.createFromURL(url);
} catch (MalformedURLException exc) {
return ImageDescriptor.getMissingImageDescriptor();
}
}
}