示例#1
0
    def OnRemove(self, event):  # wxGlade: ServerAdd.<event_handler>
        """
        @description: Called on Remove button press. Deleted the server info selected to be deleted.
        @todo:None
        @param self: reference variable
        @param event: event associated
        @return: None
        """
        if self.selectedUid is None:
            message = _("No server selected. Remove unsuccessful")
            self.ShowMessage(message, _("Warning"))
            grass.warning(message)
            StatusBar_fields = [message]
            self.StatusBar.SetStatusText(StatusBar_fields[0], 0)
            return
        else:
            if removeServerInfo(self.soup, self.selectedUid):
                if not self.saveXMLData():
                    uid = self.selectedUid
                    servername = self.servers[uid].servername
                    url = self.servers[uid].url
                    username = self.servers[uid].username
                    password = self.servers[uid].password
                    if addServerInfo(
                        self.soup,
                        self.soup.serverinfo,
                        uid,
                        servername,
                        url,
                        username,
                        password,
                    ):
                        message = "Unable to write data in file, Changes reverted, Remove unsuccessful"
                        grass.warning(message)
                        StatusBar_fields = [message]
                        self.StatusBar.SetStatusText(StatusBar_fields[0], 0)
                        return
                    else:
                        message = "Unable to write data in file, Unable to revert changes, Remove unsuccessful"
                        grass.warning(message)
                        StatusBar_fields = [message]
                        self.StatusBar.SetStatusText(StatusBar_fields[0], 0)
                        return

                message = "Remove Successful"
                StatusBar_fields = [message]
                self.StatusBar.SetStatusText(StatusBar_fields[0], 0)
                grass.message(message)
                del self.map_servernameTouid[self.selectedServer.servername]
                if len(self.servers) > 0:
                    self.ServerList.SetSelection(0)
                if len(self.servers) == 0:
                    self.ServerList.Clear()

                del self.servers[self.selectedUid]
                self.selectedUid = None
                self.__update_URL_List()
                self.selectedServer = None
                self.ServerNameText.Clear()
                self.PasswordText.Clear()
                self.URLText.Clear()
                self.UsernameText.Clear()
                msg = self.servers
                Publisher().sendMessage(("update.serverList"), msg)
            else:
                message = "Remove Unsuccessful"
                self.ShowMessage(message, "Warning")
                grass.warning(message)
                StatusBar_fields = [message]
                self.StatusBar.SetStatusText(StatusBar_fields[0], 0)
                return

        self.editOn = False
        event.Skip()
