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()
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()