123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- 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 ui.model.*;
- 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;
- import javax.swing.JTextField;
- import javax.swing.JToolBar;
- import javax.swing.JButton;
- import javax.swing.JList;
- import javax.swing.ListSelectionModel;
- import javax.swing.AbstractListModel;
- import java.awt.Choice;
- import javax.swing.JComboBox;
- import javax.swing.DefaultComboBoxModel;
- import javax.swing.GroupLayout;
- import javax.swing.GroupLayout.Alignment;
- import java.awt.GridBagLayout;
- import java.awt.GridBagConstraints;
- import java.awt.Font;
- 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();
- private Model model;
- private final JPanel panel = new JPanel();
- private final JTextField textField = new JTextField();
- private final JComboBox comboBox = new JComboBox();
- private final JButton btnAdd = new JButton("Add");
- private final JToolBar toolBar = new JToolBar();
-
-
- public GUI(Model model) {
- this.model = model;
- initialize();
- }
-
- @SuppressWarnings("serial")
- private void initialize() {
- textField.setColumns(10);
- 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);
-
-
- 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);
- frmCyberPhysical.getContentPane().setLayout(new BorderLayout(0, 0));
- splitPane_2.setDividerLocation(200);
-
- splitPane.setLeftComponent(scrollPane_1);
- tree.setEditable(true);
-
-
- scrollPane_1.setViewportView(tree);
-
- scrollPane_1.setColumnHeaderView(panel);
- panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
- toolBar.setFloatable(false);
-
- panel.add(toolBar);
- toolBar.add(comboBox);
- comboBox.setModel(new DefaultComboBoxModel(new String[] {"Category", "Object"}));
- toolBar.add(btnAdd);
- panel.add(textField);
- frmCyberPhysical.getContentPane().add(splitPane);
-
- 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());
- }
- }
- });
-
- }
-
-
- public void refreshCategories(){
- tree.setModel(new DefaultTreeModel(
- new DefaultMutableTreeNode("Categories") {
- {
- DefaultMutableTreeNode node_1;
- for (Category c : model.getCategories()) {
- node_1 = new DefaultMutableTreeNode(c.getName());
-
-
- for (CpsObject hol : c.getObjects()) {
- node_1.add(new DefaultMutableTreeNode(hol.getObjName()));
- }
- add(node_1);
- }
-
- }
- }
- ));
- }
-
- public JFrame getFrmCyberPhysical() {
- return frmCyberPhysical;
- }
- }
|