com.lowagie.rups.view.RupsMenuBar Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of itext Show documentation
Show all versions of itext Show documentation
This is a build of the last MPL version of iText.
The newest version!
/*
* $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 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();
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;
}