Example #1
0
class Win(gtk.Window):
    def __init__(self):
        super(Win, self).__init__()
        self.set_position(gtk.WIN_POS_CENTER)
        self.resize(800, 600)
        self.connect('destroy', lambda *args: gtk.main_quit())
        self.host = None
        self.table = None
        self.db_connect()

        tt = TabTable(None, self.table)
        if tt:
            self.add(tt.get_ui())

        self.show_all()

    def db_connect(self):
        _db = 'test'
        _tb = 'test'
        self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306,
                              'root', 'root', '', 0)
        self.host.connect()
        self.host.use_db(_db)
        self.host.databases[_db].refresh()
        self.host.databases[_db].tables[_tb].refresh()
        self.table = self.host.databases[_db].tables[_tb]
        self.table.refresh()
Example #2
0
class Win(gtk.Window):

    def __init__(self):
        super(Win, self).__init__()
        self.set_position(gtk.WIN_POS_CENTER)
        self.resize(800, 600)
        self.connect('destroy', lambda *args: gtk.main_quit())
        self.host = None
        self.table = None
        self.db_connect()

        tt = TabTable(None, self.table)
        if tt:
            self.add(tt.get_ui())

        self.show_all()

    def db_connect(self):
        _db = 'test'
        _tb = 'test'
        self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306, 'root', 'root', '', 0)
        self.host.connect()
        self.host.use_db(_db)
        self.host.databases[_db].refresh()
        self.host.databases[_db].tables[_tb].refresh()
        self.table = self.host.databases[_db].tables[_tb]
        self.table.refresh()
Example #3
0
class Win(gtk.Window):

    def __init__(self):
        super(Win, self).__init__()
        self.set_position(gtk.WIN_POS_CENTER)
        self.resize(640, 480)
        self.connect('destroy', lambda *args: gtk.main_quit())
        self.host = None
        self.table = None
        self.db_connect()

        tp = self.table.get_table_properties_widget()
        if tp:
            self.add(tp)
            tp.update()

        self.show_all()

    def db_connect(self):
        _db = 'test'
        _tb = 'aaa'
        self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306, 'root', 'root', '', 0)
        self.host.connect()
        self.host.use_db(_db)
        self.host.databases[_db].refresh()
        self.host.databases[_db].tables[_tb].refresh()
        self.table = self.host.databases[_db].tables[_tb]
        self.table.refresh()
Example #4
0
class Win(gtk.Window):

    def __init__(self):
        super(Win, self).__init__()
        self.mainwindow = self
        self.current_host = None
        self.set_position(gtk.WIN_POS_CENTER)
        self.resize(800, 600)
        self.connect('destroy', lambda *args: gtk.main_quit())
        self.host = None
        self.table = None
        self.db_connect()
        self.glade_path = '../emmalib/'
        self.key_map = KeyMap(self)
        self.config = Config(self)
        self.config.load()
        self.blob_view = TabBlobView(self)
        self.events = EventsManager(self)

        self.mainwindow = self
        self.main_notebook = type('Dummy', (object,), {})
        self.main_notebook.close_query_tab = self.dummy_close_query_tab
        self.main_notebook.add_query_tab = self.dummy_add_query_tab

        qt = QueryTab(self)
        qt.textview.get_buffer().set_text('SELECT * FROM test;')
        if qt:
            self.add(qt.get_ui())

        self.show_all()

    def assign_once(self, name, creator, *args):
        obj = creator(*args)
        return obj

    def dummy_close_query_tab(self):
        dialogs.alert('Test mode')

    def dummy_add_query_tab(self):
        dialogs.alert('Test mode')

    def db_connect(self):
        _db = 'test'
        _tb = 'test'
        self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306, 'root', 'root', '', 0)
        self.host.connect()
        self.host.use_db(_db)
        self.host.databases[_db].refresh()

        # print "DB:", _db, "TABLE:", _tb

        print len(self.host.databases[_db].tables)

        self.host.databases[_db].tables[_tb].refresh()

        self.table = self.host.databases[_db].tables[_tb]
        self.table.refresh()

        self.current_host = self.host
Example #5
0
class Win(gtk.Window):
    def __init__(self):
        super(Win, self).__init__()
        self.mainwindow = self
        self.current_host = None
        self.set_position(gtk.WIN_POS_CENTER)
        self.resize(800, 600)
        self.connect('destroy', lambda *args: gtk.main_quit())
        self.host = None
        self.table = None
        self.db_connect()
        self.glade_path = '../emmalib/'
        self.key_map = KeyMap(self)
        self.config = Config(self)
        self.config.load()
        self.blob_view = TabBlobView(self)
        self.events = EventsManager(self)

        self.mainwindow = self
        self.main_notebook = type('Dummy', (object, ), {})
        self.main_notebook.close_query_tab = self.dummy_close_query_tab
        self.main_notebook.add_query_tab = self.dummy_add_query_tab

        qt = QueryTab(self)
        qt.textview.get_buffer().set_text('SELECT * FROM test;')
        if qt:
            self.add(qt.get_ui())

        self.show_all()

    def assign_once(self, name, creator, *args):
        obj = creator(*args)
        return obj

    def dummy_close_query_tab(self):
        dialogs.alert('Test mode')

    def dummy_add_query_tab(self):
        dialogs.alert('Test mode')

    def db_connect(self):
        _db = 'test'
        _tb = 'test'
        self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306,
                              'root', 'root', '', 0)
        self.host.connect()
        self.host.use_db(_db)
        self.host.databases[_db].refresh()

        # print "DB:", _db, "TABLE:", _tb

        print len(self.host.databases[_db].tables)

        self.host.databases[_db].tables[_tb].refresh()

        self.table = self.host.databases[_db].tables[_tb]
        self.table.refresh()

        self.current_host = self.host
