def merge(self, event): if self.frame.tmpltXML is not None: self.frame.statusbar.SetStatusText("Loading......") itemID = self.frame.currentItem self.frame.tree_ctrl.SelectItem(itemID, select=True) pydata = self.frame.tree_ctrl.GetPyData(itemID) # new stuff for _0_3 ## refactor - move to util so util checks datatype datatype, idx1, idx2 = GO.util.getFileType(str(pydata[2])) #print datatype if datatype: record = datatype(str(pydata[2])) isoMDRecord = record.x19139Meta() isoMDRecord['{http://www.isotc211.org/2005/gmd}contact'] = self.userinfo #print isoMDRecord mdrecord = record.xMeta() md = MDR.metadataRecord() root = "." self.merged = md.mergeInfo(isoMDRecord, self.frame.tmpltXML, root) self.frame.postMessage(self.merged) out = 1 else: self.frame.postMessage("Please login and select template metadata record.") out = 0 self.frame.statusbar.SetStatusText("Statusbar") return out
def tmpltChoice(self, event): if self.cb.GetSelection(): selString = self.cb.GetString(self.cb.GetSelection()) selId = self.controller.tmpltList[selString] self.tmpltXML, self.schema = MDR.metadataRecord().getTemplateMDRecord(self.controller.user, self.controller.pword, selId) print "hi", self.schema self.postMessage(self.tmpltXML)
def loginAction(self, username, password): self.user = username self.pword = password MDR.GNConnection.setUser(self.user) MDR.GNConnection.setPass(self.pword) md = MDR.metadataRecord() self.tmpltList = md.GetTemplateList(self.user, self.pword) self.userinfo = md.GetUserInfo(self.user, self.pword) keys = self.tmpltList.keys() keys.sort() self.frame.popTmpltList(keys)
def xtrct(self, event): # wxGlade: MyFrame.<event_handler> output = [] ## status bar is not clearing - done 14-3-9 BC self.frame.statusbar.SetStatusText("Loading......") itemID = self.frame.currentItem self.frame.tree_ctrl.SelectItem(itemID, select=True) pydata = self.frame.tree_ctrl.GetPyData(itemID) #check for existing metadata xml or html or htm file fname,ext = os.path.splitext(str(pydata[1])) mdl = 0 mdf = [] mdf.append(fname + '.htm') mdf.append(fname + '.html') mdf.append(fname + '.xml') print mdf for name in mdf : if os.path.exists(name): with open(name, 'r') as fo: output += ("Metadata link exists!", fo.read()) # new stuff for _0_3 ## refactor - move to util so util checks datatype datatype, idx1, idx2 = GO.util.getFileType(str(pydata[2])) print datatype, idx1, idx2 if datatype: record = datatype(str(pydata[2])) print 'record', record mdrecord = record.xMeta() print 'mdrecord', mdrecord md = MDR.metadataRecord() print 'md' ## Can I find a way to avoid passing self? ##display = md.displayMDRecord(mdrecord) output.append(mdrecord) del mdrecord self.frame.postMessage(output) # end new stuff else : self.frame.postMessage("Non-gis Data") self.frame.statusbar.SetStatusText("Statusbar")
def submitGN(self, event): if self.merge(event): self.frame.statusbar.SetStatusText("Loading......") md = MDR.metadataRecord() uuid, id, cookie = md.submitMDRecord(self.merged, self.user, self.pword) GNServer = MDR.GNConnection.GNServer edlink = 'http://' + GNServer + '/geonetwork/srv/en/metadata.edit?id='+ id link = 'http://' + GNServer + '/geonetwork/srv/en/metadata.show?uuid='+ uuid #self.frame.postMessage(link) self.frame.statusbar.SetStatusText(link) htxt = """<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="REFRESH" content="0;""" + link + """"> </head> <BODY></BODY> </HTML>""" itemID = self.frame.currentItem pydata = self.frame.tree_ctrl.GetPyData(itemID) fname = os.path.splitext(str(pydata[1])) htfn = fname[0] + ".htm" hfile = open(htfn, 'w') hfile.write(htxt) self.frame.postMessage(uuid) self.frame.postHTML(edlink) ## self._hyper1 = hl.HyperLinkCtrl(self, wx.ID_ANY, "GeoNetwork Edit Page", ## URL=link) ## contents.Add(self._hyper1, 0, wx.ALL, 10) ## else: self.frame.postMessage("Please login and select template metadata record.") self.frame.statusbar.SetStatusText("Statusbar")