Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import gedit
- import gtk
- import os
- class FTPPluginWindowHelper:
- def __init__(self, plugin, window):
- self._window = window
- self._plugin = plugin
- self._ui = None
- self.create_ui()
- def deactivate(self):
- self._window.get_side_panel().remove_item(self._ui)
- def update_ui(self):
- pass
- def create_ui(self):
- container = gtk.VBox()
- host = gtk.Entry()
- port = gtk.Entry()
- username = gtk.Entry()
- password = gtk.Entry()
- local_address = gtk.TreeView()
- local_address_scrolled_window = gtk.ScrolledWindow()
- local_address_model = gtk.TreeStore(str)
- local_address_column = gtk.TreeViewColumn('Local files')
- local_address_cell = gtk.CellRendererText()
- remote_address = gtk.TreeView()
- remote_address_model = gtk.TreeStore(str)
- password.set_visibility(False)
- for file_name in self.get_system_files():
- local_address_model.append(None, [file_name])
- local_address_scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- local_address.set_model(local_address_model)
- local_address.append_column(local_address_column)
- local_address_column.pack_start(local_address_cell, True)
- local_address_column.add_attribute(local_address_cell, 'text', 0)
- local_address.connect("row-activated", self.on_local_address_row_click)
- local_address_scrolled_window.add(local_address)
- container.pack_start(host)
- container.pack_start(port)
- container.pack_start(username)
- container.pack_start(password)
- container.pack_start(local_address_scrolled_window)
- container.pack_start(remote_address)
- host.show()
- username.show()
- password.show()
- local_address.show()
- local_address_scrolled_window.show()
- remote_address.show()
- side_panel = self._window.get_side_panel()
- side_panel.add_item(container, "FTP Client", gtk.Image())
- self._ui = container
- def on_local_address_row_click(self, treeview, path, column):
- selected_row = treeview.get_selection()
- model, iter = selected_row.get_selected()
- iter_parent = None
- complete_path = ''
- if not model.iter_has_child(iter):
- iter_parent = model.iter_parent(iter)
- while iter_parent != None:
- complete_path += model.get_value(iter_parent, 0)
- iter_parent = model.iter_parent(iter_parent)
- value = model.get_value(iter, 0)
- for local_file in self.get_system_files(value):
- model.append(iter, [complete_path + local_file])
- print 'Complete Path: ' + complete_path
- treeview.collapse_row(path) if treeview.row_expanded(path) else treeview.expand_row(path, False)
- def get_system_files(self, path = None):
- return os.listdir(path) if path else '/' # just unix ?
- class FTPPlugin(gedit.Plugin):
- def __init__(self):
- gedit.Plugin.__init__(self)
- self._instances = {}
- def activate(self, window):
- self._instances[window] = FTPPluginWindowHelper(self, window)
- def deactivate(self, window):
- self._instances[window].deactivate()
- del self._instances[window]
- def update_ui(self, window):
- self._instances[window].update_ui()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement