-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.threadlog.ui;\r
-\r
-import java.awt.GridLayout;\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ActionListener;\r
-import java.io.IOException;\r
-\r
-import javax.swing.JButton;\r
-import javax.swing.JFileChooser;\r
-import javax.swing.JFrame;\r
-import javax.swing.filechooser.FileNameExtensionFilter;\r
-\r
-import org.simantics.threadlog.ThreadLog;\r
-\r
-public class ThreadLogController extends JFrame {\r
-\r
- private static final long serialVersionUID = -2487997716157625672L;\r
- \r
- boolean isLogging = false;\r
- JButton logButton;\r
- JButton loadButton;\r
-\r
- public ThreadLogController() {\r
- super("Thread log controller");\r
- setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);\r
-\r
- logButton = new JButton("Start logging");\r
- logButton.addActionListener(new ActionListener() {\r
-\r
- @Override\r
- public void actionPerformed(ActionEvent e) {\r
- if(isLogging) {\r
- logButton.setText("Start logging");\r
- isLogging = false;\r
- ThreadLog log = ThreadLog.setDefaultThreadLog(null);\r
-\r
- ThreadLogVisualizer visualizer = new ThreadLogVisualizer();\r
- visualizer.setLog(log);\r
- visualizer.setVisible(true);\r
- }\r
- else {\r
- logButton.setText("Stop logging");\r
- isLogging = true;\r
- ThreadLog.setDefaultThreadLog(new ThreadLog());\r
- }\r
- }\r
-\r
- });\r
- loadButton = new JButton("Load log");\r
- loadButton.addActionListener(new ActionListener() {\r
- @Override\r
- public void actionPerformed(ActionEvent e) {\r
- JFileChooser chooser = new JFileChooser();\r
- FileNameExtensionFilter filter = new FileNameExtensionFilter(\r
- "Thread Logs (*.tlog)", "tlog", "tlog");\r
- chooser.setFileFilter(filter);\r
- int returnVal = chooser.showOpenDialog(ThreadLogController.this);\r
- if (returnVal != JFileChooser.APPROVE_OPTION)\r
- return;\r
-\r
- try {\r
- ThreadLog log = ThreadLog.deserialize(chooser.getSelectedFile());\r
- ThreadLogVisualizer visualizer = new ThreadLogVisualizer();\r
- visualizer.setLog(log);\r
- visualizer.setVisible(true);\r
- } catch (IOException ex) {\r
- ex.printStackTrace();\r
- }\r
- }\r
- });\r
- getContentPane().setLayout(new GridLayout(2, 1));\r
- getContentPane().add(logButton);\r
- getContentPane().add(loadButton);\r
-\r
- setSize(200, 100);\r
- }\r
-\r
- public static void start() {\r
- javax.swing.SwingUtilities.invokeLater(new Runnable() {\r
- public void run() {\r
- new ThreadLogController().setVisible(true);\r
- }\r
- });\r
- }\r
-\r
- public static void main(String[] args) {\r
- start();\r
- }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.threadlog.ui;
+
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.IOException;
+
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.filechooser.FileNameExtensionFilter;
+
+import org.simantics.threadlog.ThreadLog;
+
+public class ThreadLogController extends JFrame {
+
+ private static final long serialVersionUID = -2487997716157625672L;
+
+ boolean isLogging = false;
+ JButton logButton;
+ JButton loadButton;
+
+ public ThreadLogController() {
+ super("Thread log controller");
+ setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+
+ logButton = new JButton("Start logging");
+ logButton.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if(isLogging) {
+ logButton.setText("Start logging");
+ isLogging = false;
+ ThreadLog log = ThreadLog.setDefaultThreadLog(null);
+
+ ThreadLogVisualizer visualizer = new ThreadLogVisualizer();
+ visualizer.setLog(log);
+ visualizer.setVisible(true);
+ }
+ else {
+ logButton.setText("Stop logging");
+ isLogging = true;
+ ThreadLog.setDefaultThreadLog(new ThreadLog());
+ }
+ }
+
+ });
+ loadButton = new JButton("Load log");
+ loadButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ JFileChooser chooser = new JFileChooser();
+ FileNameExtensionFilter filter = new FileNameExtensionFilter(
+ "Thread Logs (*.tlog)", "tlog", "tlog");
+ chooser.setFileFilter(filter);
+ int returnVal = chooser.showOpenDialog(ThreadLogController.this);
+ if (returnVal != JFileChooser.APPROVE_OPTION)
+ return;
+
+ try {
+ ThreadLog log = ThreadLog.deserialize(chooser.getSelectedFile());
+ ThreadLogVisualizer visualizer = new ThreadLogVisualizer();
+ visualizer.setLog(log);
+ visualizer.setVisible(true);
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+ });
+ getContentPane().setLayout(new GridLayout(2, 1));
+ getContentPane().add(logButton);
+ getContentPane().add(loadButton);
+
+ setSize(200, 100);
+ }
+
+ public static void start() {
+ javax.swing.SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ new ThreadLogController().setVisible(true);
+ }
+ });
+ }
+
+ public static void main(String[] args) {
+ start();
+ }
+
+}