package com.ibm.nmon.gui.report; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import javax.swing.KeyStroke; import javax.swing.JFileChooser; import com.ibm.nmon.gui.chart.annotate.AnnotationCache; import com.ibm.nmon.gui.main.NMONVisualizerGui; import com.ibm.nmon.gui.util.GranularityDialog; import com.ibm.nmon.gui.util.LogViewerDialog; final class ReportMenu extends JMenuBar { private static final long serialVersionUID = 2244915433441666995L; private final NMONVisualizerGui gui; private final ReportFrame parent; private final ReportFileChooser chooser; private final JMenuItem save; ReportMenu(NMONVisualizerGui gui, ReportFrame parent) { super(); this.gui = gui; this.parent = parent; this.chooser = new ReportFileChooser(parent.getGui()); JMenu file = new JMenu("File"); file.setMnemonic('f'); JMenuItem item = new JMenuItem("Load..."); item.setMnemonic('l'); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK)); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (chooser.showDialog(ReportMenu.this.parent, "Parse") == JFileChooser.APPROVE_OPTION) { boolean reportLoaded = ReportMenu.this.parent.loadReportDefinition(chooser.getSelectedFile()); save.setEnabled(reportLoaded); } } }); file.add(item); JMenu loadDefaults = new JMenu("Load Default"); loadDefaults.setMnemonic('d'); file.add(loadDefaults); item = new JMenuItem("DataSet Report"); item.setMnemonic('d'); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ReportMenu.this.parent.loadDefaultDataSetReport(); save.setEnabled(true); } }); loadDefaults.add(item); item = new JMenuItem("All Systems Report"); item.setMnemonic('a'); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ReportMenu.this.parent.loadDefaultSummaryReport(); save.setEnabled(true); } }); loadDefaults.add(item); loadDefaults.addSeparator(); item = new JMenuItem("IOStat Report"); item.setMnemonic('i'); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ReportMenu.this.parent.loadDefaultIOStatReport(); save.setEnabled(true); } }); loadDefaults.add(item); item = new JMenuItem("IOStat Disk Data Report"); item.setMnemonic('k'); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ReportMenu.this.parent.loadDefaultIOStatDiskDataReport(); save.setEnabled(true); } }); loadDefaults.add(item); save = new JMenuItem("Save..."); save.setMnemonic('s'); save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK)); save.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ReportMenu.this.parent.saveAllCharts(); } }); // no report initially loaded save.setEnabled(false); file.add(save); file.addSeparator(); item = new JMenuItem("Close"); item.setMnemonic('c'); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4, InputEvent.CTRL_DOWN_MASK)); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ReportMenu.this.parent.dispose(); } }); file.add(item); add(file); JMenu view = new JMenu("View"); view.setMnemonic('v'); item = new JMenuItem("Set Granularity..."); item.setMnemonic('g'); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_DOWN_MASK)); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { new GranularityDialog(ReportMenu.this.gui, ReportMenu.this.parent).setVisible(true); } }); view.add(item); view.addSeparator(); item = new JMenuItem("Clear Annotations"); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { AnnotationCache.clear(); } }); view.add(item); item = new JMenuItem("Remove Last Line"); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { AnnotationCache.removeLastMarker(); } }); view.add(item); item = new JMenuItem("Remove Last Text"); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { AnnotationCache.removeLastAnnotation(); } }); view.add(item); add(view); JMenu help = new JMenu("Help"); help.setMnemonic('h'); item = new JMenuItem("View Log..."); item.setMnemonic('l'); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.CTRL_DOWN_MASK)); item.setIcon(LogViewerDialog.LOG_ICON); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (!ReportMenu.this.gui.getLogViewer().isVisible()) { ReportMenu.this.gui.getLogViewer().setVisible(true); } else { ReportMenu.this.gui.getLogViewer().toFront(); } ReportMenu.this.gui.getLogViewer().setLocationRelativeTo(ReportMenu.this.parent); } }); help.add(item); add(help); } }