示例#2
0
    def OnSave(self, event):  # wxGlade: ServerAdd.<event_handler>
        """
        @description: Called on Save button press. Validates the information provided.
        Saves or updates the provided information.
        @todo:None
        @param self: reference variable
        @param event: event associated
        @return: None
        """
        newServerName = unicode(self.ServerNameText.GetValue())
        newUrl = self.URLText.GetValue()
        newUserName = self.UsernameText.GetValue()
        newPassword = self.PasswordText.GetValue()

        newUrl = self.parse_WMS_URL(newUrl.strip())
        if not newUrl:
            message = _("Provided WMS URL is not valid.")
            self.ShowMessage(message, _("Error"))
            grass.warning(message)
            return

        if self.selectedUid is None:
            update = False
        else:
            update = True

        serverData = ServerData()

        if len(newServerName) != 0:
            if self.selectedServer is not None:
                if not self.selectedServer.servername == newServerName:
                    if self.valueExists(self.servers, newServerName):
                        message = _(
                            "Server name already exists. Please enter a different server name"
                        )
                        self.ShowMessage(message, _("Warning"))
                        grass.warning(message)
                        StatusBar_fields = [message]
                        self.StatusBar.SetStatusText(StatusBar_fields[0], 0)
                        return

            validUrl, message = self.validateUrl(newUrl)
            if not validUrl:
                message = _("Unable to validate URL (%s)") % message
                self.ShowMessage(message, _("Warning"))
                grass.warning(message)
            else:
                message = _("Url validated (%s)") % message

            StatusBar_fields = [message]
            self.StatusBar.SetStatusText(StatusBar_fields[0], 0)
            serverData.servername = newServerName
            serverData.url = newUrl
            serverData.username = newUserName
            serverData.password = newPassword

            if update:
                if updateServerInfo(
                    self.soup,
                    self.soup.serverinfo,
                    self.selectedUid,
                    newServerName,
                    newUrl,
                    newUserName,
                    newPassword,
                ):
                    if not self.saveXMLData():
                        oldInfo = self.servers[self.selectedUid]
                        if updateServerInfo(
                            self.soup,
                            self.soup.serverinfo,
                            self.selectedUid,
                            oldInfo.servername,
                            oldInfo.url,
                            oldInfo.username,
                            oldInfo.password,
                        ):
                            message = _("Unable to save XML, changes reverted back")
                            grass.warning(message)
                            return
                        else:
                            message = _(
                                "Unable to save XML, changes will be reverted back on restart"
                            )
                            grass.warning(message)
                            return
                    message = "update save successful"
                    grass.message(message)
                    self.servers[self.selectedUid] = serverData
                    del self.map_servernameTouid[self.selectedServer.servername]
                    self.selectedServer = serverData
                    self.map_servernameTouid[newServerName] = self.selectedUid

                    msg = self.servers
                    Publisher().sendMessage(("update.serverList"), msg)

                    msg = self.map_servernameTouid
                    Publisher().sendMessage(("update.map_servernameTouid"), msg)
                    message = _("Server Info Updated")
                    grass.message(message)
                    StatusBar_fields = [message]
                    self.StatusBar.SetStatusText(StatusBar_fields[0], 0)
                    self.setModified(False)
                else:
                    message = _("Update not Successful")
                    self.ShowMessage(message, "Warning")
                    grass.warning(message)
                    StatusBar_fields = [message]
                    self.StatusBar.SetStatusText(StatusBar_fields[0], 0)
            else:
                uid = str(uuid.uuid4())
                if addServerInfo(
                    self.soup,
                    self.soup.serverinfo,
                    uid,
                    newServerName,
                    newUrl,
                    newUserName,
                    newPassword,
                ):
                    if not self.saveXMLData():
                        if removeServerInfo(self.soup, uid):
                            message = _("Unable to save XML. Info not saved")
                            grass.warning(message)
                            return
                        else:
                            message = _(
                                "Unable to save XML. Changes will be reverted back on restart"
                            )
                            grass.warning(message)
                            return
                    message = "soup save successfully"
                    grass.message(message)
                    self.selectedUid = uid
                    self.servers[self.selectedUid] = serverData
                    self.selectedServer = serverData
                    self.map_servernameTouid[newServerName] = uid
                    msg = self.servers
                    Publisher().sendMessage(("update.serverList"), msg)
                    msg = self.map_servernameTouid
                    Publisher().sendMessage(("update.map_servernameTouid"), msg)
                    message = "Server Info Saved Successfully"
                    grass.message(message)
                    StatusBar_fields = [message]
                    self.StatusBar.SetStatusText(StatusBar_fields[0], 0)
                    self.setModified(False)
                else:
                    message = "Save not successful"
                    self.ShowMessage(message, "Warning")
                    "Server Info Saved Successfully"
                    StatusBar_fields = [message]
                    self.StatusBar.SetStatusText(StatusBar_fields[0], 0)

            self.selectedURL = newUrl
            self.__update_URL_List()
        else:
            message = _("Please fill in server name")
            self.ShowMessage(message, _("Warning"))
            grass.warning(message)
            StatusBar_fields = [message]
            self.StatusBar.SetStatusText(StatusBar_fields[0], 0)

        self.editOn = False
        if event:
            event.Skip()