package org.zend.php.zendserver.deployment.ui;
import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IStartup;
import org.eclipse.ui.forms.FormColors;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import org.zend.php.zendserver.deployment.core.DeploymentCore;
import org.zend.php.zendserver.deployment.ui.chrome.SocketCommandListener;
import org.zend.sdklib.internal.target.ZendTargetAutoDetect;
/**
* The activator class controls the plug-in life cycle
*/
public class Activator extends AbstractUIPlugin implements IStartup {
// The plug-in ID
public static final String PLUGIN_ID = "org.zend.php.zendserver.deployment.ui"; //$NON-NLS-1$
public static final String IMAGE_RUN_APPLICATION = "icons/obj16/run_exc.gif"; //$NON-NLS-1$
public static final String IMAGE_DEBUG_APPLICATION = "icons/obj16/debug_exc.gif"; //$NON-NLS-1$
public static final String IMAGE_RUN_TEST = "icons/obj16/test_application.gif"; //$NON-NLS-1$
public static final String IMAGE_EXPORT_APPLICATION = "icons/obj16/bundle_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_DESCRIPTOR_OVERVIEW = "icons/obj16/overview_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_DESCRIPTOR_PARAMETERS = "icons/sample.gif"; //$NON-NLS-1$
public static final String IMAGE_DESCRIPTOR_PREREQS = "icons/sample.gif"; //$NON-NLS-1$
public static final String IMAGE_DESCRIPTOR_REMOVAL = "icons/sample.gif"; //$NON-NLS-1$
public static final String IMAGE_DESCRIPTOR_VARIABLES = "icons/sample.gif"; //$NON-NLS-1$
public static final String IMAGE_PHP = "icons/obj16/dependency_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_PHP_EXTENSION = "icons/obj16/dependency_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_PHP_DIRECTIVE = "icons/obj16/dependency_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_ZENDSERVER = "icons/obj16/dependency_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_ZENDFRAMEWORK = "icons/obj16/dependency_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_ZENDSERVERCOMPONENT = "icons/obj16/dependency_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_LIBRARY = "icons/obj16/dependency_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_WIZBAN_DEP = "icons/wizban/newdep_wiz.png"; //$NON-NLS-1$
public static final String IMAGE_WIZ_SSH_TUNNELING = "icons/wizban/ssh_tunneling_wiz.png"; //$NON-NLS-1$
public static final String IMAGE_WIZ_DEPLOYMENT = "icons/wizban/deployment_wiz.png"; //$NON-NLS-1$
public static final String IMAGE_PARAMTYPE_PASSWORD = "icons/obj16/category_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_PARAMTYPE_STRING = "icons/obj16/category_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_PARAMTYPE_NUMBER = "icons/obj16/category_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_PARAMTYPE_CHOICE = "icons/obj16/category_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_PARAMTYPE_CHECKBOX = "icons/obj16/category_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_PARAMTYPE_HOSTNAME = "icons/obj16/category_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_PARAMTYPE_EMAIL = "icons/obj16/category_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_PARAMTYPE_UNKNOWN = "icons/obj16/category_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_DEPLOY_WIZARD = "icons/wizban/deploy_wiz.png"; //$NON-NLS-1$
public static final String IMAGE_EXPORT_WIZARD = "icons/wizban/export_wiz.png"; //$NON-NLS-1$
public static final String IMAGE_VARIABLE = "icons/obj16/category_obj.gif";; //$NON-NLS-1$
public static final String IMAGE_SCRIPT = "icons/obj16/script_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_SCRIPT_NOTEXISTS = "icons/obj16/script_dis_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_SCRIPT_TYPE = "icons/obj16/req_obj.gif"; //$NON-NLS-1$
public static final String IMAGE_DESCRIPTOR_HELP = "icons/obj16/help.gif"; //$NON-NLS-1$
public static final String IMAGE_TARGET = "icons/obj16/server.gif"; //$NON-NLS-1$
public static final String IMAGE_DETECT_TARGET = "icons/obj16/detect_target.gif"; //$NON-NLS-1$
public static final String IMAGE_ADD_TARGET = "icons/obj16/new_target.gif"; //$NON-NLS-1$
public static final String IMAGE_EDIT_TARGET = "icons/obj16/edit_target.gif"; //$NON-NLS-1$
public static final String IMAGE_REMOVE_TARGET = "icons/elcl16/rem_co.gif"; //$NON-NLS-1$
public static final String IMAGE_REMOVE_TARGET_DISABLED = "icons/dlcl16/rem_co.gif"; //$NON-NLS-1$
public static final String IMAGE_REFRESH = "icons/elcl16/refresh.gif"; //$NON-NLS-1$
public static final String IMAGE_APPLICATION = "icons/obj16/application.gif"; //$NON-NLS-1$
public static final String IMAGE_ZEND = "icons/obj64/zend.gif"; //$NON-NLS-1$
public static final String IMAGE_DETECT = "icons/obj64/detect.gif"; //$NON-NLS-1$
public static final String IMAGE_ZEND_SERVER_ICON = "icons/obj16/zend_server.png"; //$NON-NLS-1$
public static final String IMAGE_ZEND_SERVER_WIZ = "icons/wizban/zend_server_wiz.png"; //$NON-NLS-1$
public static final String IMAGE_PORT_FORWARDING_WIZ = "icons/wizban/port_forwarding_wiz.png"; //$NON-NLS-1$
// The shared instance
private static Activator plugin;
private FormColors formColors;
private SocketCommandListener socketCommand;
private IResourceChangeListener mappingChangeListener;
/**
* The constructor
*/
public Activator() {
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
* )
*/
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
DeploymentCore.getDefault().getSdk().isInstalled();
socketCommand = new SocketCommandListener();
socketCommand.start();
ZendTargetAutoDetect.CAN_OPEN_GUI_DIALOGS = true;
mappingChangeListener = new MappingChangeListener();
ResourcesPlugin.getWorkspace().addResourceChangeListener(
mappingChangeListener);
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
* )
*/
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
socketCommand.stop();
ResourcesPlugin.getWorkspace().removeResourceChangeListener(
mappingChangeListener);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static Activator getDefault() {
return plugin;
}
/**
* Returns an image descriptor for the image file at the given plug-in
* relative path
*
* @param path
* the path
* @return the image descriptor
*/
public static ImageDescriptor getImageDescriptor(String path) {
return imageDescriptorFromPlugin(PLUGIN_ID, path);
}
public FormColors getFormColors(Display display) {
if (formColors == null) {
formColors = new FormColors(display);
formColors.markShared();
}
return formColors;
}
public Image getImage(String path) {
Image image = getImageRegistry().get(path);
if (image == null) {
getImageRegistry().put(path, getImageDescriptor(path));
image = getImageRegistry().get(path);
}
return image;
}
public Image createWorkspaceImage(String path, int height) {
Image image = null;
ImageDescriptor id = ImageDescriptor.createFromFile(null, path);
if (id != null) {
int origH = id.getImageData().height;
int origW = id.getImageData().width;
int width = origW * height / origH;
Image tmpImage = id.createImage();
image = resize(tmpImage, width, height);
}
return image;
}
private Image resize(Image image, int width, int height) {
Image scaled = new Image(Display.getDefault(), width, height);
GC gc = new GC(scaled);
gc.setAntialias(SWT.ON);
gc.setInterpolation(SWT.HIGH);
gc.drawImage(image, 0, 0, image.getBounds().width,
image.getBounds().height, 0, 0, width, height);
gc.dispose();
image.dispose(); // don't forget about me!
return scaled;
}
public static void logInfo(String message) {
getDefault().getLog().log(new Status(IStatus.INFO, PLUGIN_ID, message, null));
}
public static void logError(String message) {
logError(message, null);
}
public static void logError(String message, Throwable e) {
getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, message, e));
}
public static void log(Throwable e) {
getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, e.getMessage(), e));
}
public void earlyStartup() {
// empty. all the startup logic that we want to run is in Activator.start method.
}
}