/* (non-Javadoc)
   * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
   */
  public void selectionChanged(IAction action, ISelection selection) {
    if (defaultText == null) defaultText = action.getText();

    security = null;
    if (selection instanceof SecuritySelection) {
      security = ((SecuritySelection) selection).getSecurity();
      action.setText(defaultText + " " + security.getDescription()); // $NON-NLS-1$
    } else action.setText(defaultText);
    action.setEnabled(this.security != null);
  }
 /* (non-Javadoc)
  * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
  */
 public void run(IAction action) {
   if (security != null) {
     IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
     try {
       page.showView(
           ChartView.VIEW_ID, String.valueOf(security.getId()), IWorkbenchPage.VIEW_ACTIVATE);
     } catch (PartInitException e) {
       CorePlugin.logException(e);
     }
   }
 }
 private void updateDisplay() {
   Security security = watchlistItem.getSecurity();
   setName(security.getDescription());
   Quote quote = security.getQuote();
   if (quote != null) {
     double last =
         CurrencyConverter.getInstance()
             .convert(
                 quote.getLast(),
                 security.getCurrency(),
                 watchlistItem.getParent().getCurrency());
     double close =
         CurrencyConverter.getInstance()
             .convert(
                 security.getClose(),
                 security.getCurrency(),
                 watchlistItem.getParent().getCurrency());
     setValue(numberFormatter.format(last));
     if (security.getClose() != null) {
       double change = last - close;
       double percentage = change / close * 100;
       String prefix = "";
       if (change > 0) prefix = "+";
       setChange(
           prefix
               + numberFormatter.format(change)
               + " ("
               + prefix
               + percentageFormatter.format(percentage)
               + "%)");
     }
     if (quote.getDate() != null) setTime(formatter.format(quote.getDate()));
     if (lastValue != null) {
       if (quote.getLast() > lastValue.doubleValue()) setImage(up);
       else if (quote.getLast() < lastValue.doubleValue()) setImage(down);
       else setImage(equal);
     }
     lastValue = new Double(quote.getLast());
   }
   getParent().layout(true, true);
 }