package ui.view; import java.awt.EventQueue; import java.io.File; import javax.swing.JFrame; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.JTree; import javax.swing.BoxLayout; import javax.swing.JSplitPane; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.JEditorPane; import javax.swing.JFileChooser; import javax.swing.table.DefaultTableModel; import java.awt.Color; import java.awt.Component; import java.awt.Window.Type; import javax.swing.JInternalFrame; import java.awt.BorderLayout; import javax.swing.JPanel; public class GUI { private JFrame frmCyberPhysical; private final JMenuBar menuBar = new JMenuBar(); private final JMenu mnNewMenu = new JMenu("File"); private final JMenu mnNewMenu_1 = new JMenu("Edit"); private final JMenu mnNewMenu_2 = new JMenu("Options"); private final JMenu mnNewMenu_3 = new JMenu("View"); private final JMenu mnHelp = new JMenu("Help"); private final JMenuItem mntmOpen = new JMenuItem("Open"); private JMenuItem mntmNew = new JMenuItem("New"); private final JMenuItem mntmSave = new JMenuItem("Save"); private final JSplitPane splitPane = new JSplitPane(); private final JSplitPane splitPane_1 = new JSplitPane(); private final JScrollPane scrollPane_1 = new JScrollPane(); private final JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); private final JScrollPane scrollPane_2 = new JScrollPane(); private final MyCanvas canvas = new MyCanvas(); private final JTree tree = new JTree(); private final JEditorPane dtrpnHereWillBe = new JEditorPane(); private final JSplitPane splitPane_2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT); private JTable table; private final JTable table_2 = new JTable(); /** * Launch the application. */ public static void main(String[] args) { //*Design try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } EventQueue.invokeLater(new Runnable() { public void run() { try { GUI window = new GUI(); window.frmCyberPhysical.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the application. */ public GUI() { initialize(); } /** * Initialize the contents of the frame. */ @SuppressWarnings("serial") private void initialize() { frmCyberPhysical = new JFrame(); frmCyberPhysical.setTitle("Cyber Physical Systems Model"); frmCyberPhysical.setBounds(100, 100, 891, 467); frmCyberPhysical.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frmCyberPhysical.setJMenuBar(menuBar); menuBar.add(mnNewMenu); mnNewMenu.add(mntmNew); mnNewMenu.add(mntmOpen); mnNewMenu.add(mntmSave); menuBar.add(mnNewMenu_1); menuBar.add(mnNewMenu_2); menuBar.add(mnNewMenu_3); menuBar.add(mnHelp); frmCyberPhysical.getContentPane().setLayout(new BoxLayout(frmCyberPhysical.getContentPane(), BoxLayout.X_AXIS)); frmCyberPhysical.getContentPane().add(splitPane); //Table String[] columnNames = {"Consumer", "Units", "Number"}; Object[][] data = { {"TV", "20", "1"}, {"PC", "30", "2"}, {"Fridge", "40","1"} }; splitPane.setRightComponent(splitPane_1); splitPane.setDividerLocation(200); splitPane_1.setDividerLocation(500); canvas.setBackground(Color.WHITE); tabbedPane.addTab("Modeling", null, canvas, null); tabbedPane.addTab("Simulation", null, scrollPane_2, null); dtrpnHereWillBe.setText("Here will be the Simulation"); scrollPane_2.setViewportView(dtrpnHereWillBe); splitPane_1.setLeftComponent(tabbedPane); JScrollPane scrollPane = new JScrollPane(); splitPane_1.setRightComponent(splitPane_2); splitPane_2.setLeftComponent(scrollPane); table = new JTable(data, columnNames); scrollPane.setViewportView(table); table.setFillsViewportHeight(true); table.setModel(new DefaultTableModel( data, columnNames )); table.setCellSelectionEnabled(true); table.setColumnSelectionAllowed(true); JScrollPane scrollPane_3 = new JScrollPane(); splitPane_2.setRightComponent(scrollPane_3); scrollPane_3.setViewportView(table_2); table_2.setFillsViewportHeight(true); table_2.setModel(new DefaultTableModel( new Object[][] { {"Solar", "23", "10"}, {"Generator", "24", "1"}, {"Something Else", "25", "3"}, }, new String[] { "Producer", "Units", "Number" } )); table_2.getColumnModel().getColumn(0).setPreferredWidth(103); table_2.getColumnModel().getColumn(1).setPreferredWidth(107); table_2.getColumnModel().getColumn(2).setPreferredWidth(125); splitPane_2.setDividerLocation(200); splitPane.setLeftComponent(scrollPane_1); tree.setEditable(true); tree.setModel(new DefaultTreeModel( new DefaultMutableTreeNode("Components") { { DefaultMutableTreeNode node_1; node_1 = new DefaultMutableTreeNode("PowerPlant"); node_1.add(new DefaultMutableTreeNode("Standart P.P")); node_1.add(new DefaultMutableTreeNode("Power PowerPlant")); add(node_1); node_1 = new DefaultMutableTreeNode("Houses"); node_1.add(new DefaultMutableTreeNode("Hospital")); node_1.add(new DefaultMutableTreeNode("Standart House")); node_1.add(new DefaultMutableTreeNode("Castle")); node_1.add(new DefaultMutableTreeNode("Arena")); add(node_1); node_1 = new DefaultMutableTreeNode("Cars"); node_1.add(new DefaultMutableTreeNode("Small Car")); node_1.add(new DefaultMutableTreeNode("Medium Car")); node_1.add(new DefaultMutableTreeNode("Big Car")); node_1.add(new DefaultMutableTreeNode("Invisible Car")); add(node_1); } } )); scrollPane_1.setViewportView(tree); mntmOpen.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(java.awt.event.ActionEvent evt) { menuFileExitActionPerformed(evt); } private void menuFileExitActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser(); JFrame test = new JFrame(); if (fileChooser.showOpenDialog(test) == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); System.out.println("File Path is: "+file.toString()); } } }); } }