Package com.lowagie.rups.view

Source Code of com.lowagie.rups.view.RupsMenuBar

/*
* $Id: RupsMenuBar.java 4039 2009-07-24 10:29:47Z blowagie $
*
* Copyright 2007 Bruno Lowagie.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

package com.lowagie.rups.view;

import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Observable;
import java.util.Observer;

import javax.swing.Box;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

import com.lowagie.rups.io.FileChooserAction;
import com.lowagie.rups.io.FileCloseAction;
import com.lowagie.rups.io.filters.PdfFilter;

public class RupsMenuBar extends JMenuBar implements Observer {

  /** Caption for the file menu. */
  public static final String FILE_MENU = "File";
  /** Caption for "Open file". */
  public static final String OPEN = "Open";
  /** Caption for "Close file". */
  public static final String CLOSE = "Close";
  /** Caption for the help menu. */
  public static final String HELP_MENU = "Help";
  /** Caption for "Help about". */
  public static final String ABOUT = "About";
  /**
   * Caption for "Help versions".
   * @since iText 5.0.0 (renamed from VERSIONS)
   */
  public static final String VERSION = "Version";
 
  /** The Observable object. */
  protected Observable observable;
  /** The action needed to open a file. */
  protected FileChooserAction fileChooserAction;
  /** The HashMap with all the actions. */
  protected HashMap<String, JMenuItem> items;
 
  /**
   * Creates a JMenuBar.
   * @param observable  the controller to which this menu bar is added
   */
  public RupsMenuBar(Observable observable) {
    this.observable = observable;
    items = new HashMap<String, JMenuItem>();
    fileChooserAction = new FileChooserAction(observable, "Open", PdfFilter.INSTANCE, false);
    MessageAction message = new MessageAction();
    JMenu file = new JMenu(FILE_MENU);
    addItem(file, OPEN, fileChooserAction);
    addItem(file, CLOSE, new FileCloseAction(observable));
    add(file);
        add(Box.createGlue());
        JMenu help = new JMenu(HELP_MENU);
        addItem(help, ABOUT, message);
        addItem(help, VERSION, message);
        add(help);
    enableItems(false);
  }
 
  /**
   * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
   */
  public void update(Observable observable, Object obj) {
    if (OPEN.equals(obj)) {
      enableItems(true);
      return;
    }
    if (CLOSE.equals(obj)) {
      enableItems(false);
      return;
    }
    if (FILE_MENU.equals(obj)) {
      fileChooserAction.actionPerformed(null);
    }
  }
 
  /**
   * Create an item with a certain caption and a certain action,
   * then add the item to a menu.
   * @param menu  the menu to which the item has to be added
   * @param caption  the caption of the item
   * @param action  the action corresponding with the caption
   */
  protected void addItem(JMenu menu, String caption, ActionListener action) {
    JMenuItem item = new JMenuItem(caption);
    item.addActionListener(action);
    menu.add(item);
    items.put(caption, item);
  }
 
  /**
   * Enables/Disables a series of menu items.
   * @param enabled  true for enabling; false for disabling
   */
  protected void enableItems(boolean enabled) {
    enableItem(CLOSE, enabled);
  }
 
  /**
   * Enables/disables a specific menu item
   * @param caption  the caption of the item that needs to be enabled/disabled
   * @param enabled  true for enabling; false for disabling
   */
  protected void enableItem(String caption, boolean enabled) {
    items.get(caption).setEnabled(enabled);
  }
 
  /** A Serial Version UID. */
  private static final long serialVersionUID = 6403040037592308742L;
}
TOP

Related Classes of com.lowagie.rups.view.RupsMenuBar

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.