import chemaxon.marvin.beans.MViewPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
import java.io.IOException;
@author
@author
@version
@since
public class ViewSimple extends JPanel {
private MViewPane viewPane;
private JFileChooser fileChooser = null;
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run() {
createAndShowGUI();
}
});
}
private static void createAndShowGUI() {
JFrame frame = new JFrame();
frame.setTitle("Simple MarvinView Bean Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ViewSimple viewSimple = new ViewSimple();
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(viewSimple, BorderLayout.CENTER);
viewSimple.addMenuBar(frame);
frame.pack();
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public ViewSimple() {
viewPane = new MViewPane();
setLayout(new BorderLayout());
add(viewPane, BorderLayout.CENTER);
}
public void addMenuBar(JFrame frame) {
JMenuBar menubar = new JMenuBar();
frame.setJMenuBar(menubar);
JMenu fileMenu = new JMenu("File");
fileMenu.add(createOpenMenuItem());
fileMenu.add(createExitMenuItem(frame));
menubar.add(fileMenu);
JMenu viewMenu = new JMenu("View");
viewPane.makeViewMenu(viewMenu);
menubar.add(viewMenu);
}
private JMenuItem createOpenMenuItem() {
JMenuItem openMI = new JMenuItem("Open");
openMI.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
if(fileChooser == null) {
fileChooser = new JFileChooser();
}
if((fileChooser.showOpenDialog(viewPane)
== JFileChooser.APPROVE_OPTION)
&& (fileChooser.getSelectedFile().canRead())) {
viewPane.setM(0, fileChooser.getSelectedFile(), null);
}
}
});
return openMI;
}
private JMenuItem createExitMenuItem(final JFrame frame) {
JMenuItem exitMI = new JMenuItem("Exit");
exitMI.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
windowClosing(frame);
}
});
return exitMI;
}
private synchronized void windowClosing(final JFrame frame) {
try {
viewPane.getUserSettings().save("Settings of SimpleViewer");
} catch(IOException ioe) {
ioe.printStackTrace();
}
viewPane.exit();
frame.dispose();
}
}