summaryrefslogtreecommitdiffstats
path: root/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e1/b038af7f9af2001019c79f38f40e52ba
diff options
context:
space:
mode:
Diffstat (limited to 'Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e1/b038af7f9af2001019c79f38f40e52ba')
-rw-r--r--Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e1/b038af7f9af2001019c79f38f40e52ba135
1 files changed, 135 insertions, 0 deletions
diff --git a/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e1/b038af7f9af2001019c79f38f40e52ba b/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e1/b038af7f9af2001019c79f38f40e52ba
new file mode 100644
index 0000000..5218ef2
--- /dev/null
+++ b/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e1/b038af7f9af2001019c79f38f40e52ba
@@ -0,0 +1,135 @@
+import sys
+import locale
+import pygtk
+import gtk #@UnresolvedImport
+import gtk.glade #@UnresolvedImport
+from pyCatcherModel import BaseStationInformation
+from xdot import DotWidget
+import datetime
+import time
+
+class PyCatcherGUI:
+
+ def __init__(self, catcher_controller):
+ encoding = locale.getlocale()[1]
+ self._utf8conv = lambda x : unicode(x, encoding).encode('utf8')
+
+ self._scan_toggled_on = False
+ self._firmware_toggled_on = False
+
+ self._catcher_controller = catcher_controller
+
+ self._w_tree = gtk.glade.XML("../GUI/mainWindow.glade")
+
+ self._bs_tree_view = self._w_tree.get_widget("bs_table")
+ self._add_column("Provider", 0)
+ self._add_column("Frequency", 1)
+ self._add_column("Strength",2)
+ self._add_column("Last seen", 3)
+ self._bs_tree_view.set_model(self._catcher_controller.bs_tree_list_data)
+
+ self._horizontal_container = self._w_tree.get_widget("vbox4")
+ self._dot_widget = DotWidget()
+ self._horizontal_container.pack_start_defaults(self._dot_widget)
+ self._dot_widget.show()
+
+ self._main_window = self._w_tree.get_widget("main_window")
+ signals = {"on_main_window_destroy": self._on_main_window_destroy,
+ "on_scan_toggle_toggled": self._on_toggle_scan,
+ "on_firmware_toggle_toggled": self._on_toggle_firmware,
+ "on_graph_zoom_in_clicked": self._dot_widget.on_zoom_in,
+ "on_graph_zoom_out_clicked": self._dot_widget.on_zoom_out,
+ "on_graph_fit_clicked": self._dot_widget.on_zoom_fit,
+ "on_graph_zoom_default_clicked": self._dot_widget.on_zoom_100,
+ "on_save_project_clicked": self._on_save_project,
+ "on_open_file_clicked": self._on_open_file
+ }
+ self._w_tree.signal_autoconnect(signals)
+
+ log_view = self._w_tree.get_widget("log_output")
+ self._log_buffer = log_view.get_buffer()
+ self._log_buffer.insert(self._log_buffer.get_end_iter(),self._utf8conv("-- Log execution on " + datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M %p") + " --\n\n"))
+
+ self._main_window.show()
+
+
+ def _add_column(self, name, index):
+ column = gtk.TreeViewColumn(name, gtk.CellRendererText(), text=index)
+ column.set_resizable(True)
+ column.set_sort_column_id(index)
+ self._bs_tree_view.append_column(column)
+
+ def _on_main_window_destroy(self, widget):
+ self._catcher_controller.shutdown()
+ gtk.main_quit()
+
+ def _on_toggle_scan(self, widget):
+ if(not self._scan_toggled_on):
+ self._catcher_controller.start_scan()
+ self._scan_toggled_on = True
+ else:
+ self._catcher_controller.stop_scan()
+ self._scan_toggled_on = False
+
+ def _on_toggle_firmware(self, widget):
+ if(not self._firmware_toggled_on):
+ self._catcher_controller.start_firmware()
+ self._firmware_toggled_on = True
+ else:
+ self._catcher_controller.stop_firmware()
+ self._firmware_toggled_on = False
+
+ def _on_open_file(self, widget):
+ chooser = gtk.FileChooserDialog(title="Open dot File",
+ action=gtk.FILE_CHOOSER_ACTION_OPEN,
+ buttons=(gtk.STOCK_CANCEL,
+ gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OPEN,
+ gtk.RESPONSE_OK))
+ chooser.set_default_response(gtk.RESPONSE_OK)
+ filter = gtk.FileFilter()
+ filter.set_name("Graphviz dot files")
+ filter.add_pattern("*.dot")
+ chooser.add_filter(filter)
+ filter = gtk.FileFilter()
+ filter.set_name("All files")
+ filter.add_pattern("*")
+ chooser.add_filter(filter)
+ if chooser.run() == gtk.RESPONSE_OK:
+ filename = chooser.get_filename()
+ chooser.destroy()
+ self.load_dot_from_file(filename)
+ else:
+ chooser.destroy()
+
+ def load_dot_from_file(self, filename):
+ try:
+ fp = file(filename, 'rt')
+ self.load_dot(fp.read(), filename)
+ fp.close()
+ except IOError, ex:
+ self.show_info(ex)
+
+ def load_dot(self, dotcode, filename="<stdin>"):
+ if self._dot_widget.set_dotcode(dotcode, filename):
+ #self._dot_widget.zoom_to_fit()
+
+ def _on_save_project(self, widget):
+ pass
+
+ def show_info(self, message, title='PyCatcher', time_to_sleep=3, type='INFO'):
+ gtk_type = {'INFO' : gtk.MESSAGE_INFO,
+ 'ERROR': gtk.MESSAGE_ERROR}
+
+ dlg = gtk.MessageDialog(type=gtk.MESSAGE_INFO,
+ message_format=str(message)
+ )
+
+ dlg.set_title(title)
+ #dlg.run()
+ dlg.show()
+ time.sleep(time_to_sleep)
+ dlg.destroy()
+
+ def log_line(self, line):
+ self._log_buffer.insert(self._log_buffer.get_end_iter(),self._utf8conv(datetime.datetime.now().strftime("%I:%M:%S %p")+ ": " + line + "\n")) \ No newline at end of file