Example #6
0
 def db_connect(self):
     _db = 'test'
     _tb = 'aaa'
     self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306,
                           'root', 'root', '', 0)
     self.host.connect()
     self.host.use_db(_db)
     self.host.databases[_db].refresh()
     self.host.databases[_db].tables[_tb].refresh()
     self.table = self.host.databases[_db].tables[_tb]
Example #7
0
 def db_connect(self):
     _db = 'test'
     _tb = 'aaa'
     self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306, 'root', 'root', '', 0)
     self.host.connect()
     self.host.use_db(_db)
     self.host.databases[_db].refresh()
     self.host.databases[_db].tables[_tb].refresh()
     self.table = self.host.databases[_db].tables[_tb]
Example #8
0
    def db_connect(self):
        _db = 'test'
        _tb = 'test'
        self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306,
                              'root', 'root', '', 0)
        self.host.connect()
        self.host.use_db(_db)
        self.host.databases[_db].refresh()

        # print "DB:", _db, "TABLE:", _tb

        print len(self.host.databases[_db].tables)

        self.host.databases[_db].tables[_tb].refresh()

        self.table = self.host.databases[_db].tables[_tb]
        self.table.refresh()

        self.current_host = self.host
Example #9
0
    def db_connect(self):
        _db = 'test'
        _tb = 'test'
        self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306, 'root', 'root', '', 0)
        self.host.connect()
        self.host.use_db(_db)
        self.host.databases[_db].refresh()

        # print "DB:", _db, "TABLE:", _tb

        print len(self.host.databases[_db].tables)

        self.host.databases[_db].tables[_tb].refresh()

        self.table = self.host.databases[_db].tables[_tb]
        self.table.refresh()

        self.current_host = self.host
Example #10
0
class Win(gtk.Window):
    def __init__(self):
        super(Win, self).__init__()
        self.sw = gtk.ScrolledWindow()
        self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self.add(self.sw)
        self.tv_data = gtk.TreeView()
        self.sw.add(self.tv_data)
        self.set_position(gtk.WIN_POS_CENTER)
        self.resize(640, 480)
        self.connect('destroy', lambda *args: gtk.main_quit())
        self.show_all()
        self.tv_data_model = None
        self.host = None
        self.table = None
        self.db_connect()
        self.load_data()

    def db_connect(self):
        _db = 'test'
        _tb = 'aaa'
        self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306,
                              'root', 'root', '', 0)
        self.host.connect()
        self.host.use_db(_db)
        self.host.databases[_db].refresh()
        self.host.databases[_db].tables[_tb].refresh()
        self.table = self.host.databases[_db].tables[_tb]

    def load_data(self):
        result = self.table.db.host.query_dict('SELECT * FROM %s' %
                                               self.table.name,
                                               append_to_log=False,
                                               encoding='utf8')
        if not result:
            return
        #
        #   Build list store with sort and data columns
        #   Make map of result column index, its display column and sort column
        #
        columns = []
        sort_display_map = []
        i = 0
        ci = 0
        for t in result['types']:
            columns.append(t)
            sort_index = i
            disp_index = sort_index
            i += 1
            if t == gobject.TYPE_LONG or t == gobject.TYPE_INT or t == gobject.TYPE_FLOAT:
                columns.append(gobject.TYPE_STRING)
                disp_index = i
                i += 1
            sort_display_map.append((ci, sort_index, disp_index))
            ci += 1

        print 'columns', columns
        print 'sort_display_map', sort_display_map

        #
        #   Add it all to model and in treeview
        #
        self.tv_data_model = gtk.ListStore(*columns)
        self.tv_data.set_model(self.tv_data_model)
        #
        #   Add treeview columns according to previously built index/sort/data map
        #
        for column_index, sort_index, disp_index in sort_display_map:
            title = result['cols'][column_index].replace("_", "__").replace(
                "[\r\n\t ]+", " ")
            self.column_insert(title, sort_index, disp_index)

        for row in result['rows']:
            model_row = []
            for col in result['cols']:
                ci = result['cols'].index(col)
                if result['types'][ci] == gobject.TYPE_LONG:
                    if row[col] is None:
                        v = 0
                    else:
                        v = long(row[col])
                    model_row.append(v)
                    model_row.append(row[col])
                elif result['types'][ci] == gobject.TYPE_INT:
                    if row[col] is None:
                        v = 0
                    else:
                        v = int(row[col])
                    model_row.append(v)
                    model_row.append(row[col])
                elif result['types'][ci] == gobject.TYPE_FLOAT:
                    if row[col] is None:
                        v = 0
                    else:
                        v = float(row[col])
                    model_row.append(v)
                    model_row.append(row[col])
                elif result['types'][ci] == gobject.TYPE_STRING:
                    if row[col] is None:
                        model_row.append(None)
                    else:
                        try:
                            row[col].decode('ascii')
                            v = str(row[col])
                        except:
                            try:
                                v = row[col].decode('utf-8')
                            except UnicodeError:
                                v = '<BINARY>'
                        model_row.append(v)
            try:
                self.tv_data_model.append(model_row)
            except:
                pass
                #print "cannot add row:", model_row

    def column_insert(self, title, sort_column_index, display_column_index):
        text_renderer = gtk.CellRendererText()
        ci = self.tv_data.insert_column_with_data_func(-1, title,
                                                       text_renderer,
                                                       render_mysql_string,
                                                       display_column_index)
        col = self.tv_data.get_column(ci - 1)
        col.set_sort_column_id(sort_column_index)
