package org.zend.php.zendserver.deployment.ui.notifications; import org.eclipse.jface.action.LegacyActionTools; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.preference.JFacePreferences; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.mylyn.commons.workbench.forms.ScalingHyperlink; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.forms.events.HyperlinkAdapter; import org.eclipse.ui.forms.events.HyperlinkEvent; import org.zend.php.notifications.core.AbstractExtendedUiNotification; import org.zend.php.server.ui.IHelpContextIds; import org.zend.php.zendserver.deployment.ui.Activator; public class AddingLocalZendServerNotification extends AbstractExtendedUiNotification { public enum NotificationTypes { INFORMATION, WARNING, ERROR } public static String ID = "org.zend.php.zendserver.deployment.ui.addingLocalZendServer"; //$NON-NLS-1$ private String label; private String description; private NotificationTypes type; public AddingLocalZendServerNotification(NotificationTypes type) { super(ID); this.type = type; } @Override public void createBody(Composite parent, boolean isSingle) { super.createBody(parent, isSingle); ScalingHyperlink itemLink = new ScalingHyperlink(parent, SWT.BEGINNING | SWT.NO_FOCUS); GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(itemLink); itemLink.setForeground(JFaceResources.getColorRegistry().get(JFacePreferences.HYPERLINK_COLOR)); itemLink.registerMouseTrackListener(); itemLink.setText(LegacyActionTools.escapeMnemonics(Messages.AddingLocalZendServerNotification_MoreAboutZendServer_LinkText)); itemLink.setBackground(parent.getBackground()); itemLink.setHref(IHelpContextIds.ZEND_SERVER); itemLink.addHyperlinkListener(new HyperlinkAdapter() { @Override public void linkActivated(HyperlinkEvent e) { org.eclipse.swt.program.Program.launch((String) e.getHref()); } }); } @Override public Image getNotificationKindImage() { switch(this.type) { case WARNING: return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK); case ERROR: return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK); } return Activator.getDefault().getImage(Activator.IMAGE_ZEND_SERVER_ICON); } @Override public String getDescription() { if(description != null) return description; return ""; //$NON-NLS-1$ } public void setDescription(String description) { this.description = description; } @Override public String getLabel() { if(label != null) return label; return ""; //$NON-NLS-1$ } public void setLabel(String label) { this.label = label; } }