Example #1
0
    def __init__(self, par, server=None):
        self.par = par
        self.serverId = None
        self.installerId = None
        if server is not None:
            self.serverId = server.getLocalId()
        gtk.Frame.__init__(self, _("Skarphed Admin :: Create Instance"))
        self.targetsRendered = False

        self.extradata_widgets = {}
        self.extradata_table = None
        self.no_installer_label = None

        self.alignment = gtk.Alignment(0.5, 0.5, 0.1, 0.2)
        self.vbox = gtk.VBox()
        self.set_border_width(10)
        self.toplabel = gtk.Label(_("Please configure the new Installation"))

        self.frm_srv = gtk.Frame(_("Server"))
        self.frm_repo = gtk.Frame(_("Repository"))
        self.frm_db = gtk.Frame(_("Database"))
        self.frm_target = gtk.Frame(_("Target-OS"))
        self.frm_extradata = gtk.Frame()

        self.frm_srv_tbl = gtk.Table(2, 2, False)
        self.frm_repo_tbl = gtk.Table(2, 1, False)
        self.frm_db_tbl = gtk.Table(2, 2, False)
        self.frm_target_tbl = gtk.Table(3, 1, False)
        self.frm_root_tbl = gtk.Table(2, 2, False)

        self.srv_combobox = ObjectCombo(self, "Server", server)

        self.srv_label = gtk.Label(_("Server:"))
        self.srv_name_label = gtk.Label(_("New Instance Name:"))
        self.srv_name_entry = DefaultEntry(default_message=_("Instance-Name"))

        self.frm_srv_tbl.attach(self.srv_label, 0, 1, 0, 1)
        self.frm_srv_tbl.attach(self.srv_combobox, 1, 2, 0, 1)
        self.frm_srv_tbl.attach(self.srv_name_label, 0, 1, 1, 2)
        self.frm_srv_tbl.attach(self.srv_name_entry, 1, 2, 1, 2)
        self.frm_srv.add(self.frm_srv_tbl)

        self.repo_combobox = ObjectCombo(self,
                                         "Skarphed_repo",
                                         selectFirst=True)
        self.repo_label = gtk.Label(_("Repository"))

        self.frm_repo_tbl.attach(self.repo_label, 0, 1, 0, 1)
        self.frm_repo_tbl.attach(self.repo_combobox, 1, 2, 0, 1)
        self.frm_repo.add(self.frm_repo_tbl)

        self.db_radio_new = gtk.RadioButton(None, _("Create new on Database:"))
        self.db_radio_use = gtk.RadioButton(self.db_radio_new,
                                            _("Use existing Schema:"))
        self.db_db_combo = ObjectCombo(self, "Database", selectFirst=True)
        self.db_schema_combo = ObjectCombo(self, "Schema", selectFirst=True)
        self.db_schema_combo.set_sensitive(False)

        self.db_radio_new.connect("toggled", self.cb_ToggledDb, 1)
        self.db_radio_use.connect("toggled", self.cb_ToggledDb, 2)

        self.frm_db_tbl.attach(self.db_radio_new, 0, 1, 0, 1)
        self.frm_db_tbl.attach(self.db_db_combo, 1, 2, 0, 1)
        self.frm_db_tbl.attach(self.db_radio_use, 0, 1, 1, 2)
        self.frm_db_tbl.attach(self.db_schema_combo, 1, 2, 1, 2)
        self.frm_db.add(self.frm_db_tbl)

        self.target_label = gtk.Label(_("Target-OS:"))
        self.target_display = gtk.Label("")

        self.frm_target_tbl.attach(self.target_label, 0, 1, 0, 1)
        self.frm_target_tbl.attach(self.target_display, 1, 2, 0, 1)
        self.frm_target.add(self.frm_target_tbl)

        self.ok = gtk.Button(stock=gtk.STOCK_OK)
        self.cancel = gtk.Button(stock=gtk.STOCK_CLOSE)
        self.progress = gtk.ProgressBar()
        self.buttonhbox = gtk.HBox()
        self.buttonhbox.pack_start(self.progress, True)
        self.buttonhbox.pack_start(self.cancel, False)
        self.buttonhbox.pack_start(self.ok, False)

        self.vboxdummy = gtk.Label("")
        self.vbox.pack_start(self.toplabel)
        self.vbox.pack_start(self.frm_srv)
        self.vbox.pack_start(self.frm_repo)
        self.vbox.pack_start(self.frm_db)
        self.vbox.pack_start(self.frm_target)
        self.vbox.pack_start(self.frm_extradata)
        self.vbox.pack_start(self.vboxdummy)
        self.vbox.pack_start(self.buttonhbox)
        self.alignment.add(self.vbox)
        self.add(self.alignment)

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

        self.getApplication().getMainWindow().openDialogPane(self)
        self.getApplication().getObjectStore().addCallback(self.render)
        self.render()