示例#1
0
    def __init__(self, par, server):
        self.par = par
        gtk.Frame.__init__(self, _("Skarphed Admin :: Register Database"))

        self.serverId = server.getLocalId()

        self.table = gtk.Table(4, 2, False)
        self.instruction = gtk.Label(_("Please enter DBA-Credentials here:"))
        self.dba_user_label = gtk.Label(_("DBA-User:"******"Password:"******"SYSDBA")
        self.dba_pass_entry = DefaultEntry(default_message=_("password"))
        self.buttonhbox = gtk.HBox()
        self.cancel = gtk.Button(stock=gtk.STOCK_CLOSE)
        self.ok = gtk.Button(stock=gtk.STOCK_OK)
        self.buttonhbox.add(self.cancel)
        self.buttonhbox.add(self.ok)

        self.table.attach(self.instruction, 0, 2, 0, 1)
        self.table.attach(self.dba_user_label, 0, 1, 1, 2)
        self.table.attach(self.dba_user_entry, 1, 2, 1, 2)
        self.table.attach(self.dba_pass_label, 0, 1, 2, 3)
        self.table.attach(self.dba_pass_entry, 1, 2, 2, 3)
        self.table.attach(self.buttonhbox, 1, 2, 3, 4)

        self.ok.connect("clicked", self.cb_Ok)
        self.cancel.connect("clicked", self.cb_Cancel)
        self.connect("delete-event", self.cb_Cancel)

        server.addCallback(self.render)

        self.table.set_border_width(10)
        self.add(self.table)
        self.getApplication().getMainWindow().openDialogPane(self)
示例#2
0
    def __init__(self, parent):
        gtk.Frame.__init__(self, _("Create a new profile"))
        self.par = parent

        self.fixed = gtk.Fixed()

        self.l_user = gtk.Label(_("User"))
        self.e_user = DefaultEntry(default_message=_("username"))
        self.l_password = gtk.Label(_("Password"))
        self.e_password = gtk.Entry()
        self.l_password_r = gtk.Label(_("Repeat password"))
        self.e_password_r = gtk.Entry()
        self.ok = gtk.Button(stock=gtk.STOCK_OK)

        self.e_password.set_invisible_char("●")
        self.e_password_r.set_invisible_char("●")
        self.e_password.set_visibility(False)
        self.e_password_r.set_visibility(False)

        self.fixed.put(self.l_user, 10, 10)
        self.fixed.put(self.e_user, 110, 10)
        self.fixed.put(self.l_password, 10, 35)
        self.fixed.put(self.e_password, 110, 35)
        self.fixed.put(self.l_password_r, 10, 60)
        self.fixed.put(self.e_password_r, 110, 60)
        self.fixed.put(self.ok, 110, 85)

        self.add(self.fixed)

        self.ok.connect("clicked", self.cb_OK)
示例#3
0
文件: Menu.py 项目: joker234/skarphed
    def __init__(self, par, action):
        self.par = par
        gtk.Table.__init__(self, 4, 4, False)
        self.actionId = action.getLocalId()

        self.radio_url = gtk.RadioButton(None, _("URL:"))
        self.radio_widgetSpaceConstellation = gtk.RadioButton(
            self.radio_url, _("Widget into Space:"))
        self.radio_view = gtk.RadioButton(self.radio_url, _("Other View:"))

        self.entry_url = DefaultEntry(
            default_message=_("http://www.example.org"))
        self.entry_widget = ObjectCombo(
            self,
            "Widget",
            selectFirst=True,
            virtualRootObject=action.getActionList().getMenuItem().getMenu(
            ).getSite().getSkarphed())
        self.entry_space = SpaceCombo(
            self,
            action.getActionList().getMenuItem().getMenu().getSite())
        self.entry_view = ObjectCombo(
            self,
            "View",
            selectFirst=True,
            virtualRootObject=action.getActionList().getMenuItem().getMenu(
            ).getSite().getSkarphed())
        self.entry_url.connect("focus-in-event", self.focusCallback)
        self.entry_widget.connect("popup", self.focusCallback)
        self.entry_widget.connect("changed", self.focusCallback)
        self.entry_space.connect("focus-in-event", self.focusCallback)
        self.entry_view.connect("popup", self.focusCallback)
        self.entry_widget.connect("changed", self.focusCallback)

        self.deleteButton = gtk.Button(stock=gtk.STOCK_DELETE)
        self.increaseOrderButton = gtk.Button(stock=gtk.STOCK_GO_UP)
        self.decreaseOrderButton = gtk.Button(stock=gtk.STOCK_GO_DOWN)
        self.saveButton = gtk.Button(stock=gtk.STOCK_SAVE)
        self.deleteButton.connect("clicked", self.deleteCallback)
        self.increaseOrderButton.connect("clicked", self.increaseOrderCallback)
        self.decreaseOrderButton.connect("clicked", self.decreaseOrderCallback)
        self.saveButton.connect("clicked", self.saveCallback)

        self.attach(self.radio_url, 0, 1, 0, 1)
        self.attach(self.entry_url, 1, 3, 0, 1)
        self.attach(self.radio_widgetSpaceConstellation, 0, 1, 1, 2)
        self.attach(self.entry_widget, 1, 2, 1, 2)
        self.attach(self.entry_space, 2, 3, 1, 2)
        self.attach(self.radio_view, 0, 1, 2, 3)
        self.attach(self.entry_view, 1, 3, 2, 3)
        self.attach(self.deleteButton, 0, 1, 3, 4)
        self.attach(self.increaseOrderButton, 1, 2, 3, 4)
        self.attach(self.decreaseOrderButton, 2, 3, 3, 4)
        self.attach(self.saveButton, 3, 4, 3, 4)
        action.addCallback(self.render)
        self.show_all()

        self.render()
示例#4
0
文件: View.py 项目: joker234/skarphed
    def __init__(self, par, view):
        ObjectPageAbstract.__init__(self, par, view)

        self.view = PageFrame(self, _("View"), VIEW)
        self.view_hbox = gtk.HBox(spacing=10)
        self.view_label = gtk.Label(_("Name of this View: "))
        self.view_entry = DefaultEntry()
        self.view_entry.set_default_message(_("name_of_view"))
        self.view_hbox.pack_start(self.view_label, False)
        self.view_hbox.pack_start(self.view_entry, True)
        self.view.add(self.view_hbox)
        self.pack_start(self.view, False)

        self.page = PageFrame(self, _("Site"), SITE)
        self.page_hbox = gtk.HBox(spacing=10)
        self.page_label = gtk.Label(_("Site to Render: "))
        self.page_combobox = ObjectCombo(
            self,
            "Site",
            virtualRootObject=view.getViews().getSkarphed().getSites())
        self.page_hbox.pack_start(self.page_label, False)
        self.page_hbox.pack_start(self.page_combobox, False)
        self.page.add(self.page_hbox)
        self.pack_start(self.page, False)

        self.compose = PageFrame(self, _("Compositing"), WIDGET)
        self.compose_dummy = gtk.Label()
        self.compose_scroll = gtk.ScrolledWindow()
        self.compose_scroll.set_policy(gtk.POLICY_AUTOMATIC,
                                       gtk.POLICY_AUTOMATIC)
        self.compose_vbox = gtk.VBox(spacing=10)
        self.compose_vbox.set_border_width(10)
        self.compose_spacewidgets = {}
        self.compose_boxwidgets = {}
        self.compose_vbox.pack_end(self.compose_dummy, True)
        self.compose_scroll.add_with_viewport(self.compose_vbox)
        self.compose.add(self.compose_scroll)
        self.pack_start(self.compose, True)

        self.saveframe = gtk.HBox()
        self.savedummy = gtk.Label()
        self.savebutton = gtk.Button(stock=gtk.STOCK_SAVE)
        self.saveframe.pack_start(self.savedummy, True)
        self.saveframe.pack_start(self.savebutton, False)
        self.pack_start(self.saveframe, False)

        self.savebutton.connect("clicked", self.saveCallback)
        self.page_combobox.connect("changed", self.changedPageCallback)

        if not view.isFullyLoaded():
            view.loadFull()
        else:
            self.render()
示例#5
0
    def __init__(self, par, database):
        gtk.Frame.__init__(self, _("Skarphed Admin :: New Schema"))
        self.par = par

        self.databaseId = database.getLocalId()

        self.working = True

        self.table = gtk.Table(4, 2, False)

        self.instruction = gtk.Label(
            _("Enter the name of the new schema.\n\
         The first user (root) of the new skarphed db will have the password 'root'.\n\
         Please change this password after your first login."))

        self.name_label = gtk.Label(_("Name:"))
        self.name_entry = DefaultEntry(default_message=_("new_database_name"))
        self.buttonhbox = gtk.HBox()
        self.progress = gtk.ProgressBar()
        self.cancel = gtk.Button(stock=gtk.STOCK_CLOSE)
        self.ok = gtk.Button(stock=gtk.STOCK_OK)
        self.buttonhbox.add(self.cancel)
        self.buttonhbox.add(self.ok)

        self.table.attach(self.instruction, 0, 2, 0, 1)
        self.table.attach(self.name_label, 0, 1, 1, 2)
        self.table.attach(self.name_entry, 1, 2, 1, 2)
        self.table.attach(self.buttonhbox, 1, 2, 3, 4)

        self.ok.connect("clicked", self.cb_Ok)
        self.cancel.connect("clicked", self.cb_Cancel)
        self.connect("delete-event", self.cb_Cancel)

        database.addCallback(self.render)

        self.table.set_border_width(10)
        self.add(self.table)
        self.getApplication().getMainWindow().openDialogPane(self)
示例#6
0
 def __init__(self,parent, server=None, instance = None):
     gtk.Frame.__init__(self)
     self.par = parent
     self.serverId = None
     if server is not None:
         self.serverId = server.getLocalId()
     self.instanceId = None
     if instance is not None:
         self.instanceId = instance.getLocalId()
     self.instanceTypes = self.getApplication().getInstanceTypes()
     
     self.set_label(_("Skarphed Admin :: Configure Instance"))
     self.vbox = gtk.VBox()
     self.label = gtk.Label(_("Please configure the Instance"))
     self.vspace = gtk.Label("")
     self.vbox.pack_start(self.label,False)
     self.vbox.pack_start(self.vspace,True)
     
     self.table = gtk.Table(2,4,False)
     self.typeLabel = gtk.Label(_("InstanceType:"))
     
     self.typeStore = gtk.ListStore(str)
     self.typeCombo = gtk.ComboBox(self.typeStore)
     self.typeRenderer = gtk.CellRendererText()
     self.typeCombo.pack_start(self.typeRenderer, True)
     self.typeCombo.add_attribute(self.typeRenderer, 'text', 0)  
     for instanceType in self.instanceTypes:
         self.typeStore.append((instanceType.displayName,))
     self.typeCombo.set_active(0)
     self.urlLabel = gtk.Label(_("URL:"))
     self.urlEntry = DefaultEntry(default_message="http://instance.org")
     self.urlEntry.set_text("http://")
     self.userLabel = gtk.Label(_("Username:"******"username"))
     self.passLabel = gtk.Label(_("Password:"******"●")
     self.table.attach(self.typeLabel,0,1,0,1)
     self.table.attach(self.typeCombo,1,2,0,1)
     self.table.attach(self.urlLabel,0,1,1,2)
     self.table.attach(self.urlEntry,1,2,1,2)
     self.table.attach(self.userLabel,0,1,2,3)
     self.table.attach(self.userEntry,1,2,2,3)
     self.table.attach(self.passLabel,0,1,3,4)
     self.table.attach(self.passEntry,1,2,3,4)
     self.vbox.pack_start(self.table,False)
     
     self.buttonBox = gtk.HBox()
     self.ok = gtk.Button(stock=gtk.STOCK_OK)
     self.cancel = gtk.Button(stock=gtk.STOCK_CANCEL)
     self.viewpass = ViewPasswordButton()
     self.viewpass.addEntry(self.passEntry)
     self.space = gtk.Label("")
     self.buttonBox.pack_start(self.space,True)
     self.buttonBox.pack_start(self.viewpass,False)
     self.buttonBox.pack_start(self.cancel,False)
     self.buttonBox.pack_start(self.ok,False)
     self.ok.connect("clicked",self.cb_Ok)
     self.cancel.connect("clicked",self.cb_Cancel)
     self.vbox.pack_start(self.buttonBox,False)
     
     self.add(self.vbox)
     self.getApplication().getMainWindow().openDialogPane(self)
     if instance is not None:
         self.urlEntry.set_sensitive(False)
         self.render()
示例#7
0
    def __init__(self, parent, server=None):
        gtk.Frame.__init__(self)
        self.par = parent
        self.serverId = None
        if server is None:
            self.set_label(_("Skarphed Admin Pro :: New Server"))
            self.mode = ServerPropertyPage.MODE_NEW
        else:
            self.serverId = server.getLocalId()
            self.set_label(
                _("Skarphed Admin Pro :: Server Properties of ") +
                server.getIp())
            self.mode = ServerPropertyPage.MODE_EDIT

        self.vbox = gtk.VBox()

        self.instructionlabel = gtk.Label(
            _("Please enter the Server credentials"))
        self.vbox.pack_start(self.instructionlabel, False)

        self.ipFrame = gtk.Frame(_("Common"))
        self.ipFrameT = gtk.Table(2, 3, False)
        self.ipFrame_IPLabel = gtk.Label(_("IP:"))
        self.ipFrame_IPEntry = DefaultEntry(default_message="172.16.13.37")
        self.ipFrameT.attach(self.ipFrame_IPLabel, 0, 1, 0, 1)
        self.ipFrameT.attach(self.ipFrame_IPEntry, 1, 2, 0, 1)
        self.ipFrame_NameLabel = gtk.Label(_("Name:"))
        self.ipFrame_NameEntry = DefaultEntry(default_message="Server1")
        self.ipFrameT.attach(self.ipFrame_NameLabel, 0, 1, 1, 2)
        self.ipFrameT.attach(self.ipFrame_NameEntry, 1, 2, 1, 2)
        self.ipFrame_Target_Label = gtk.Label("Target system:")
        self.ipFrame_Target_model = gtk.ListStore(str)
        for target in Server.INSTALLATION_TARGETS:
            self.ipFrame_Target_model.append((target.getName(), ))
        self.ipFrame_Target_renderer = gtk.CellRendererText()
        self.ipFrame_Target = gtk.ComboBox(self.ipFrame_Target_model)
        self.ipFrame_Target.pack_start(self.ipFrame_Target_renderer, True)
        self.ipFrame_Target.add_attribute(self.ipFrame_Target_renderer, 'text',
                                          0)
        self.ipFrameT.attach(self.ipFrame_Target_Label, 0, 1, 2, 3)
        self.ipFrameT.attach(self.ipFrame_Target, 1, 2, 2, 3)
        self.ipFrame.add(self.ipFrameT)

        self.vbox.pack_start(self.ipFrame, False)

        self.sshFrame = gtk.Frame(_("SSH"))
        self.sshFrameT = gtk.Table(2, 2, False)
        self.sshFrame_NameLabel = gtk.Label(_("Username:"******"root")
        self.sshFrame_PassLabel = gtk.Label(_("Password:"******"●")
        self.sshFrameT.attach(self.sshFrame_NameLabel, 0, 1, 0, 1)
        self.sshFrameT.attach(self.sshFrame_NameEntry, 1, 2, 0, 1)
        self.sshFrameT.attach(self.sshFrame_PassLabel, 0, 1, 1, 2)
        self.sshFrameT.attach(self.sshFrame_PassEntry, 1, 2, 1, 2)
        self.sshFrame.add(self.sshFrameT)
        self.vbox.pack_start(self.sshFrame, False)

        self.instFrame = gtk.Frame(_("Instances"))
        self.instFrameT = gtk.Table(2, 4, False)
        self.instList = gtk.TreeView()
        self.instStore = gtk.ListStore(gtk.gdk.Pixbuf, str, int)
        self.instList.set_model(self.instStore)
        self.instCol_Icon = gtk.TreeViewColumn()
        self.instCol_Name = gtk.TreeViewColumn(_('Instance'))
        self.instRen_Icon = gtk.CellRendererPixbuf()
        self.instRen_Name = gtk.CellRendererText()
        self.instCol_Icon.pack_start(self.instRen_Icon, False)
        self.instCol_Name.pack_start(self.instRen_Name, True)
        self.instCol_Icon.add_attribute(self.instRen_Icon, 'pixbuf', 0)
        self.instCol_Name.add_attribute(self.instRen_Name, 'text', 1)
        self.instList.append_column(self.instCol_Icon)
        self.instList.append_column(self.instCol_Name)
        self.instAdd = gtk.Button(stock=gtk.STOCK_ADD)
        self.instRemove = gtk.Button(stock=gtk.STOCK_REMOVE)
        self.instEdit = gtk.Button(stock=gtk.STOCK_EDIT)
        self.instFrameT.attach(self.instList, 0, 1, 0, 4)
        self.instFrameT.attach(self.instAdd, 1, 2, 0, 1)
        self.instFrameT.attach(self.instRemove, 1, 2, 1, 2)
        self.instFrameT.attach(self.instEdit, 1, 2, 2, 3)
        self.instAdd.connect("clicked", self.cb_Add)
        self.instRemove.connect("clicked", self.cb_Remove)
        self.instEdit.connect("clicked", self.cb_Edit)
        self.instList.connect("cursor-changed", self.cb_cursorChanged)
        self.instFrame.add(self.instFrameT)
        self.vbox.pack_start(self.instFrame, False)

        self.fill = gtk.Label("")
        self.vbox.pack_start(self.fill, True)

        self.buttons = gtk.HBox()
        self.ok = gtk.Button(stock=gtk.STOCK_OK)
        self.cancel = gtk.Button(stock=gtk.STOCK_CANCEL)
        self.viewpass = ViewPasswordButton()
        self.viewpass.addEntry(self.sshFrame_PassEntry)
        self.ok.connect("clicked", self.cb_OK)
        self.cancel.connect("clicked", self.cb_Cancel)
        self.buttons.pack_end(self.ok, False)
        self.buttons.pack_end(self.cancel, False)
        self.buttons.pack_end(self.viewpass, False)
        self.vbox.pack_start(self.buttons, False)

        self.add(self.vbox)

        if server is not None:
            self.ipFrame_IPEntry.set_text(server.getIp())
            self.ipFrame_NameEntry.set_text(server.getRawName())
            self.sshFrame_NameEntry.set_text(server.getSSHName())
            self.sshFrame_PassEntry.set_text(server.getSSHPass())
            server.addCallback(self.render)
        self.getApplication().getMainWindow().openDialogPane(self)
        self.render()
示例#8
0
    def __init__(self,par,skarphed):
        ObjectPageAbstract.__init__(self,par,skarphed)

        self.headline = gtk.Label(_("Skarphed Instance"))
        self.pack_start(self.headline,False)
        
        self.repo = PageFrame(self,_("Repository"), gui.IconStock.REPO)
        self.repoDummy = gtk.Label("")
        self.repoHBox = gtk.HBox()
        self.repotable = gtk.Table(2,3)
        self.repoLabel = gtk.Label(_("Repository"))
        self.repoEntry = DefaultEntry(default_message=_("example_repo.org:80"))
        self.repoInfoLabel = gtk.Label(_("Please enter Repository URL here:"))
        self.repoOkButton = gtk.Button(stock=gtk.STOCK_OK)
        self.repoOkButton.connect("clicked", self.cb_changeRepo)
        
        self.repotable.attach(self.repoInfoLabel,0,2,0,1)
        self.repotable.attach(self.repoLabel,0,1,1,2)
        self.repotable.attach(self.repoEntry,1,2,1,2)
        self.repotable.attach(self.repoOkButton,1,2,2,3)
        self.repoHBox.pack_start(self.repotable,False)
        self.repoHBox.pack_start(self.repoDummy,True)
        self.repo.add(self.repoHBox)

        self.pack_start(self.repo,False)

        self.opd = OperationDaemonControl(self,skarphed.getOperationDaemon())
        self.pack_start(self.opd,False)
        
        self.pki = PageFrame(self, _("Public Key"), gui.IconStock.CREDENTIAL)
        self.pki_label = gtk.Label(_("Instance Public Key:"))
        self.pki_textview = gtk.TextView()
        self.pki_textbuffer = gtk.TextBuffer()
        self.pki_textview.set_buffer(self.pki_textbuffer)
        self.pki_vbox = gtk.VBox()
        self.pki_vbox.pack_start(self.pki_label,False)
        self.pki_vbox.pack_start(self.pki_textview,True)
        self.pki.add(self.pki_vbox)
        self.pack_start(self.pki, False)

        self.settings = PageFrame(self, _("Server Settings"), gui.IconStock.SKARPHED)
        self.settings_vbox = gtk.VBox()
        self.settings_maintenance_toggle_lock = False
        self.settings_maintenance_hbox = gtk.HBox()
        self.settings_maintenance_checkbox = gtk.CheckButton(label=_("Maintenancemode active"))
        self.settings_maintenance_dummy = gtk.Label()
        self.settings_maintenance_hbox.pack_start(self.settings_maintenance_checkbox,False)
        self.settings_maintenance_hbox.pack_start(self.settings_maintenance_dummy,True)
        self.settings_maintenance_checkbox.connect("toggled", self.cb_maintenance)
        self.settings_vbox.pack_start(self.settings_maintenance_hbox,False)

        self.settings_rendermode_toggle_lock = False
        self.settings_rendermode_table = gtk.Table(2,2,False)
        self.settings_rendermode_pure = gtk.RadioButton(label=_("Pure (only static HTML)"))
        self.settings_rendermode_ajax = gtk.RadioButton(group=self.settings_rendermode_pure,label=_("AJAX (requires JS)"))
        self.settings_rendermode_dummy = gtk.Label("")
        self.settings_rendermode_pure.connect("toggled", self.cb_rendermode, SkarphedPage.RENDER_PURE)
        self.settings_rendermode_ajax.connect("toggled", self.cb_rendermode, SkarphedPage.RENDER_AJAX)
        self.settings_rendermode_table.attach(self.settings_rendermode_pure,0,1,0,1,gtk.FILL|gtk.SHRINK,gtk.FILL|gtk.SHRINK)
        self.settings_rendermode_table.attach(self.settings_rendermode_ajax,0,1,1,2,gtk.FILL|gtk.SHRINK,gtk.FILL|gtk.SHRINK)
        self.settings_rendermode_table.attach(self.settings_rendermode_dummy,1,2,0,2,gtk.FILL|gtk.EXPAND,gtk.FILL|gtk.EXPAND)
        self.settings_vbox.pack_start(self.settings_rendermode_table,False)

        self.settings.add(self.settings_vbox)
        self.pack_start(self.settings,False)

        self.show_all()
        
        self.render()
示例#9
0
    def __init__(self, par, repo):
        ObjectPageAbstract.__init__(self, par, repo)

        self.table = gtk.Table(2, 4, False)

        self.moduleFrame = PageFrame(self, _("Modules"), IconStock.MODULE)
        self.moduleList = ModuleList(self, repo)
        self.moduleFrame.add(self.moduleList)
        self.pack_start(self.moduleFrame, False)

        self.mUploadFrame = PageFrame(self, _("Upload Module"),
                                      IconStock.MODULE)
        self.mUploadbox = gtk.HBox()
        self.mUploadbox.set_border_width(10)
        self.mUpload_label = gtk.Label(
            _("Please choose the Module and click OK"))
        self.mUpload_filechoose = gtk.FileChooserButton(
            _("Select Module"), None)
        self.mUpload_filechoose.connect("file-set", self.moduleFileChosen)
        self.mUpload_filechoose.set_size_request(200, 30)
        self.mUpload_enter = gtk.Button(stock=gtk.STOCK_OK)
        self.mUpload_enter.connect("clicked", self.uploadModule)
        self.mUpload_dummy = gtk.Label("")
        self.mUploadbox.pack_start(self.mUpload_label, False)
        self.mUploadbox.pack_start(self.mUpload_filechoose, False)
        self.mUploadbox.pack_start(self.mUpload_enter, False)
        self.mUploadbox.pack_start(self.mUpload_dummy, True)
        self.mUploadFrame.add(self.mUploadbox)
        self.pack_start(self.mUploadFrame, False)

        self.templateFrame = PageFrame(self, _("Templates"),
                                       IconStock.TEMPLATE)
        self.templateVBox = gtk.VBox()
        self.templateButtonBox = gtk.HBox()
        self.templateDeleteButton = gtk.Button(stock=gtk.STOCK_DELETE)
        self.templateDummy = gtk.Label("")
        self.templateList = TemplateList(self, repo)
        self.templateVBox.pack_start(self.templateList, True)
        self.templateVBox.pack_start(self.templateButtonBox, False)
        self.templateButtonBox.pack_start(self.templateDummy, True)
        self.templateButtonBox.pack_start(self.templateDeleteButton, False)
        self.templateDeleteButton.connect("clicked", self.cb_DeleteTemplate)
        self.templateFrame.add(self.templateVBox)
        self.pack_start(self.templateFrame, False)

        self.tUploadFrame = PageFrame(self, _("Upload Template"),
                                      IconStock.TEMPLATE)
        self.tUploadbox = gtk.HBox()
        self.tUploadbox.set_border_width(10)
        self.tUpload_label = gtk.Label(
            _("Please choose the Template and click OK"))
        self.tUpload_filechoose = gtk.FileChooserButton(
            _("Select Template"), None)
        self.tUpload_filechoose.connect("file-set", self.templateFileChosen)
        self.tUpload_filechoose.set_size_request(200, 30)
        self.tUpload_enter = gtk.Button(stock=gtk.STOCK_OK)
        self.tUpload_enter.connect("clicked", self.uploadTemplate)
        self.tUpload_dummy = gtk.Label("")
        self.tUploadbox.pack_start(self.tUpload_label, False)
        self.tUploadbox.pack_start(self.tUpload_filechoose, False)
        self.tUploadbox.pack_start(self.tUpload_enter, False)
        self.tUploadbox.pack_start(self.tUpload_dummy, True)
        self.tUploadFrame.add(self.tUploadbox)
        self.pack_start(self.tUploadFrame, False)

        self.adminFrame = PageFrame(self, _("Change Password"),
                                    IconStock.CREDENTIAL)
        self.adminHBox = gtk.HBox()
        self.adminHBoxDummy = gtk.Label("")
        self.adminTable = gtk.Table(2, 4, False)
        self.adminLabel = gtk.Label(_("Change admin-password here:"))
        self.adminPasswordLabel = gtk.Label(_("New password"))
        self.adminRepeatLabel = gtk.Label(_("New password (repeat)"))
        self.adminPasswordEntry = gtk.Entry()
        self.adminPasswordEntry.set_visibility(False)
        self.adminPasswordEntry.set_invisible_char("●")
        self.adminRepeatEntry = gtk.Entry()
        self.adminRepeatEntry.set_visibility(False)
        self.adminRepeatEntry.set_invisible_char("●")
        self.adminButtonDummy = gtk.Label()
        self.adminButtonHBox = gtk.HBox()
        self.adminButtonChange = gtk.Button(stock=gtk.STOCK_OK)
        self.adminButtonHBox.pack_start(self.adminButtonDummy, True)
        self.adminButtonHBox.pack_start(self.adminButtonChange, False)
        self.adminTable.attach(self.adminLabel, 0, 2, 0, 1)
        self.adminTable.attach(self.adminPasswordLabel, 0, 1, 1, 2)
        self.adminTable.attach(self.adminPasswordEntry, 1, 2, 1, 2)
        self.adminTable.attach(self.adminRepeatLabel, 0, 1, 2, 3)
        self.adminTable.attach(self.adminRepeatEntry, 1, 2, 2, 3)
        self.adminTable.attach(self.adminButtonHBox, 0, 2, 3, 4)
        self.adminHBox.pack_start(self.adminTable, False)
        self.adminHBox.pack_start(self.adminHBoxDummy, True)
        self.adminFrame.add(self.adminHBox)
        self.adminButtonChange.connect("clicked", self.cb_ChangePassword)
        self.pack_start(self.adminFrame, False)

        self.developerFrame = PageFrame(self, _("Developers"), IconStock.USER)
        self.developerHBox = gtk.HBox()
        self.developerList = DeveloperList(self, repo)
        self.developerHBox.pack_start(self.developerList, True)
        self.developerTable = gtk.Table(2, 5, False)
        self.developerButtonHBox = gtk.HBox()
        self.developerButtonHBoxDummy = gtk.Label()
        self.developerLabel = gtk.Label(
            _("Please enter the information for a new Developer here:"))
        self.developerNameLabel = gtk.Label(_("Nickname:"))
        self.developerFullnameLabel = gtk.Label(_("Full Name:"))
        self.developerPublicKeyLabel = gtk.Label(_("Public Key:"))
        self.developerNameEntry = DefaultEntry(default_message=_("nickname"))
        self.developerFullnameEntry = DefaultEntry(
            default_message=_("Firstname Lastname"))
        self.developerPublicKeyEntry = gtk.TextView()
        self.developerAddButton = gtk.Button(stock=gtk.STOCK_ADD)
        self.developerAddButton.connect("clicked", self.cb_Add)
        self.developerButtonHBox.pack_start(self.developerButtonHBoxDummy,
                                            True)
        self.developerButtonHBox.pack_start(self.developerAddButton, False)
        self.developerTable.attach(self.developerLabel, 0, 2, 0, 1)
        self.developerTable.attach(self.developerNameLabel, 0, 1, 1, 2)
        self.developerTable.attach(self.developerNameEntry, 1, 2, 1, 2)
        self.developerTable.attach(self.developerFullnameLabel, 0, 1, 2, 3)
        self.developerTable.attach(self.developerFullnameEntry, 1, 2, 2, 3)
        self.developerTable.attach(self.developerPublicKeyLabel, 0, 1, 3, 4)
        self.developerTable.attach(self.developerPublicKeyEntry, 1, 2, 3, 4)
        self.developerTable.attach(self.developerButtonHBox, 0, 2, 4, 5)
        self.developerHBox.pack_start(self.developerTable, False)
        self.developerFrame.add(self.developerHBox)
        self.pack_start(self.developerFrame, False)

        self.show_all()