/* * Copyright (c) 2004-2011 Marco Maccaferri and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Marco Maccaferri - initial API and implementation */ package org.eclipsetrader.ui.internal.trading; import org.eclipse.osgi.util.NLS; import org.eclipsetrader.core.trading.AlertEvent; import org.eclipsetrader.core.trading.IAlert; import org.eclipsetrader.core.trading.IAlertListener; import org.eclipsetrader.ui.INotification; import org.eclipsetrader.ui.INotificationService; import org.eclipsetrader.ui.internal.UIActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; public class AlertNotificationListener implements IAlertListener { public AlertNotificationListener() { } /* (non-Javadoc) * @see org.eclipsetrader.core.trading.IAlertListener#alertTriggered(org.eclipsetrader.core.trading.AlertEvent) */ @Override public void alertTriggered(AlertEvent event) { IAlert[] alerts = event.getTriggeredAlerts(); if (alerts.length == 0) { return; } AlertNotification notification = new AlertNotification(); notification.setSecurity(event.getInstrument()); String description = alerts[0].getDescription(); if (alerts.length > 1) { description += NLS.bind(Messages.AlertNotificationListener_MoreAlerts, new Object[] { String.valueOf(alerts.length - 1) }); } notification.setDescription(description); BundleContext context = UIActivator.getDefault().getBundle().getBundleContext(); ServiceReference serviceReference = context.getServiceReference(INotificationService.class.getName()); if (serviceReference != null) { INotificationService notificationService = (INotificationService) context.getService(serviceReference); notificationService.popupNotification(new INotification[] { notification }); } context.ungetService(serviceReference); } }