Example #11
0
class Win(gtk.Window):

    def __init__(self):
        super(Win, self).__init__()
        self.sw = gtk.ScrolledWindow()
        self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self.add(self.sw)
        self.tv_data = gtk.TreeView()
        self.sw.add(self.tv_data)
        self.set_position(gtk.WIN_POS_CENTER)
        self.resize(640, 480)
        self.connect('destroy', lambda *args: gtk.main_quit())
        self.show_all()
        self.tv_data_model = None
        self.host = None
        self.table = None
        self.db_connect()
        self.load_data()

    def db_connect(self):
        _db = 'test'
        _tb = 'aaa'
        self.host = MySqlHost(None, None, 'Localhost', 'localhost', 3306, 'root', 'root', '', 0)
        self.host.connect()
        self.host.use_db(_db)
        self.host.databases[_db].refresh()
        self.host.databases[_db].tables[_tb].refresh()
        self.table = self.host.databases[_db].tables[_tb]

    def load_data(self):
        result = self.table.db.host.query_dict('SELECT * FROM %s' % self.table.name, append_to_log=False, encoding='utf8')
        if not result:
            return
        #
        #   Build list store with sort and data columns
        #   Make map of result column index, its display column and sort column
        #
        columns = []
        sort_display_map = []
        i = 0
        ci = 0
        for t in result['types']:
            columns.append(t)
            sort_index = i
            disp_index = sort_index
            i += 1
            if t == gobject.TYPE_LONG or t == gobject.TYPE_INT or t == gobject.TYPE_FLOAT:
                columns.append(gobject.TYPE_STRING)
                disp_index = i
                i += 1
            sort_display_map.append((ci, sort_index, disp_index))
            ci += 1

        print 'columns', columns
        print 'sort_display_map', sort_display_map

        #
        #   Add it all to model and in treeview
        #
        self.tv_data_model = gtk.ListStore(*columns)
        self.tv_data.set_model(self.tv_data_model)
        #
        #   Add treeview columns according to previously built index/sort/data map
        #
        for column_index, sort_index, disp_index in sort_display_map:
            title = result['cols'][column_index].replace("_", "__").replace("[\r\n\t ]+", " ")
            self.column_insert(title, sort_index, disp_index)

        for row in result['rows']:
            model_row = []
            for col in result['cols']:
                ci = result['cols'].index(col)
                if result['types'][ci] == gobject.TYPE_LONG:
                    if row[col] is None:
                        v = 0
                    else:
                        v = long(row[col])
                    model_row.append(v)
                    model_row.append(row[col])
                elif result['types'][ci] == gobject.TYPE_INT:
                    if row[col] is None:
                        v = 0
                    else:
                        v = int(row[col])
                    model_row.append(v)
                    model_row.append(row[col])
                elif result['types'][ci] == gobject.TYPE_FLOAT:
                    if row[col] is None:
                        v = 0
                    else:
                        v = float(row[col])
                    model_row.append(v)
                    model_row.append(row[col])
                elif result['types'][ci] == gobject.TYPE_STRING:
                    if row[col] is None:
                        model_row.append(None)
                    else:
                        try:
                            row[col].decode('ascii')
                            v = str(row[col])
                        except:
                            try:
                                v = row[col].decode('utf-8')
                            except UnicodeError:
                                v = '<BINARY>'
                        model_row.append(v)
            try:
                self.tv_data_model.append(model_row)
            except:
                pass
                #print "cannot add row:", model_row

    def column_insert(self, title, sort_column_index, display_column_index):
        text_renderer = gtk.CellRendererText()
        ci = self.tv_data.insert_column_with_data_func(
            -1,
            title,
            text_renderer,
            render_mysql_string,
            display_column_index)
        col = self.tv_data.get_column(ci-1)
        col.set_sort_column_id(sort_column_index)