Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.10 KB | None | 0 0
  1. package com.t99sdevelopment;
  2.  
  3. // Created by Trevor Sears <trevorsears.main@gmail.com> @ 11:45AM - March 16th, 2017.
  4.  
  5. import java.awt.*;
  6. import java.awt.event.MouseAdapter;
  7. import java.awt.event.MouseEvent;
  8. import javax.swing.*;
  9.  
  10. public class Window extends JFrame implements Runnable{
  11.  
  12. public static LogListModel log = new LogListModel();
  13.  
  14. private static JFrame frame = new JFrame();
  15.  
  16. private static JMenuBar menuBar = new JMenuBar();
  17. private static JMenu file_Menu = new JMenu("File");
  18. private static JMenuItem open_File_MenuItem = new JMenuItem("Open...");
  19. private static JMenuItem reset_File_MenuItem = new JMenuItem("Reset Log");
  20. private static JMenuItem close_File_MenuItem = new JMenuItem("Close");
  21. private static JMenu edit_Menu = new JMenu("Edit");
  22. private static JMenuItem undo_Edit_MenuItem = new JMenuItem("Undo");
  23. private static JMenuItem redo_Edit_MenuItem = new JMenuItem("Redo");
  24. private static JMenu about_Menu = new JMenu("About");
  25.  
  26. private static JPanel panel = new JPanel(new GridBagLayout());
  27. private static JLabel time_Label = new JLabel();
  28. private static JButton submit_Button = new JButton();
  29. private static JTextField event_TextField = new JTextField();
  30. static JList log_List = new JList(log.toArray()); //not sure if this being public is the best solution to the problem...
  31. private static JPopupMenu logCell_PopupMenu = new JPopupMenu();
  32. private static JMenuItem edit_logCell_MenuItem = new JMenuItem();
  33. private static JMenuItem delete_logCell_MenuItem = new JMenuItem();
  34. private static JScrollPane scrollPane = new JScrollPane(log_List, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  35. private static JButton close_Button = new JButton();
  36.  
  37. private static JDialog edit_Dialog = new JDialog(frame);
  38. private static JPanel edit_Dialog_Panel = new JPanel();
  39. private static JTextField edit_Dialog_edit_TextField = new JTextField();
  40. private static JPanel edit_Dialog_subpanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 0));
  41. private static JButton edit_Dialog_submit_Button = new JButton();
  42. private static JButton edit_Dialog_cancel_Button = new JButton();
  43.  
  44. private static EventLogListener eventLogActionListener = new EventLogListener();
  45. private static LogEditorListener logEditorActionListener = new LogEditorListener();
  46. private static ShutdownListener shutdownActionListener = new ShutdownListener(0);
  47.  
  48. private static GridBagConstraints constraints = new GridBagConstraints();
  49. private static Dimension dimension = new Dimension(500, 200);
  50.  
  51. public static void showWindow() {
  52.  
  53. initializeWindow();
  54. frame.setVisible(true);
  55.  
  56. }
  57.  
  58. private static void initializeWindow(){
  59.  
  60. initializeRightMousePopupMenu();
  61. initializeLogItemEditDialog();
  62. initializeMenuBar();
  63. frame.setJMenuBar(menuBar);
  64. initializePanel();
  65. frame.add(panel);
  66. frame.setTitle("organize");
  67. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  68. frame.setMinimumSize(dimension);
  69. frame.setResizable(false);
  70. frame.pack();
  71. frame.setLocationRelativeTo(null);
  72. edit_Dialog.setLocationRelativeTo(null);
  73.  
  74. }
  75.  
  76. private static void initializePanel(){
  77.  
  78. // Time JLabel (time_Label) option setting...
  79. time_Label.setHorizontalAlignment(JTextField.CENTER);
  80. time_Label.setFont(new Font("Serif", Font.BOLD, 18));
  81. constraints.gridx = 0;
  82. constraints.gridy = 0;
  83. constraints.gridwidth = 3;
  84. constraints.gridheight = 1;
  85. constraints.weightx = 0.5;
  86. constraints.weighty = 0.05;
  87. constraints.fill = GridBagConstraints.HORIZONTAL;
  88. constraints.insets = new Insets(5,0,0,0);
  89. panel.add(time_Label, constraints);
  90.  
  91. // Submit JButton (submit_Button) option setting...
  92. submit_Button.setText("Submit");
  93. submit_Button.addActionListener(eventLogActionListener);
  94. constraints.gridx = 0;
  95. constraints.gridy = 1;
  96. constraints.gridwidth = 1;
  97. constraints.gridheight = 1;
  98. constraints.weightx = 0.05;
  99. constraints.weighty = 0.1;
  100. constraints.fill = GridBagConstraints.HORIZONTAL;
  101. constraints.insets = new Insets(0,5,5,3);
  102. panel.add(submit_Button, constraints);
  103.  
  104. // Event JTextField (event_TextField) option setting...
  105. event_TextField.setColumns(50);
  106. event_TextField.setEditable(true);
  107. event_TextField.addActionListener(eventLogActionListener);
  108. constraints.gridx = 1;
  109. constraints.gridy = 1;
  110. constraints.gridwidth = 2;
  111. constraints.gridheight = 1;
  112. constraints.weightx = 0.95;
  113. constraints.weighty = 0.1;
  114. constraints.fill = GridBagConstraints.HORIZONTAL;
  115. constraints.insets = new Insets(0,3,5,5);
  116. panel.add(event_TextField, constraints);
  117.  
  118. // Logs JTextArea (logs_TextArea) option setting...
  119. log_List.setModel(log);
  120. constraints.gridx = 0;
  121. constraints.gridy = 2;
  122. constraints.gridwidth = 3;
  123. constraints.gridheight = 1;
  124. constraints.weightx = 0.5;
  125. constraints.weighty = 0.9;
  126. constraints.ipady = 40;
  127. constraints.fill = GridBagConstraints.BOTH;
  128. constraints.insets = new Insets(0,5,0,5);
  129. panel.add(scrollPane, constraints);
  130.  
  131. // Close JButton (close_Button) option setting...
  132. close_Button.setText("Close");
  133. close_Button.addActionListener(shutdownActionListener);
  134. constraints.gridx = 2;
  135. constraints.gridy = 3;
  136. constraints.gridwidth = 1;
  137. constraints.gridheight = 1;
  138. constraints.weightx = 1;
  139. constraints.weighty = 0.05;
  140. constraints.ipady = 0;
  141. constraints.fill = GridBagConstraints.NONE;
  142. constraints.anchor = GridBagConstraints.LINE_END;
  143. constraints.insets = new Insets(0,0,0,10);
  144. panel.add(close_Button, constraints);
  145.  
  146. }
  147.  
  148. private static void initializeMenuBar(){
  149.  
  150. open_File_MenuItem.setToolTipText("This doesn't do anything right now!");
  151. undo_Edit_MenuItem.setToolTipText("This doesn't do anything right now!");
  152. redo_Edit_MenuItem.setToolTipText("This doesn't do anything right now!");
  153. about_Menu.setToolTipText("This doesn't do anything right now!");
  154.  
  155. reset_File_MenuItem.addActionListener(n -> log.clear());
  156. close_File_MenuItem.addActionListener(shutdownActionListener);
  157.  
  158. file_Menu.add(open_File_MenuItem);
  159. file_Menu.addSeparator();
  160. file_Menu.add(reset_File_MenuItem);
  161. file_Menu.add(close_File_MenuItem);
  162.  
  163.  
  164. edit_Menu.add(undo_Edit_MenuItem);
  165. edit_Menu.add(redo_Edit_MenuItem);
  166.  
  167. menuBar.add(file_Menu);
  168. menuBar.add(edit_Menu);
  169. menuBar.add(about_Menu);
  170.  
  171. }
  172.  
  173. private static void initializeRightMousePopupMenu(){
  174.  
  175. log_List.addMouseListener(new MouseAdapter(){
  176.  
  177. public void mouseReleased(MouseEvent e){
  178.  
  179. if(SwingUtilities.isRightMouseButton(e)){
  180.  
  181. log_List.setSelectedIndex(log_List.locationToIndex(e.getPoint()));
  182. edit_Dialog_edit_TextField.setText(log.getEvent(log_List.getSelectedIndex()));
  183. logCell_PopupMenu.show(e.getComponent(), e.getX(), e.getY());
  184.  
  185. }
  186.  
  187. }
  188.  
  189. });
  190.  
  191. edit_logCell_MenuItem.setText("Edit");
  192. edit_logCell_MenuItem.addActionListener(e -> edit_Dialog.setVisible(true));
  193. logCell_PopupMenu.add(edit_logCell_MenuItem);
  194.  
  195. delete_logCell_MenuItem.setText("Delete");
  196. delete_logCell_MenuItem.addActionListener(e -> log.remove(log_List.getSelectedIndex()));
  197. logCell_PopupMenu.add(delete_logCell_MenuItem);
  198.  
  199. }
  200.  
  201. private static void initializeLogItemEditDialog(){
  202.  
  203. edit_Dialog_Panel.setLayout(new BoxLayout(edit_Dialog_Panel, BoxLayout.Y_AXIS));
  204.  
  205. edit_Dialog_Panel.add(Box.createRigidArea(new Dimension(0, 5)));
  206.  
  207. // Edit JTextField (edit_Dialog_edit_TextField) option setting...
  208. edit_Dialog_edit_TextField.setColumns(50);
  209. edit_Dialog_edit_TextField.addActionListener(logEditorActionListener);
  210. edit_Dialog_Panel.add(edit_Dialog_edit_TextField);
  211.  
  212. edit_Dialog_Panel.add(Box.createRigidArea(new Dimension(0, 5)));
  213.  
  214. edit_Dialog_subpanel.add(Box.createRigidArea(new Dimension(250, 0)));
  215.  
  216. // Submit JButton (edit_Dialog_submit_Button) option setting...
  217. edit_Dialog_submit_Button.setText("OK");
  218. edit_Dialog_submit_Button.addActionListener(logEditorActionListener);
  219. edit_Dialog_subpanel.add(edit_Dialog_submit_Button);
  220.  
  221. // Cancel JButton (edit_Dialog_cancel_Button) option setting...
  222. edit_Dialog_cancel_Button.setText("Cancel");
  223. edit_Dialog_cancel_Button.addActionListener(e -> disposeEditDialog());
  224. edit_Dialog_subpanel.setBackground(new Color(35, 100, 50, 1));
  225. edit_Dialog_subpanel.add(edit_Dialog_cancel_Button);
  226.  
  227. edit_Dialog_Panel.add(edit_Dialog_subpanel);
  228. edit_Dialog_Panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
  229.  
  230. edit_Dialog.setModal(true);
  231. edit_Dialog.setSize(new Dimension(500, 150));
  232. edit_Dialog.setTitle("Edit");
  233. edit_Dialog.add(edit_Dialog_Panel);
  234. edit_Dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  235. edit_Dialog.pack();
  236.  
  237. }
  238.  
  239. public static void appendNewEvent(String event){
  240.  
  241. log.addElement(new LogItem(event));
  242.  
  243. log_List.ensureIndexIsVisible(log_List.getModel().getSize() - 1);
  244.  
  245. event_TextField.setText("");
  246.  
  247. }
  248.  
  249. public static String getEventLogText(){
  250.  
  251. return event_TextField.getText();
  252.  
  253. }
  254.  
  255. public static String getEditedDialogText(){
  256.  
  257. return edit_Dialog_edit_TextField.getText();
  258.  
  259. }
  260.  
  261. public static void disposeEditDialog(){
  262.  
  263. edit_Dialog.dispose();
  264.  
  265. }
  266.  
  267. public void run() {
  268.  
  269. while(true){
  270.  
  271. time_Label.setText(DateChanger.getTime());
  272.  
  273. }
  274.  
  275. }
  276.  
  277. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement