package gui;
import java.awt.AWTException;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.KeyStroke;
import javax.swing.JToolBar;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
import helper.Constants;
import helper.Helper;
import dao.RCommand;
import dao.RObject;
import dao.RObjectViewportPlotMdspca;
import dao.RObjectViewportPlotScree;
import dao.RObjectViewportPlotSphpca;
import dao.RObjectViewportPlotSysch3D;
import dao.RObjectViewportPlotSyschFreq;
import dao.RObjectViewportTable;
import dao.TableSweaveTag;
import gui.JRPlotPanel;
import gui.JRClientPanel;
import gui.JLatexPanel;
/**
* In this class the swing gui gets installed and the item- and actionlistener
* are added to the swing components.
*
*/
public class MainFrame extends JFrame {
private static final long serialVersionUID = -7167629968906183715L;
private static Log log = LogFactory.getLog(MainFrame.class);
// private /* static*/DataTableModel dataTM;
private JToolBar myToolbar;
private JButton jbt_OpenDatafile;
private JButton jbt_1Set;
private JButton jbt_2Set;
private JButton jbt_SysChar;
private JButton jbt_W1;
private JButton jbt_W2;
private JButton jbt_TestItems;
private JButton jbt_GenStandRep;
private JButton jbt_InsLatHeadFoot;
private JButton jbt_OpenRep;
private JButton jbt_SaveRep;
private JButton jbt_SaveRepAs;
private JButton jbt_MakeLatexSource;
private JButton jbt_MakePDF;
private JButton jbt_ViewPDF;
private JButton jbt_Help;
private JButton jbt_Demo;
private JButton jbt_About;
private JMenuBar jMenuBar1; // Container of (jMenuFile,
// jMenuPlot,
// JMenuInsert,
// jMenuLatex)
private JMenu jMenuFile;
// MenuItems of File
private JMenuItem jMenuItemFileOpen;
private JMenuItem jMenuItemFileExit;
private JMenu jMenuInsert;
// MenuItems of Insert
private JMenuItem jMenuItemInsertOneSet_MV_G;
private JMenuItem jMenuItemInsertTwoSet_MV_G;
private JMenuItem jMenuItemInsertSystemCharacteristics;
private JMenuItem jMenuItemInsertW1;
private JMenuItem jMenuItemInsertW2;
private JMenuItem jMenuItemInsertTestItems;
private JMenu jMenuLatex;
// MenuItems of Latex
private JMenuItem jMenuItemLatexGenRep;
private JMenuItem jMenuItemInsertHeaderFooter;
private JMenuItem jMenuItemLatexOpen; // Open Report
private JMenuItem jMenuItemLatexSave; // Save Report
private JMenuItem jMenuItemLatexSaveAs; // Save Report as...
private JMenuItem jMenuItemLatexRunSweave; // Run Sweave
private JMenuItem jMenuItemLatexRunSweaveAndGeneratePdf;
private JMenuItem jMenuItemLatexViewGeneratedPdf;
private JMenu jMenuHelp;
// MenuItems of Help
private JMenuItem jMenuItemHelpContents;
private JMenuItem jMenuItemHelpStartDemo;
private JMenuItem jMenuItemHelpAbout;
// TrayIcon
private TrayIcon myTrayIcon;
private SystemTray tray;
private PopupMenu sysTrayPopup;
// private JTextPane rLog;
// private JTable dataTable;
// private JScrollPane jScrollPane1;
private JSplitPane splitPane;
private JRObjectTreePane jPanelTree; // Treeview Object manager
private static JTabbedPane jTabbedPaneMain; // Container of Panels:
// Data
// R
// Plots
// Latex
/**
* The four Panels (Data - R - Plots - Latex)
*/
public static JRTablePanel jPanelData; // Data
private static JRClientPanel jRClientPanel; // R
public static JRPlotPanel jPanelPlot; // Plots
public static JRTablePanel jPanelTables; // Tables
private static JLatexPanel jPanelLatex; // Latex
/**
* In the constructor the init-methods for the models and the components
* envocated. And WindowListener are added.
*/
public MainFrame() {
super();
log.info("Initialising MainFrame");
// Window Listener for Closing Frame
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent arg0) {
super.windowClosing(arg0);
terminateApplication();
}
});
this.setIconImage(
new ImageIcon("./images/i16x16/isop_favicon.png").getImage());
this.setTitle(Constants.TITLE);
initModels();
initComponents();
RCommand.getRengine();
}
/**
* In this method the DataTableModel is initialized
*
*
*/
private void initModels() {// dataTM = new DataTableModel(Constants.R_DATASET);
}
/**
* In this method all swing elements are build and plazed. They are
* interacteable via action listeners
*/
private void initSystemTray() {
if (!SystemTray.isSupported()) {
log.info("SystemTray is not supported, omitting.");
return;
}
log.info("Initializing SystemTray");
// Systray
sysTrayPopup = new PopupMenu();
myTrayIcon = new TrayIcon(
new ImageIcon("./images/i16x16/isop_favicon.png", "tray icon").getImage());
myTrayIcon.setImageAutoSize(true);
tray = SystemTray.getSystemTray();
MenuItem aboutItem = new MenuItem("About");
aboutItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemHelpAboutActionPerformed(evt);
}
});
MenuItem exitItem = new MenuItem("Exit");
exitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemFileExitActionPerformed(evt);
}
});
// Add components to systray popup menu
sysTrayPopup.add(aboutItem);
sysTrayPopup.add(exitItem);
myTrayIcon.setPopupMenu(sysTrayPopup);
try {
tray.add(myTrayIcon);
} catch (AWTException e) {
System.out.println("TrayIcon could not be added.");
return;
}
// EndOfSysTrayInstall
}
private void initComponents() {
initSystemTray();
jTabbedPaneMain = new JTabbedPane();
jPanelData = new JRTablePanel();
jRClientPanel = new JRClientPanel();
jPanelPlot = new JRPlotPanel();
jPanelTables = new JRTablePanel();
jPanelLatex = new JLatexPanel();
// JToolBar
myToolbar = new JToolBar();
myToolbar.setFloatable(false);
// Toolbar Buttons
jbt_OpenDatafile = new JButton();
ImageIcon iconOpen = new ImageIcon("./images/i24x24/open24.gif");
jbt_OpenDatafile.setIcon(iconOpen);
jbt_OpenDatafile.setToolTipText("Open Datafile(s)");
jbt_OpenDatafile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemFileOpenDatafileActionPerformed(evt);
}
});
jbt_1Set = new JButton();
ImageIcon icon1Set = new ImageIcon("./images/i24x24/1Set_24.png");
jbt_1Set.setIcon(icon1Set);
jbt_1Set.setToolTipText("Perform OneSetTest");
jbt_1Set.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertOneSet_MV_G_ActionPerformed(evt);
}
});
jbt_2Set = new JButton();
ImageIcon icon2Set = new ImageIcon("./images/i24x24/2Set_24.png");
jbt_2Set.setIcon(icon2Set);
jbt_2Set.setToolTipText("Perform TwoSetTest");
jbt_2Set.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertTwoSet_MV_G_ActionPerformed(evt);
}
});
jbt_SysChar = new JButton();
ImageIcon iconSysChar = new ImageIcon("./images/i24x24/Sys_24.png");
jbt_SysChar.setIcon(iconSysChar);
jbt_SysChar.setToolTipText("Perform System Characteristics");
jbt_SysChar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertSystemCharacteristicsActionPerformed(evt);
}
});
jbt_W1 = new JButton();
ImageIcon iconW1 = new ImageIcon("./images/i24x24/W1_24.png");
jbt_W1.setIcon(iconW1);
jbt_W1.setToolTipText("Perform W1");
jbt_W1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertW1ActionPerformed(evt);
}
});
jbt_W2 = new JButton();
ImageIcon iconW2 = new ImageIcon("./images/i24x24/W2_24.png");
jbt_W2.setIcon(iconW2);
jbt_W2.setToolTipText("Perform W2");
jbt_W2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertW2ActionPerformed(evt);
}
});
jbt_TestItems = new JButton();
ImageIcon iconTestItems = new ImageIcon("./images/i24x24/TestItems_24.png");
jbt_TestItems.setIcon(iconTestItems);
jbt_TestItems.setToolTipText("Perform Test Items");
jbt_TestItems.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertTestItemsActionPerformed(evt);
}
});
jbt_GenStandRep = new JButton();
ImageIcon iconGenStandRep = new ImageIcon("./images/i24x24/TestItems_24.png");
jbt_GenStandRep.setIcon(iconGenStandRep);
jbt_GenStandRep.setToolTipText("Generate Standard Report");
jbt_GenStandRep.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexGenRepActionPerformed(evt);
}
});
jbt_InsLatHeadFoot = new JButton();
ImageIcon iconInsLatHeadFoot = new ImageIcon("./images/i24x24/TestItems_24.png");
jbt_InsLatHeadFoot.setIcon(iconInsLatHeadFoot);
jbt_InsLatHeadFoot.setToolTipText("Insert Latex Header/Footer");
jbt_InsLatHeadFoot.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
}
});
jbt_OpenRep = new JButton();
ImageIcon iconjbt_OpenRep = new ImageIcon("./images/i24x24/open24.gif");
jbt_OpenRep.setIcon(iconjbt_OpenRep);
jbt_OpenRep.setToolTipText("Open Report");
jbt_OpenRep.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexOpenActionPerformed(evt);
}
});
jbt_SaveRep = new JButton();
ImageIcon iconSaveRep = new ImageIcon("./images/i24x24/save24.gif");
jbt_SaveRep.setIcon(iconSaveRep);
jbt_SaveRep.setToolTipText("Save Report");
jbt_SaveRep.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexSaveActionPerformed(evt);
}
});
jbt_SaveRepAs = new JButton();
ImageIcon iconSaveRepAs = new ImageIcon("./images/i24x24/save_as24.gif");
jbt_SaveRepAs.setIcon(iconSaveRepAs);
jbt_SaveRepAs.setToolTipText("Save Report As");
jbt_SaveRepAs.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexSaveAsActionPerformed(evt);
}
});
jbt_MakeLatexSource = new JButton();
ImageIcon iconMakeLatexSource = new ImageIcon("./images/i24x24/tex_1.png");
jbt_MakeLatexSource.setIcon(iconMakeLatexSource);
jbt_MakeLatexSource.setToolTipText("Make Latex Source");
jbt_MakeLatexSource.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexRunSweaveActionPerformed(evt);
}
});
jbt_MakePDF = new JButton();
ImageIcon iconMakePDF = new ImageIcon("./images/i24x24/makePDF_24.png");
jbt_MakePDF.setIcon(iconMakePDF);
jbt_MakePDF.setToolTipText("Make PDF");
jbt_MakePDF.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexRunSweaveAndGeneratePdfActionPerformed(evt);
}
});
jbt_ViewPDF = new JButton();
ImageIcon iconViewPDF = new ImageIcon("./images/i24x24/ViewPDF_24.png");
jbt_ViewPDF.setIcon(iconViewPDF);
jbt_ViewPDF.setToolTipText("View PDF");
jbt_ViewPDF.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexViewGeneratedPdfActionPerformed(evt);
}
});
jbt_Help = new JButton();
ImageIcon iconHelp = new ImageIcon("./images/i24x24/help.gif");
jbt_Help.setIcon(iconHelp);
jbt_Help.setToolTipText("Help");
jbt_Help.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemHelpContentsActionPerformed(evt);
}
});
jbt_Demo = new JButton();
ImageIcon iconDemo = new ImageIcon("./images/i24x24/Play24.gif");
jbt_Demo.setIcon(iconDemo);
jbt_Demo.setToolTipText("Start Demo");
jbt_Demo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
startDemoActionPerformed(evt);
}
});
jbt_About = new JButton();
ImageIcon iconAbout = new ImageIcon("./images/i24x24/about24.gif");
jbt_About.setIcon(iconAbout);
jbt_About.setToolTipText("About ISOP-tool");
jbt_About.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemHelpAboutActionPerformed(evt);
}
});
myToolbar.add(jbt_OpenDatafile);
myToolbar.addSeparator();
myToolbar.add(jbt_1Set);
myToolbar.add(jbt_2Set);
myToolbar.add(jbt_SysChar);
myToolbar.add(jbt_W1);
myToolbar.add(jbt_W2);
myToolbar.add(jbt_TestItems);
myToolbar.addSeparator();
// myToolbar.add(jbt_GenStandRep);
// myToolbar.add(jbt_InsLatHeadFoot);
myToolbar.add(jbt_OpenRep);
myToolbar.add(jbt_SaveRep);
myToolbar.add(jbt_SaveRepAs);
myToolbar.add(jbt_MakeLatexSource);
myToolbar.add(jbt_MakePDF);
myToolbar.add(jbt_ViewPDF);
myToolbar.addSeparator();
myToolbar.add(jbt_Help);
myToolbar.add(jbt_Demo);
myToolbar.add(jbt_About);
// End of JToolbar
jPanelTree = new JRObjectTreePane();
jMenuBar1 = new JMenuBar();
jMenuFile = new JMenu();
jMenuItemFileOpen = new JMenuItem();
jMenuItemFileExit = new JMenuItem();
jMenuInsert = new JMenu();
jMenuItemInsertTwoSet_MV_G = new JMenuItem();
jMenuItemInsertOneSet_MV_G = new JMenuItem();
jMenuItemInsertSystemCharacteristics = new JMenuItem();
jMenuItemInsertW1 = new JMenuItem();
jMenuItemInsertW2 = new JMenuItem();
jMenuItemInsertHeaderFooter = new JMenuItem();
jMenuItemInsertTestItems = new JMenuItem();
jMenuLatex = new JMenu();
jMenuItemLatexGenRep = new JMenuItem();
jMenuItemLatexOpen = new JMenuItem();
jMenuItemLatexSave = new JMenuItem();
jMenuItemLatexSaveAs = new JMenuItem();
jMenuItemLatexRunSweave = new JMenuItem();
jMenuItemLatexRunSweaveAndGeneratePdf = new JMenuItem();
jMenuItemLatexViewGeneratedPdf = new JMenuItem();
jMenuHelp = new JMenu();
jMenuItemHelpContents = new JMenuItem();
jMenuItemHelpStartDemo = new JMenuItem();
jMenuItemHelpAbout = new JMenuItem();
// MENU FILE
jMenuFile.setText("File");
jMenuFile.setMnemonic('f');
// -->File -->Open
jMenuItemFileOpen.setText("Open Datafile");
jMenuItemFileOpen.setMnemonic('o');
ImageIcon icon_Open = new ImageIcon("./images/i16x16/open16.gif");
jMenuItemFileOpen.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.ALT_MASK));
jMenuItemFileOpen.setIcon(icon_Open);
jMenuItemFileOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemFileOpenDatafileActionPerformed(evt);
}
});
jMenuFile.add(jMenuItemFileOpen);
jMenuFile.addSeparator();
// -->File -->Exit
jMenuItemFileExit.setText("Exit");
jMenuItemFileExit.setMnemonic('x');
ImageIcon icon_Exit = new ImageIcon("./images/i16x16/exit.png");
jMenuItemFileExit.setIcon(icon_Exit);
jMenuItemFileExit.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.ALT_MASK));
jMenuItemFileExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemFileExitActionPerformed(evt);
}
});
jMenuFile.add(jMenuItemFileExit);
jMenuBar1.add(jMenuFile);
// MENU INSERT
jMenuInsert.setText("Test");
jMenuInsert.setMnemonic('t');
// -->Insert -->1set-MV-G
jMenuItemInsertOneSet_MV_G.setText("One-Set-MV-G");
ImageIcon icon_jMenuItemInsertOneSet_MV_G = new ImageIcon("./images/i16x16/1Set_16.png");
jMenuItemInsertOneSet_MV_G.setIcon(icon_jMenuItemInsertOneSet_MV_G);
jMenuItemInsertOneSet_MV_G.setMnemonic('o');
jMenuItemInsertOneSet_MV_G.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertOneSet_MV_G_ActionPerformed(evt);
}
});
jMenuInsert.add(jMenuItemInsertOneSet_MV_G);
// -->Insert -->2set-MV-G
jMenuItemInsertTwoSet_MV_G.setText("Two-Set-MV-G");
ImageIcon icon_jMenuItemInsertTwoSet_MV_G = new ImageIcon("./images/i16x16/2Set_16.png");
jMenuItemInsertTwoSet_MV_G.setIcon(icon_jMenuItemInsertTwoSet_MV_G);
jMenuItemInsertTwoSet_MV_G.setMnemonic('t');
jMenuItemInsertTwoSet_MV_G.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertTwoSet_MV_G_ActionPerformed(evt);
}
});
jMenuInsert.add(jMenuItemInsertTwoSet_MV_G);
// -->Insert -->System-Characteristics
jMenuItemInsertSystemCharacteristics.setText("System-Characteristics");
ImageIcon icon_jMenuItemInsertSystemCharacteristics = new ImageIcon("./images/i16x16/Sys_16.png");
jMenuItemInsertSystemCharacteristics.setIcon(icon_jMenuItemInsertSystemCharacteristics);
jMenuItemInsertSystemCharacteristics.setMnemonic('s');
jMenuItemInsertSystemCharacteristics.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertSystemCharacteristicsActionPerformed(evt);
}
});
jMenuInsert.add(jMenuItemInsertSystemCharacteristics);
// -->Insert -->W1
jMenuItemInsertW1.setText("W1");
ImageIcon icon_jMenuItemInsertW1 = new ImageIcon("./images/i16x16/W1_16.png");
jMenuItemInsertW1.setIcon(icon_jMenuItemInsertW1);
jMenuItemInsertW1.setMnemonic('1');
jMenuItemInsertW1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertW1ActionPerformed(evt);
}
});
jMenuInsert.add(jMenuItemInsertW1);
// -->Insert -->W2
jMenuItemInsertW2.setText("W2");
ImageIcon icon_jMenuItemInsertW2 = new ImageIcon("./images/i16x16/W2_16.png");
jMenuItemInsertW2.setIcon(icon_jMenuItemInsertW2);
jMenuItemInsertW2.setMnemonic('2');
jMenuItemInsertW2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertW2ActionPerformed(evt);
}
});
jMenuInsert.add(jMenuItemInsertW2);
// -->Insert -->TestItems
jMenuItemInsertTestItems.setText("Test Items");
ImageIcon icon_jMenuItemInsertTestItems = new ImageIcon("./images/i16x16/TestItems_16.png");
jMenuItemInsertTestItems.setIcon(icon_jMenuItemInsertTestItems);
jMenuItemInsertTestItems.setMnemonic('t');
jMenuItemInsertTestItems.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertTestItemsActionPerformed(evt);
}
});
jMenuInsert.add(jMenuItemInsertTestItems);
jMenuBar1.add(jMenuInsert);
// MENU LATEX
jMenuLatex.setText("Report");
jMenuLatex.setMnemonic('r');
// -->Latex --> Generate standard report
jMenuItemLatexGenRep.setText("Generate Standard Report");
jMenuItemLatexGenRep.setMnemonic('g');
jMenuItemLatexGenRep.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexGenRepActionPerformed(evt);
}
});
jMenuLatex.add(jMenuItemLatexGenRep);
jMenuLatex.addSeparator();
// -->Latex --> Insert Latex Header/Footer
jMenuItemInsertHeaderFooter.setText("Insert Latex Header/Footer");
jMenuItemInsertHeaderFooter.setMnemonic('i');
jMenuItemInsertHeaderFooter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemInsertHeaderFooterActionPerformed(evt);
}
});
jMenuLatex.add(jMenuItemInsertHeaderFooter);
// -->Latex --> Open
jMenuItemLatexOpen.setText("Open Report");
ImageIcon icon_LatexOpen = new ImageIcon("./images/i16x16/open16.gif");
jMenuItemLatexOpen.setIcon(icon_LatexOpen);
jMenuItemLatexOpen.setMnemonic('o');
jMenuItemLatexOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexOpenActionPerformed(evt);
}
});
jMenuLatex.add(jMenuItemLatexOpen);
jMenuLatex.addSeparator();
// -->Latex --> Save
jMenuItemLatexSave.setText("Save Report");
jMenuItemLatexSave.setMnemonic('s');
ImageIcon icon_LatexSave = new ImageIcon(
"./images/i16x16/save16.gif");
jMenuItemLatexSave.setIcon(icon_LatexSave);
jMenuItemLatexSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexSaveActionPerformed(evt);
}
});
jMenuLatex.add(jMenuItemLatexSave);
// -->Latex --> Save As
jMenuItemLatexSaveAs.setText("Save Report As...");
jMenuItemLatexSaveAs.setMnemonic('a');
ImageIcon icon_LatexSaveAs = new ImageIcon(
"./images/i16x16/save_as16.gif");
jMenuItemLatexSaveAs.setIcon(icon_LatexSaveAs);
jMenuItemLatexSaveAs.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexSaveAsActionPerformed(evt);
}
});
jMenuLatex.add(jMenuItemLatexSaveAs);
jMenuLatex.addSeparator();
// -->Latex --> runSweave
jMenuItemLatexRunSweave.setText("Make Latex Source");
jMenuItemLatexRunSweave.setMnemonic('l');
ImageIcon icon_TEX = new ImageIcon("./images/i16x16/tex.png");
jMenuItemLatexRunSweave.setIcon(icon_TEX);
jMenuItemLatexRunSweave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexRunSweaveActionPerformed(evt);
}
});
jMenuLatex.add(jMenuItemLatexRunSweave);
// -->Latex --> Run Sweave and generate PDF on the fly
jMenuItemLatexRunSweaveAndGeneratePdf.setText("Make PDF");
ImageIcon icon_PDF = new ImageIcon("./images/i16x16/makePDF_16.png");
jMenuItemLatexRunSweaveAndGeneratePdf.setIcon(icon_PDF);
jMenuItemLatexRunSweaveAndGeneratePdf.setMnemonic('p');
jMenuItemLatexRunSweaveAndGeneratePdf.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexRunSweaveAndGeneratePdfActionPerformed(evt);
}
});
jMenuLatex.add(jMenuItemLatexRunSweaveAndGeneratePdf);
jMenuLatex.addSeparator();
// -->Latex --> Run Sweave and generate PDF on the fly
jMenuItemLatexViewGeneratedPdf.setText("View PDF");
ImageIcon icon_ViewPDF = new ImageIcon("./images/i16x16/ViewPDF_16.png");
jMenuItemLatexViewGeneratedPdf.setIcon(icon_ViewPDF);
jMenuItemLatexViewGeneratedPdf.setMnemonic('v');
jMenuItemLatexViewGeneratedPdf.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemLatexViewGeneratedPdfActionPerformed(evt);
}
});
jMenuLatex.add(jMenuItemLatexViewGeneratedPdf);
jMenuBar1.add(jMenuLatex);
// HELP
jMenuHelp.setText("Help");
jMenuHelp.setMnemonic('h');
// -->Help --> Content
jMenuItemHelpContents.setText("Help Contents");
jMenuItemHelpContents.setMnemonic('h');
ImageIcon icon_helpContents = new ImageIcon(
"./images/i16x16/help16.gif");
jMenuItemHelpContents.setIcon(icon_helpContents);
jMenuItemHelpContents.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemHelpContentsActionPerformed(evt);
}
});
jMenuHelp.add(jMenuItemHelpContents);
// -->Help --> StartDemo
jMenuItemHelpStartDemo.setText("Start Demo");
jMenuItemHelpStartDemo.setMnemonic('D');
ImageIcon icon_StartDemo = new ImageIcon(
"./images/i16x16/Play16.gif");
jMenuItemHelpStartDemo.setIcon(icon_StartDemo);
jMenuItemHelpStartDemo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
startDemoActionPerformed(evt);
}
});
jMenuHelp.add(jMenuItemHelpStartDemo);
// -->Help --> About ISOPtool
jMenuItemHelpAbout.setText("About");
ImageIcon icon_about = new ImageIcon("./images/i16x16/about16.gif");
jMenuItemHelpAbout.setIcon(icon_about);
jMenuItemHelpAbout.setMnemonic('a');
jMenuItemHelpAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jMenuItemHelpAboutActionPerformed(evt);
}
});
jMenuHelp.add(jMenuItemHelpAbout);
jMenuBar1.add(jMenuHelp);
setJMenuBar(jMenuBar1);
// putting Data-/R-/Plot-/Report- Tab in Tab-Container-Pane
ImageIcon icon_TabR = new ImageIcon(
"./images/i16x16/konsolemetal.png");
ImageIcon icon_TabTableAndData = new ImageIcon(
"./images/i16x16/table.png");
ImageIcon icon_Report = new ImageIcon(
"./images/i16x16/latex_16x16.png");
ImageIcon icon_Plot = new ImageIcon("./images/i16x16/plot.png");
jTabbedPaneMain.addTab("Data", icon_TabTableAndData, jPanelData);
jTabbedPaneMain.addTab("Plots", icon_Plot, jPanelPlot);
jTabbedPaneMain.addTab("Tables", icon_TabTableAndData, jPanelTables);
jTabbedPaneMain.addTab("Report", icon_Report, jPanelLatex);
jTabbedPaneMain.addTab("R-Console", icon_TabR, jRClientPanel);
jTabbedPaneMain.addChangeListener(
new ChangeListener() {
public void stateChanged(ChangeEvent evt) {
boolean isLatexPanelSelected = (jTabbedPaneMain.getSelectedComponent()
== jPanelLatex);
}
});
jPanelTree.setBorder(BorderFactory.createTitledBorder("Object-Manager"));
jPanelTree.setMinimumSize(new Dimension(100, 50));
BorderLayout myLayout = new BorderLayout();
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jPanelTree,
jTabbedPaneMain);
splitPane.setOneTouchExpandable(true);
splitPane.setDividerLocation(200);
this.setSize(new Dimension(800, 600));
this.setLayout(myLayout);
this.add(myToolbar, BorderLayout.NORTH);
this.add(splitPane, BorderLayout.CENTER);
// Provide minimum sizes for the two components in the split pane
// Dimension minimumSize =
//
// jTabbedPaneMain.setMinimumSize(minimumSize);
// splitPane.setPreferredSize(this.getSize());
// this.add(splitPane);
// jPanelData.setLayout(layout);
// getContentPane().add(jTabbedPaneMain,BorderLayout.CENTER);
// pack();
}
protected void latexRedoActionPerformed(ActionEvent evt) {
jPanelLatex.redo();
}
protected void startDemoActionPerformed(ActionEvent evt) {
String curDir = System.getProperty("user.dir").replace('\\', '/');
log.info("DEMO START");
RObjectViewportTable datafile = new RObjectViewportTable(dao.Controller.fitName("CONS.DAT"),
new RObject(dao.Controller.fitRVarName("CONS.DAT"), "read.table(\"" + curDir + "/example/cons.dat\")"));
dao.Controller.addDataFile(datafile, true, true, true);
RObject sysch = new RObject(dao.Controller.fitRVarName("sysch"), "isop.sysch(" + datafile.getAttachedRObject().getRVarName() + ")");
RObjectViewportTable syschtab = new RObjectViewportTable(dao.Controller.fitName("sysch") ,
sysch);
dao.Controller.addTable(syschtab, true, true,
new TableSweaveTag(syschtab));
log.info("DEMO END");
dao.Controller.addPlot(
new RObjectViewportPlotSysch3D( dao.Controller.fitName("sysch3Dplot"), sysch), true, false,
false, null);
dao.Controller.addPlot(
new RObjectViewportPlotSyschFreq( dao.Controller.fitName("syschfreqplot"),
sysch),
false, false, false, null);
RCommand.eval("library(psy)");
dao.Controller.addPlot(
new RObjectViewportPlotScree( dao.Controller.fitName("screeplot"),
datafile.getAttachedRObject(), 1),
false, false, false, null);
dao.Controller.addPlot(
new RObjectViewportPlotSphpca( dao.Controller.fitName("mysphpca"),
datafile.getAttachedRObject()),
false, false, false, null);
dao.Controller.addPlot(
new RObjectViewportPlotMdspca( dao.Controller.fitName("mymdspca"),
datafile.getAttachedRObject()),
false, false, false, null);
dao.Controller.addPlot(
new RObjectViewportPlotMdspca( dao.Controller.fitName("mymdspca"),
datafile.getAttachedRObject(), 1, 6),
false, false, false, null);
RObject icc = new RObject(dao.Controller.fitRVarName("icc_" + datafile.getAttachedRObject().getRVarName()), "icc(" + datafile.getAttachedRObject().getRVarName() + ")");
RObjectViewportTable icctab = new RObjectViewportTable(dao.Controller.fitName(icc.getRVarName() + "_table") ,
icc);
dao.Controller.addTable(icctab, true, true,
new TableSweaveTag(icctab));
}
protected void latexUndoActionPerformed(ActionEvent evt) {
jPanelLatex.undo();
}
// private void jScrollPane1MouseClicked(MouseEvent evt) {
// dataTM.refresh();
// }
private void jMenuItemFileOpenDatafileActionPerformed(ActionEvent evt) {
JFileChooser fc = new JFileChooser();
/* not needed anymore
// Which OS has user?
String osSpecificPathSeperator = "";
if ( System.getProperty("os.name").toLowerCase().startsWith("windows") )
osSpecificPathSeperator = "\\\\"; //Win-seperator
//edit steve: has to be \\\\ because java reduces to \\ and R to \
else if (System.getProperty("os.name").toLowerCase().startsWith("linux"))
osSpecificPathSeperator = "/"; //Linux-seperator
*/
fc.setMultiSelectionEnabled(true);
int i = fc.showOpenDialog(this);
if (i == JFileChooser.APPROVE_OPTION) {
File[] openedFiles = fc.getSelectedFiles();
dao.Controller.openDataFiles(openedFiles);
}
} // Function is ending
private void jMenuItemFileExitActionPerformed(ActionEvent evt) {
terminateApplication();
}
private void jMenuItemInsertOneSet_MV_G_ActionPerformed(ActionEvent evt) {
if (!ensureDatafilesOpened(evt)) return;
JFrame jItemSelectionOneSet_MV_GTestFrame = new OneSetItemSelectionFrame();
jItemSelectionOneSet_MV_GTestFrame.setLocation(50, 50);
jItemSelectionOneSet_MV_GTestFrame.setSize(650, 650);
jItemSelectionOneSet_MV_GTestFrame.setVisible(true);
}
private void jMenuItemInsertTwoSet_MV_G_ActionPerformed(ActionEvent evt) {
if (!ensureDatafilesOpened(evt)) return;
JFrame jItemSelectionTwoSet_MV_GTestFrame = new TwoSetItemSelectionFrame();
jItemSelectionTwoSet_MV_GTestFrame.setLocation(50, 50);
jItemSelectionTwoSet_MV_GTestFrame.setSize(650, 650);
jItemSelectionTwoSet_MV_GTestFrame.setVisible(true);
}
private void jMenuItemInsertSystemCharacteristicsActionPerformed(ActionEvent evt) {
if (!ensureDatafilesOpened(evt)) return;
JFrame jItemSelectionSystemCharacteristicsTestFrame = new SystemCharacteristicsItemSelectionFrame();
jItemSelectionSystemCharacteristicsTestFrame.setLocation(50, 50);
jItemSelectionSystemCharacteristicsTestFrame.setSize(650, 650);
jItemSelectionSystemCharacteristicsTestFrame.setVisible(true);
}
private void jMenuItemInsertW1ActionPerformed(ActionEvent evt) { // implementieren "W1"
if (!ensureDatafilesOpened(evt)) return;
JFrame jItemSelectionW1TestFrame = new W1ItemSelectionFrame();
jItemSelectionW1TestFrame.setLocation(50, 50);
jItemSelectionW1TestFrame.setSize(650, 650);
jItemSelectionW1TestFrame.setVisible(true);
}
private void jMenuItemInsertW2ActionPerformed(ActionEvent evt) {
if (!ensureDatafilesOpened(evt)) return;
JFrame jItemSelectionW2TestFrame = new W2ItemSelectionFrame();
jItemSelectionW2TestFrame.setLocation(50, 50);
jItemSelectionW2TestFrame.setSize(650, 650);
jItemSelectionW2TestFrame.setVisible(true);
}
private void jMenuItemInsertTestItemsActionPerformed(ActionEvent evt) {
if (!ensureDatafilesOpened(evt)) return;
JFrame jItemSelectionTestItemsTestFrame = new TestItemsItemSelectionFrame();
jItemSelectionTestItemsTestFrame.setLocation(50, 50);
jItemSelectionTestItemsTestFrame.setSize(650, 650);
jItemSelectionTestItemsTestFrame.setVisible(true);
}
private void jMenuItemInsertHeaderFooterActionPerformed(ActionEvent evt) { // implementieren "W2"
if (!ensureDatafilesOpened(evt)) return;
JLatexPanel.insertHeaderFooter();
}
private void jMenuItemLatexGenRepActionPerformed(ActionEvent evt) {
if (!ensureDatafilesOpened(evt)) return;
JLatexPanel.genStdRep();
jTabbedPaneMain.setSelectedComponent(jPanelLatex);
}
private void jMenuItemLatexOpenActionPerformed(ActionEvent evt) {
JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
this.jTabbedPaneMain.setSelectedComponent(jPanelLatex);
JLatexPanel.getContentOfTexFileIntoPanel(fc.getSelectedFile());
}
if (returnVal == JFileChooser.CANCEL_OPTION) {
return;
}
if (returnVal == JFileChooser.ERROR_OPTION) {
Helper.ok("Latex Open hat einen Fehler.");
return;
}
}
private void jMenuItemLatexSaveActionPerformed(ActionEvent evt) {
if (JLatexPanel.reportFile == null) {
jMenuItemLatexSaveAsActionPerformed(evt);
} else {
JLatexPanel.pushContentInFile(JLatexPanel.reportFile);
}
}
private void jMenuItemLatexSaveAsActionPerformed(ActionEvent evt) {
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = fc.showSaveDialog(this);
if (returnVal == JFileChooser.CANCEL_OPTION) {
return;
}
if (returnVal == JFileChooser.ERROR_OPTION) {
Helper.ok("Latex Save hatte einen Fehler.");
return;
}
if (returnVal == JFileChooser.APPROVE_OPTION) {
JLatexPanel.savefullReport(fc.getSelectedFile());
jMenuItemLatexSaveActionPerformed(evt);
}
}
private void jMenuItemLatexRunSweaveActionPerformed(ActionEvent evt) {
if (JLatexPanel.reportFile == null) {
jMenuItemLatexSaveAsActionPerformed(evt);
}
JLatexPanel.runSweave();
}
private void jMenuItemLatexRunSweaveAndGeneratePdfActionPerformed(ActionEvent evt) {
// if (JLatexPanel.reportFile == null) {
JLatexPanel.generatePDF();
// absolutePathToTex = COMMAND;
}
private void jMenuItemLatexViewGeneratedPdfActionPerformed(ActionEvent evt) {
String absolutePathtoPDF = JLatexPanel.reportFile.getPath().substring(0,JLatexPanel.reportFile.getPath().length()-3).replace('\\', '/') + "pdf";
log.info("trying to open " + absolutePathtoPDF);
boolean triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
if (System.getProperty("os.name").toLowerCase().startsWith("windows")) {
try {
Runtime.getRuntime().exec("AcroRD32 " + absolutePathtoPDF);
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("windows")) {
try {
Runtime.getRuntime().exec("foxit " + absolutePathtoPDF);
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("linux")) {
try {
Runtime.getRuntime().exec("xpdf " + absolutePathtoPDF);
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("linux")) {
try {
Runtime.getRuntime().exec("evince " + absolutePathtoPDF);
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("linux")) {
try {
Runtime.getRuntime().exec("acroread " + absolutePathtoPDF);
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("linux")) {
try {
Runtime.getRuntime().exec("xpdf " + absolutePathtoPDF);
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("linux")) {
try {
Runtime.getRuntime().exec("kpdf " + absolutePathtoPDF);
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (triedAcrobatReaderOrAcrobatReaderDerivatDoesExist == true) {
return;
} else {
JOptionPane.showMessageDialog(this,
"No PDF-Viewer available, because AcrobatReader is not installed. Please install AcrobatReader.",
"Error", JOptionPane.PLAIN_MESSAGE);
}
}
private void jMenuItemHelpContentsActionPerformed(ActionEvent evt) {
boolean triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
if (System.getProperty("os.name").toLowerCase().startsWith("windows")) {
try {
Runtime.getRuntime().exec("AcroRD32 manual\\manual.pdf");
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("windows")) {
try {
Runtime.getRuntime().exec("foxit manual\\manual.pdf");
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("linux")) {
try {
Runtime.getRuntime().exec("xpdf ./manual/manual.pdf");
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("linux")) {
try {
Runtime.getRuntime().exec("evince ./manual/manual.pdf");
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("linux")) {
try {
Runtime.getRuntime().exec("acroread ./manual/manual.pdf");
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("linux")) {
try {
Runtime.getRuntime().exec("xpdf ./manual/manual.pdf");
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (System.getProperty("os.name").toLowerCase().startsWith("linux")) {
try {
Runtime.getRuntime().exec("kpdf ./manual/manual.pdf");
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = true;
return;
} catch (Exception e) {
triedAcrobatReaderOrAcrobatReaderDerivatDoesExist = false;
}
}
if (triedAcrobatReaderOrAcrobatReaderDerivatDoesExist == true) {
return;
} else {
JOptionPane.showMessageDialog(this,
"No Help available, because AcrobatReader is not installed. Please install AcrobatReader.",
"Error", JOptionPane.PLAIN_MESSAGE);
}
}
private void jMenuItemHelpAboutActionPerformed(ActionEvent evt) {
Helper.ok(
"ISOPtool \n version 0.6 \n 2006-2007"
+ "Contributors. All Rights Reserved. ISOPtool and the "
+ "ISOPtool \n logos are trademarks of Stefan Nachtnebel \n"
+ " and Zdenko Brühl. All rights reserved. \n "
+ "Many thanks to our Friends & Contributors \n");
}
// Business Methods
/**
* Diese Methode wird aufgerufen, wenn das GUI Fenster geschlossen wird
*/
private void terminateApplication() {
log.info("Closing MainFrame and Exit");
System.exit(0);
}
// TODO: add selects for
// jRClientPanel; // R
// jPanelLatex; // Latex
public static void selectDataPanel() {
jTabbedPaneMain.setSelectedComponent(jPanelData);
}
public static void selectTablePanel() {
jTabbedPaneMain.setSelectedComponent(jPanelTables);
}
public static void selectPlotPanel() {
jTabbedPaneMain.setSelectedComponent(jPanelPlot);
}
public static void selectLatexPanel() {
jTabbedPaneMain.setSelectedComponent(jPanelLatex);
}
private boolean ensureDatafilesOpened(ActionEvent evt) {
if (dao.Controller.getDatafileCount() == 0) {
// Helper.ok("No Datafile loaded. Please select one or more data files.");
jMenuItemFileOpenDatafileActionPerformed(evt);
}
return (dao.Controller.getDatafileCount() > 0);
}
}