/**
  * Reset the image rollover icon as enabled/disabled.
  *
  * @param enabled, the status to draw the image rollover icon for.
  */
 public void updateImageRollover(boolean enabled) {
   if (enabled) {
     pbImageRollover.setIcon(UIImages.get(IMAGE_ROLLOVER_ICON));
   } else {
     pbImageRollover.setIcon(UIImages.get(IMAGE_ROLLOVEROFF_ICON));
   }
 }
 /** Enalbe all the view history related toolbar icons. */
 public void enableHistoryButtons() {
   pbBack.setEnabled(history.canGoBack());
   pbShowBackHistory.setEnabled(history.canGoBack());
   pbForward.setEnabled(history.canGoForward());
   pbShowForwardHistory.setEnabled(history.canGoForward());
   tbrToolBar.repaint();
 }
  /** Updates the menu when a new database project is opened. */
  public void onDatabaseOpen() {

    if (pbOpen != null) pbOpen.setEnabled(false);
    if (pbClose != null) pbClose.setEnabled(true);
    if (pbHelp != null) pbHelp.setEnabled(true);
    if (pbSearch != null) pbSearch.setEnabled(true);
    if (pbImageRollover != null) pbImageRollover.setEnabled(true);
  }
  /** Display the forwards window history in a menu. */
  private void onShowForwardHistory() {

    UIScrollableMenu hist =
        new UIScrollableMenu(
            LanguageProperties.getString(
                LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.forwardHistory"),
            0); //$NON-NLS-1$

    Vector views = history.getForwardHistory();
    int currentIndex = history.getCurrentPosition();

    int count = views.size();
    if (count == 0) return;

    JMenuItem item = null;
    for (int i = 0; i < count; i++) {
      View view = (View) views.elementAt(i);
      item = new JMenuItem(view.getLabel());

      final View fview = view;
      final int fi = (currentIndex + 1) + i;
      item.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent event) {
              if (history.goToHistoryItem(fi)) oParent.addViewToDesktop(fview, fview.getLabel());
            }
          });

      hist.add(item);
    }

    JPopupMenu pop = hist.getPopupMenu();
    pop.pack();

    Point loc = pbShowForwardHistory.getLocation();
    Dimension size = pbShowForwardHistory.getSize();
    Dimension popsize = hist.getPreferredSize();
    Point finalP = SwingUtilities.convertPoint(tbrToolBar.getParent(), loc, oParent.getDesktop());

    int x = 0;
    int y = 0;
    if (oManager.getLeftToolBarController().containsBar(tbrToolBar)) {
      x = finalP.x + size.width;
      y = finalP.y;
    } else if (oManager.getRightToolBarController().containsBar(tbrToolBar)) {
      x = finalP.x - popsize.width;
      y = finalP.y;
    } else if (oManager.getTopToolBarController().containsBar(tbrToolBar)) {
      x = finalP.x;
      y = finalP.y + size.width;
    } else if (oManager.getBottomToolBarController().containsBar(tbrToolBar)) {
      x = finalP.x;
      y = finalP.y - popsize.height;
    }

    hist.setPopupMenuVisible(true);
    pop.show(oParent.getDesktop(), x, y);
  }
  /**
   * Refreshes the undo/redo icons with the last action performed.
   *
   * @param oUndoManager, the manager to use to check for undo/redo possibilities.
   */
  public void refreshUndoRedo(UndoManager oUndoManager) {

    // refresh undo
    pbUndo.setToolTipText(oUndoManager.getUndoPresentationName());
    pbUndo.setEnabled(oUndoManager.canUndo());

    // refresh redo
    pbRedo.setToolTipText(oUndoManager.getRedoPresentationName());
    pbRedo.setEnabled(oUndoManager.canRedo());
  }
  /** Updates the menu when the current database project is closed. */
  public void onDatabaseClose() {
    if (pbUndo != null) pbUndo.setEnabled(false);
    if (pbRedo != null) pbRedo.setEnabled(false);
    if (pbOpen != null) pbOpen.setEnabled(true);
    if (pbClose != null) pbClose.setEnabled(false);
    if (pbHelp != null) pbHelp.setEnabled(false);
    if (pbSearch != null) pbSearch.setEnabled(false);
    if (pbImageRollover != null) pbImageRollover.setEnabled(false);

    history.clear();
  }
  /**
   * Set the enabled status of cut cop and delete.
   *
   * @param selected, true to enable, false to disable.
   */
  public void setNodeOrLinkSelected(boolean selected) {

    if (pbCopy != null) pbCopy.setEnabled(selected);
    if (pbCut != null) pbCut.setEnabled(selected);
    if (pbDelete != null) pbDelete.setEnabled(selected);
  }
 /**
  * Enable/disable file open button.
  *
  * @param enabled, true to enalbe, false to disable.
  */
 public void setFileOpenEnablement(boolean enabled) {
   if (pbOpen != null) {
     pbOpen.setEnabled(enabled);
   }
 }
 /**
  * Enable/disable paste button.
  *
  * @param enabled, true to enalbe, false to disable.
  */
 public void setPasteEnabled(boolean enabled) {
   pbPaste.setEnabled(enabled);
 }
  /** Update the look and feel of the toolbar. */
  public void updateLAF() {

    if (pbOpen != null) {
      pbOpen.setIcon(UIImages.get(OPEN_ICON));
    }
    if (pbClose != null) {
      pbClose.setIcon(UIImages.get(CLOSE_ICON));
    }
    pbCut.setIcon(UIImages.get(CUT_ICON));
    pbCopy.setIcon(UIImages.get(COPY_ICON));
    pbPaste.setIcon(UIImages.get(PASTE_ICON));
    pbDelete.setIcon(UIImages.get(DELETE_ICON));
    pbUndo.setIcon(UIImages.get(UNDO_ICON));
    pbRedo.setIcon(UIImages.get(REDO_ICON));
    pbShowBackHistory.setIcon(UIImages.get(PREVIOUS_ICON));
    pbBack.setIcon(UIImages.get(BACK_ICON));
    pbForward.setIcon(UIImages.get(FORWARD_ICON));
    pbShowForwardHistory.setIcon(UIImages.get(NEXT_ICON));
    pbSearch.setIcon(UIImages.get(SEARCH_ICON));
    pbHelp.setIcon(UIImages.get(HELP_ICON));

    if (FormatProperties.imageRollover) {
      pbImageRollover.setIcon(UIImages.get(IMAGE_ROLLOVER_ICON));
    } else {
      pbImageRollover.setIcon(UIImages.get(IMAGE_ROLLOVEROFF_ICON));
    }

    if (tbrToolBar != null) SwingUtilities.updateComponentTreeUI(tbrToolBar);
  }
  /**
   * Creates and return the main toolbar (for example, cut/copy/paste/open/close etc.).
   *
   * @return UIToolBar, the toolbar with all the main options.
   */
  private UIToolBar createToolBarItems() {

    if (!bSimpleInterface) {
      pbOpen =
          tbrToolBar.createToolBarButton(
              LanguageProperties.getString(
                  LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.open"),
              UIImages.get(OPEN_ICON)); // $NON-NLS-1$
      pbOpen.addActionListener(this);
      pbOpen.setEnabled(false);
      tbrToolBar.add(pbOpen);
      CSH.setHelpIDString(pbOpen, "toolbars.main"); // $NON-NLS-1$

      pbClose =
          tbrToolBar.createToolBarButton(
              LanguageProperties.getString(
                  LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.close"),
              UIImages.get(CLOSE_ICON)); // $NON-NLS-1$
      pbClose.addActionListener(this);
      pbClose.setEnabled(true);
      tbrToolBar.add(pbClose);
      CSH.setHelpIDString(pbClose, "toolbars.main"); // $NON-NLS-1$

      tbrToolBar.addSeparator();
    }

    pbCut =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.cut"),
            UIImages.get(CUT_ICON)); // $NON-NLS-1$
    pbCut.addActionListener(this);
    pbCut.setEnabled(false);
    tbrToolBar.add(pbCut);
    CSH.setHelpIDString(pbCut, "toolbars.main"); // $NON-NLS-1$

    pbCopy =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.copy"),
            UIImages.get(COPY_ICON)); // $NON-NLS-1$
    pbCopy.addActionListener(this);
    pbCopy.setEnabled(false);
    tbrToolBar.add(pbCopy);
    CSH.setHelpIDString(pbCopy, "toolbars.main"); // $NON-NLS-1$

    pbPaste =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.paste"),
            UIImages.get(PASTE_ICON)); // $NON-NLS-1$
    pbPaste.addActionListener(this);
    pbPaste.setEnabled(false);
    tbrToolBar.add(pbPaste);
    CSH.setHelpIDString(pbPaste, "toolbars.main"); // $NON-NLS-1$

    pbDelete =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(
                LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.delete"),
            UIImages.get(DELETE_ICON)); // $NON-NLS-1$
    pbDelete.addActionListener(this);
    pbDelete.setEnabled(false);
    tbrToolBar.add(pbDelete);
    CSH.setHelpIDString(pbDelete, "toolbars.main"); // $NON-NLS-1$

    tbrToolBar.addSeparator();

    pbUndo =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.undo"),
            UIImages.get(UNDO_ICON)); // $NON-NLS-1$
    pbUndo.addActionListener(this);
    pbUndo.setEnabled(false);
    tbrToolBar.add(pbUndo);
    CSH.setHelpIDString(pbUndo, "toolbars.main"); // $NON-NLS-1$

    pbRedo =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.redo"),
            UIImages.get(REDO_ICON)); // $NON-NLS-1$
    pbRedo.addActionListener(this);
    pbRedo.setEnabled(false);
    tbrToolBar.add(pbRedo);
    CSH.setHelpIDString(pbRedo, "toolbars.main"); // $NON-NLS-1$

    tbrToolBar.addSeparator();

    pbShowBackHistory =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(
                LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.backTo"),
            UIImages.get(PREVIOUS_ICON)); // $NON-NLS-1$
    pbShowBackHistory.addActionListener(this);
    pbShowBackHistory.setEnabled(false);
    tbrToolBar.add(pbShowBackHistory);
    CSH.setHelpIDString(pbShowBackHistory, "toolbars.main"); // $NON-NLS-1$

    pbBack =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.back"),
            UIImages.get(BACK_ICON)); // $NON-NLS-1$
    pbBack.addActionListener(this);
    pbBack.setEnabled(false);
    tbrToolBar.add(pbBack);
    CSH.setHelpIDString(pbBack, "toolbars.main"); // $NON-NLS-1$

    pbForward =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(
                LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.forward"),
            UIImages.get(FORWARD_ICON)); // $NON-NLS-1$
    pbForward.addActionListener(this);
    pbForward.setEnabled(false);
    tbrToolBar.add(pbForward);
    CSH.setHelpIDString(pbForward, "toolbars.main"); // $NON-NLS-1$

    pbShowForwardHistory =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(
                LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.forwardTo"),
            UIImages.get(NEXT_ICON)); // $NON-NLS-1$
    pbShowForwardHistory.addActionListener(this);
    pbShowForwardHistory.setEnabled(false);
    tbrToolBar.add(pbShowForwardHistory);
    CSH.setHelpIDString(pbShowForwardHistory, "toolbars.main"); // $NON-NLS-1$

    tbrToolBar.addSeparator();

    pbImageRollover =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(
                LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.imageRollover"),
            UIImages.get(IMAGE_ROLLOVER_ICON)); // $NON-NLS-1$
    pbImageRollover.addActionListener(this);
    pbImageRollover.setEnabled(true);
    tbrToolBar.add(pbImageRollover);
    CSH.setHelpIDString(pbImageRollover, "toolbars.main"); // $NON-NLS-1$

    pbSearch =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(
                LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.search"),
            UIImages.get(SEARCH_ICON)); // $NON-NLS-1$
    pbSearch.addActionListener(this);
    pbSearch.setEnabled(true);
    tbrToolBar.add(pbSearch);
    CSH.setHelpIDString(pbSearch, "toolbars.main"); // $NON-NLS-1$

    pbHelp =
        tbrToolBar.createToolBarButton(
            LanguageProperties.getString(
                LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.helpOnItem"),
            UIImages.get(HELP_ICON)); // $NON-NLS-1$
    if (((UIToolBarManager) oManager).getHelpBroker() != null) {
      pbHelp.addActionListener(
          new CSH.DisplayHelpAfterTracking(((UIToolBarManager) oManager).getHelpBroker()));
    }

    pbHelp.setEnabled(true);
    tbrToolBar.add(pbHelp);

    return tbrToolBar;
  }