/* * Copyright PMEase (c) 2005 - 2010, * Date: Jan 16, 2010 11:58:35 PM * * All rights reserved. * * Revision: $Id$ */ package com.pmease.quickbuild.monitor.notifier; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.program.Program; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import com.pmease.quickbuild.monitor.cache.ColorCache; import com.pmease.quickbuild.monitor.cache.FontCache; import com.pmease.quickbuild.monitor.gui.TrayMonitor; public class BuildNotifier extends Notifier { private final BuildFragment build; public BuildNotifier(TrayMonitor trayMonitor, BuildFragment build) { super(trayMonitor, build.getNotifierTitle(), build.getNotifierMessage(), build.getNotificationType()); this.build = build; } @Override protected Control createMessageComponent(Composite inner) { StyledText text = new StyledText(inner, getLabelStyle()); String message = getMessage(); text.setText(message); StyleRange range = new StyleRange(); range.start = 0; range.length = message.length(); range.underline = true; range.foreground = ColorCache.getColor(195, 195, 195); Font f = text.getFont(); FontData fd = f.getFontData()[0]; fd.setStyle(SWT.BOLD); fd.height = 12; range.font = FontCache.getFont(fd); text.setStyleRange(range); text.setCursor(new Cursor(monitor.getDisplay(), SWT.CURSOR_HAND)); text.addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e) { Program.launch(monitor.settings.getHost() + build.getUrl()); } }); GridData data = new GridData(GridData.FILL_BOTH); data.verticalSpan = 1; data.horizontalSpan = 2; text.setLayoutData(data); return text; } @Override protected int getLabelStyle() { return SWT.WRAP | SWT.UNDERLINE_SINGLE; } }