/* =========================================================== * TradeManager : a application to trade strategies for the Java(tm) platform * =========================================================== * * (C) Copyright 2011-2011, by Simon Allen and Contributors. * * Project Info: org.trade * * 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 Street, Fifth Floor, Boston, MA 02110-1301, * USA. * * [Java is a trademark or registered trademark of Oracle, Inc. * in the United States and other countries.] * * (C) Copyright 2011-2011, by Simon Allen and Contributors. * * Original Author: Simon Allen; * Contributor(s): -; * * Changes * ------- * */ package org.trade.ui.base; import java.awt.BorderLayout; import java.awt.Component; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ContainerEvent; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JToolBar; /** */ public class BasePanelMenu extends JPanel { /** * */ private static final long serialVersionUID = -9043085427010337514L; private static JFrame frame = null; protected JMenuBar menuBar = new JMenuBar(); protected JPanel buttonPanel = new JPanel(); protected JMenu windowMenu = new JMenu(); protected JMenu fileMenu = new JMenu(); protected JMenu editMenu = new JMenu(); protected JMenu helpMenu = new JMenu(); protected JMenu viewMenu = new JMenu(); protected JMenu menuItemUtils = new JMenu(); protected JMenuItem menuItemNew = new JMenuItem(); protected JMenuItem menuItemOpen = new JMenuItem(); protected JMenuItem menuItemSave = new JMenuItem(); protected JMenuItem menuItemSaveAs = new JMenuItem(); protected JMenuItem menuItemPrint = new JMenuItem(); protected JMenuItem menuItemPrintPreview = new JMenuItem(); protected JMenuItem menuItemPrintSetUp = new JMenuItem(); protected JMenuItem menuItemExit = new JMenuItem(); protected JMenuItem menuItemUndo = new JMenuItem(); protected JMenuItem menuItemRedo = new JMenuItem(); protected JMenuItem menuItemCut = new JMenuItem(); protected JMenuItem menuItemCopy = new JMenuItem(); protected JMenuItem menuItemPaste = new JMenuItem(); protected JMenuItem menuItemFind = new JMenuItem(); protected JMenuItem menuItemReplace = new JMenuItem(); protected JMenuItem menuItemGoto = new JMenuItem(); protected JMenuItem menuItemContents = new JMenuItem(); protected JMenuItem menuItemAboutHelp = new JMenuItem(); protected BaseButton saveButton = null; protected BaseButton openFileButton = null; protected BaseButton helpButton = null; protected BaseButton printButton = null; protected MessageNotifier m_notifier = new MessageNotifier(); /** * Constructor for BasePanelMenu. * * @param p * BasePanel */ public BasePanelMenu(BasePanel p) { this(); if (p != null) { this.addMessageListener(p); } } public BasePanelMenu() { this.setLayout(new BorderLayout()); JPanel jPanel1 = new JPanel(); jPanel1.setLayout(new BorderLayout()); jPanel1.addContainerListener(new java.awt.event.ContainerAdapter() { public void componentAdded(ContainerEvent e) { jPanelToolPanel_componentChanged(); } public void componentRemoved(ContainerEvent e) { jPanelToolPanel_componentChanged(); } }); FlowLayout flowLayout1 = new FlowLayout(); flowLayout1.setVgap(0); flowLayout1.setHgap(0); buttonPanel.setLayout(flowLayout1); JPanel jPanelMenuPanel = new JPanel(); jPanelMenuPanel.setLayout(new BorderLayout()); JPanel jPanelToolPanel = new JPanel(); jPanelToolPanel.setLayout(new BorderLayout()); JToolBar jToolBarMain = new JToolBar(); jToolBarMain.setLayout(new BorderLayout()); fileMenu.setText("File"); fileMenu.setMnemonic('F'); editMenu.setText("Edit"); editMenu.setMnemonic('E'); helpMenu.setText("Help"); helpMenu.setMnemonic('H'); viewMenu.setText("View"); viewMenu.setMnemonic('V'); windowMenu.setText("Window"); viewMenu.setMnemonic('A'); openFileButton = new BaseButton(null, BaseUIPropertyCodes.OPEN_FILE); openFileButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(openFileButton.getMethod()); } }); buttonPanel.add(openFileButton, null); saveButton = new BaseButton(null, BaseUIPropertyCodes.SAVE); saveButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(saveButton.getMethod()); } }); buttonPanel.add(saveButton, null); helpButton = new BaseButton(null, BaseUIPropertyCodes.HELP); helpButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(helpButton.getMethod()); } }); buttonPanel.add(helpButton, null); printButton = new BaseButton(null, BaseUIPropertyCodes.PRINT); printButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(printButton.getMethod()); } }); buttonPanel.add(printButton, null); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(viewMenu); menuBar.add(windowMenu); menuBar.add(helpMenu); final BaseMenuItem menuItemNew = new BaseMenuItem(null, BaseUIPropertyCodes.NEW); menuItemNew.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemNew.getMethod()); } }); final BaseMenuItem menuItemOpen = new BaseMenuItem(null, BaseUIPropertyCodes.OPEN_FILE); menuItemOpen.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemOpen.getMethod()); } }); final BaseMenuItem menuItemSave = new BaseMenuItem(null, BaseUIPropertyCodes.SAVE); menuItemSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemSave.getMethod()); } }); final BaseMenuItem menuItemSaveAs = new BaseMenuItem(null, BaseUIPropertyCodes.SAVE_AS); menuItemSaveAs.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemSaveAs.getMethod()); } }); final BaseMenuItem menuItemPrint = new BaseMenuItem(null, BaseUIPropertyCodes.PRINT); menuItemPrint.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemPrint.getMethod()); } }); final BaseMenuItem menuItemPrintPreview = new BaseMenuItem(null, BaseUIPropertyCodes.PRINT_PREVIEW); menuItemPrintPreview.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemPrintPreview.getMethod()); } }); final BaseMenuItem menuItemPrintSetUp = new BaseMenuItem(null, BaseUIPropertyCodes.PRINT_OPTIONS); menuItemPrintSetUp.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemPrintSetUp.getMethod()); } }); final BaseMenuItem menuItemExit = new BaseMenuItem(null, BaseUIPropertyCodes.EXIT); menuItemExit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemExit.getMethod()); } }); final BaseMenuItem menuItemUndo = new BaseMenuItem(null, BaseUIPropertyCodes.UNDO); menuItemUndo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemUndo.getMethod()); } }); final BaseMenuItem menuItemRedo = new BaseMenuItem(null, BaseUIPropertyCodes.REDO); menuItemRedo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemRedo.getMethod()); } }); final BaseMenuItem menuItemCut = new BaseMenuItem(null, BaseUIPropertyCodes.CUT); menuItemCut.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemCut.getMethod()); } }); final BaseMenuItem menuItemCopy = new BaseMenuItem(null, BaseUIPropertyCodes.COPY); menuItemCopy.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemCopy.getMethod()); } }); final BaseMenuItem menuItemPaste = new BaseMenuItem(null, BaseUIPropertyCodes.PASTE); menuItemPaste.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemPaste.getMethod()); } }); final BaseMenuItem menuItemFind = new BaseMenuItem(null, BaseUIPropertyCodes.FIND); menuItemFind.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemFind.getMethod()); } }); final BaseMenuItem menuItemReplace = new BaseMenuItem(null, BaseUIPropertyCodes.REPLACE); menuItemReplace.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemReplace.getMethod()); } }); final BaseMenuItem menuItemContents = new BaseMenuItem(null, BaseUIPropertyCodes.CONTENTS); menuItemContents.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemContents.getMethod()); } }); final BaseMenuItem menuItemAboutHelp = new BaseMenuItem(null, BaseUIPropertyCodes.ABOUT); menuItemAboutHelp.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { messageEvent(menuItemAboutHelp.getMethod()); } }); menuItemUtils.setText("Utils"); menuItemUtils.setEnabled(false); fileMenu.add(menuItemNew); fileMenu.add(menuItemOpen); fileMenu.add(menuItemSave); fileMenu.add(menuItemSaveAs); fileMenu.addSeparator(); fileMenu.add(menuItemPrint); fileMenu.add(menuItemPrintPreview); fileMenu.add(menuItemPrintSetUp); fileMenu.addSeparator(); fileMenu.add(menuItemExit); editMenu.add(menuItemUndo); editMenu.add(menuItemRedo); editMenu.addSeparator(); editMenu.add(menuItemCut); editMenu.add(menuItemCopy); editMenu.add(menuItemPaste); editMenu.addSeparator(); editMenu.add(menuItemFind); editMenu.add(menuItemReplace); editMenu.add(menuItemGoto); helpMenu.add(menuItemContents); helpMenu.add(menuItemAboutHelp); this.add(jPanelMenuPanel, BorderLayout.NORTH); this.add(jPanelToolPanel, BorderLayout.SOUTH); jPanelToolPanel.add(jPanel1, BorderLayout.WEST); jPanel1.add(jToolBarMain, BorderLayout.CENTER); jToolBarMain.add(buttonPanel, BorderLayout.NORTH); jPanelMenuPanel.add(menuBar, BorderLayout.NORTH); } /** * getFrame () * * * * * * @return JFrame * @exception * @see */ private JFrame getFrame() { if (frame == null) { Component parent = this; while ((parent != null) && !(parent instanceof JFrame)) { parent = parent.getParent(); } frame = (JFrame) parent; } return frame; } /** * addMessageListener (MessageListener listener) * * * * * * * @param listener * MessageListener * @exception * * @see */ public void addMessageListener(MessageListener listener) { m_notifier.add(listener); } /** * removeMessageListener (MessageListener listener) * * * * * * * @param listener * MessageListener * @exception * * @see */ public void removeMessageListener(MessageListener listener) { m_notifier.remove(listener); } /** * getWindowsOpenMenu (MessageListener listener) * * * * * * @return JMenuItem * @exception * @see */ public JMenu getWindowsOpenMenu() { return windowMenu; } /** * Method getButtonPanel. * * @return JPanel */ public JPanel getButtonPanel() { return buttonPanel; } /** * jPanelToolPanel_componentChanged(ContainerEvent e) * * * * * * @exception * * @see */ private void jPanelToolPanel_componentChanged() { if (getFrame() != null) { getFrame().validate(); } } /** * messageEvent(String selection) * * * * * * * @param selection * String * @exception * * @see */ public void messageEvent(String selection) { m_notifier.notifyEvent(new MessageEvent(selection), new Vector<Object>()); } /** * messageEvent(String selection) * * * * * * * @param enable * boolean * @exception * * @see */ public void enableSave(boolean enable) { menuItemSave.setEnabled(enable); menuItemSaveAs.setEnabled(enable); saveButton.setEnabled(enable); } }