def actionPerformed(self, event): command = event.getActionCommand() if self.itemType == "dialog": #False positives dialog if command == self.strings.getString("False_positives..."): self.app.falsePositiveDlg.show() #Preferences dialog elif command == self.strings.getString("Preferences..."): self.app.open_preferences("from menu") #About dialog elif command == self.strings.getString("About..."): try: self.app.aboutDlg except AttributeError: #build about dialog self.app.aboutDlg = AboutDialog( Main.parent, self.strings.getString("about_title"), True, self.app) self.app.aboutDlg.show() #Web link of the tool elif self.itemType == "link": OpenBrowser.displayUrl(self.tool.uri) elif self.itemType in ("check", "local file"): #Open local GPX file with errors if self.itemType == "local file": fileNameExtensionFilter = FileNameExtensionFilter("files GPX (*.gpx)", ["gpx"]) chooser = DiskAccessAction.createAndOpenFileChooser(True, False, self.strings.getString("Open_a_GPX_file"), fileNameExtensionFilter, JFileChooser.FILES_ONLY, None) if chooser is None: return filePath = chooser.getSelectedFile() #remove former loaded local file for i, tool in enumerate(self.app.tools): if filePath.getName() == tool.name: self.app.dlg.toolsCombo.removeItemAt(i) del self.app.tools[i] #create a new local file tool self.tool = LocalFileTool(self.app, filePath) self.view = self.tool.views[0] self.check = self.view.checks[0] self.app.tools.append(self.tool) #add tool to toggle dialog self.app.dlg.add_data_to_models(self.tool) selection = (self.tool, self.view, self.check) self.app.on_selection_changed("menu", selection)
def actionPerformed(self, event): command = event.getActionCommand() if self.itemType == "dialog": #False positives dialog if command == self.strings.getString("False_positives..."): self.app.falsePositiveDlg.show() #Preferences dialog elif command == self.strings.getString("Preferences..."): self.app.open_preferences("from menu") #About dialog elif command == self.strings.getString("About..."): try: self.app.aboutDlg except AttributeError: #build about dialog self.app.aboutDlg = AboutDialog( Main.parent, self.strings.getString("about_title"), True, self.app) self.app.aboutDlg.show() #Web link of the tool elif self.itemType == "link": OpenBrowser.displayUrl(self.tool.uri) elif self.itemType in ("check", "local file"): #Open local GPX file with errors if self.itemType == "local file": fileNameExtensionFilter = FileNameExtensionFilter( "files GPX (*.gpx)", ["gpx"]) chooser = DiskAccessAction.createAndOpenFileChooser( True, False, self.strings.getString("Open_a_GPX_file"), fileNameExtensionFilter, JFileChooser.FILES_ONLY, None) if chooser is None: return filePath = chooser.getSelectedFile() #remove former loaded local file for i, tool in enumerate(self.app.tools): if filePath.getName() == tool.name: self.app.dlg.toolsCombo.removeItemAt(i) del self.app.tools[i] #create a new local file tool self.tool = LocalFileTool(self.app, filePath) self.view = self.tool.views[0] self.check = self.view.checks[0] self.app.tools.append(self.tool) #add tool to toggle dialog self.app.dlg.add_data_to_models(self.tool) selection = (self.tool, self.view, self.check) self.app.on_selection_changed("menu", selection)
def actionPerformed(self, event): """Click on the checksTable popup """ check = self.app.selectedChecks[0] source = event.getSource() if source in (self.app.dlg.menuItemAdd, self.app.dlg.menuItemRemove): tool = self.app.favouritesTool view = tool.views[0] if source == self.app.dlg.menuItemAdd: #Add a check to Favourites tool if check not in tool.views[0].checks: view.checks.append(check) #add to checks table if check.errors is not None: errorsNumber = len(check.errors) else: errorsNumber = "" view.tableModel.addRow([check.icon, check.title, errorsNumber]) #add to menu self.app.menu.add_check_item(tool, view, check, self.app.favouritesMenu) if self.app.selectedTool != tool: selection = (tool, view, check) self.app.on_selection_changed("add favourite", selection) elif source == self.app.dlg.menuItemRemove: #Remove a check from Favourites tool if check in view.checks: checkIndex = view.checks.index(check) #remove from checks table view.tableModel.removeRow(checkIndex) #remove from menu self.app.favouritesMenu.remove(checkIndex) view.checks.remove(check) #Save favourites checks to preferences prop = "tool.%s.checks" % tool.name favChecks = "" for i, check in enumerate(view.checks): if i != 0: favChecks += "|" favChecks += "%s.%s.%s" % (check.tool.name, check.view.name, check.name) self.app.properties.setProperty(prop, favChecks) self.app.save_config() elif source == self.app.dlg.menuItemHelp: OpenBrowser.displayUrl(check.helpUrl)
def actionPerformed(self, event): """Click on the checksTable popup """ check = self.app.selectedChecks[0] source = event.getSource() if source in (self.app.dlg.menuItemAdd, self.app.dlg.menuItemRemove): tool = self.app.favouritesTool view = tool.views[0] if source == self.app.dlg.menuItemAdd: #Add a check to Favourites tool if check not in tool.views[0].checks: view.checks.append(check) #add to checks table if check.errors is not None: errorsNumber = len(check.errors) else: errorsNumber = "" view.tableModel.addRow( [check.icon, check.title, errorsNumber]) #add to menu self.app.menu.add_check_item(tool, view, check, self.app.favouritesMenu) if self.app.selectedTool != tool: selection = (tool, view, check) self.app.on_selection_changed("add favourite", selection) elif source == self.app.dlg.menuItemRemove: #Remove a check from Favourites tool if check in view.checks: checkIndex = view.checks.index(check) #remove from checks table view.tableModel.removeRow(checkIndex) #remove from menu self.app.favouritesMenu.remove(checkIndex) view.checks.remove(check) #Save favourites checks to preferences prop = "tool.%s.checks" % tool.name favChecks = "" for i, check in enumerate(view.checks): if i != 0: favChecks += "|" favChecks += "%s.%s.%s" % (check.tool.name, check.view.name, check.name) self.app.properties.setProperty(prop, favChecks) self.app.save_config() elif source == self.app.dlg.menuItemHelp: OpenBrowser.displayUrl(check.helpUrl)
def on_previewBtn_clicked(self, e): """Show the favourite area on a map """ mode = self.on_zone_edited() if not self.create_new_zone(mode): return zone = self.app.newZone if zone.zType == "rectangle": wktString = zone.bbox_to_wkt_string() else: wktString = zone.wktGeom script = '/*http://stackoverflow.com/questions/11954401/wkt-and-openlayers*/' script += '\nfunction init() {' script += '\n var map = new OpenLayers.Map({' script += '\n div: "map",' script += '\n projection: new OpenLayers.Projection("EPSG:900913"),' script += '\n displayProjection: new OpenLayers.Projection("EPSG:4326"),' script += '\n layers: [' script += '\n new OpenLayers.Layer.OSM()' script += '\n ]' script += '\n });' script += '\n var wkt = new OpenLayers.Format.WKT();' script += '\n var polygonFeature = wkt.read("%s");' % wktString script += '\n var vectors = new OpenLayers.Layer.Vector("Favourite area");' script += '\n map.addLayer(vectors);' script += '\n polygonFeature.geometry.transform(map.displayProjection, map.getProjectionObject());' script += '\n vectors.addFeatures([polygonFeature]);' script += '\n map.zoomToExtent(vectors.getDataExtent());' script += '\n};' scriptFile = open(File.separator.join([self.app.SCRIPTDIR, "html", "script.js"]), "w") scriptFile.write(script) scriptFile.close() OpenBrowser.displayUrl(File.separator.join([self.app.SCRIPTDIR, "html", "favourite_area.html"]))
def doInBackground(self): #print "\n- Checking for the latest version..." try: url = URL(self.app.scriptVersionUrl) uc = url.openConnection() ins = uc.getInputStream() p = Properties() p.load(ins) latestScriptVersion = p.getProperty("script") self.app.latestToolsVersion = p.getProperty("tools") except (UnknownHostException, SocketException): print "I can't connect to:\n%s" % url ins.close() return if latestScriptVersion == self.app.SCRIPTVERSION: #using latest script print " already using the latest script version:", self.app.SCRIPTVERSION if self.app.latestToolsVersion == self.app.TOOLSVERSION: #using latest tools print " already using the latest tools version:", self.app.TOOLSVERSION if self.mode != "auto": JOptionPane.showMessageDialog( self.app.preferencesFrame, self.app.strings.getString("using_latest")) return else: #not using latest tools print " tools can be updated: %s -> %s" % ( self.app.TOOLSVERSION, self.app.latestToolsVersion) if self.app.mode == "stable": infoString = self.app.strings.getString( "update_tools_question") else: infoString = self.app.strings.getString( "dev_update_tools_question") answer = JOptionPane.showConfirmDialog( Main.parent, infoString, self.app.strings.getString("updates_available"), JOptionPane.YES_NO_OPTION) if answer == 0: #Download the updated tools data print "\n- Update tools data" try: self.app.toolsProgressDialog except AttributeError: from java.awt import Dialog self.app.toolsProgressDialog = ToolsProgressDialog( Main.parent, self.app.strings.getString( "download_tools_updates"), Dialog.ModalityType.APPLICATION_MODAL, self.app) self.app.toolsProgressDialog.show() else: #not using latest script print "a new script version is available:\n%s -> %s" % ( self.app.SCRIPTVERSION, latestScriptVersion) messageArguments = array( [self.app.SCRIPTVERSION, latestScriptVersion], String) formatter = MessageFormat("") if self.app.mode == "stable": formatter.applyPattern( self.app.strings.getString("updates_warning")) infoBtnString = self.app.strings.getString("Visit_Wiki") else: formatter.applyPattern( self.app.strings.getString("dev_updates_warning")) infoBtnString = self.app.strings.getString("Visit_git") msg = formatter.format(messageArguments) options = [ self.app.strings.getString("Do_not_check_for_updates"), infoBtnString, self.app.strings.getString("cancel") ] answer = JOptionPane.showOptionDialog( Main.parent, msg, self.app.strings.getString("updates_available"), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, None, options, options[1]) if answer == 0: self.app.properties.setProperty("check_for_update", "off") self.app.save_config(self) elif answer == 1: if self.app.mode == "stable": url = self.app.SCRIPTWEBSITE else: url = self.app.GITWEBSITE OpenBrowser.displayUrl(url)
def doInBackground(self): #print "\n- Checking for the latest version..." try: url = URL(self.app.scriptVersionUrl) uc = url.openConnection() ins = uc.getInputStream() p = Properties() p.load(ins) latestScriptVersion = p.getProperty("script") self.app.latestToolsVersion = p.getProperty("tools") except (UnknownHostException, SocketException): print "I can't connect to:\n%s" % url ins.close() return if latestScriptVersion == self.app.SCRIPTVERSION: #using latest script print " already using the latest script version:", self.app.SCRIPTVERSION if self.app.latestToolsVersion == self.app.TOOLSVERSION: #using latest tools print " already using the latest tools version:", self.app.TOOLSVERSION if self.mode != "auto": JOptionPane.showMessageDialog(self.app.preferencesFrame, self.app.strings.getString("using_latest")) return else: #not using latest tools print " tools can be updated: %s -> %s" % (self.app.TOOLSVERSION, self.app.latestToolsVersion) answer = JOptionPane.showConfirmDialog(Main.parent, self.app.strings.getString("update_tools_question"), self.app.strings.getString("updates_available"), JOptionPane.YES_NO_OPTION) if answer == 0: #Download the updated tools data print "\n- Update tools data" try: self.app.toolsProgressDialog except AttributeError: from java.awt import Dialog self.app.toolsProgressDialog = ToolsProgressDialog(Main.parent, self.app.strings.getString("download_tools_updates"), Dialog.ModalityType.APPLICATION_MODAL, self.app) self.app.toolsProgressDialog.show() else: #not using latest script print "a new script version is available:\n%s -> %s" % (self.app.SCRIPTVERSION, latestScriptVersion) messageArguments = array([self.app.SCRIPTVERSION, latestScriptVersion], String) formatter = MessageFormat("") formatter.applyPattern(self.app.strings.getString("updates_warning")) msg = formatter.format(messageArguments) options = [ self.app.strings.getString("Do_not_check_for_updates"), self.app.strings.getString("Visit_Wiki"), self.app.strings.getString("cancel")] answer = JOptionPane.showOptionDialog(Main.parent, msg, self.app.strings.getString("updates_available"), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, None, options, options[1]) if answer == 0: self.app.properties.setProperty("check_for_update", "off") self.app.save_config(self) elif answer == 1: OpenBrowser.displayUrl(self.app.SCRIPTWEBSITE)
#print 'match: ', m, 'new: ', element.isNew() if not(element.isNew()) and lon and lat:# and m: print 'Coordinates not yet present in Wikidata, building up coordStatements' coordStatement = Q_school + '\tP625\t@' + lat[:7] + '/' + lon[:7] + '\tS854\t"https://www.openstreetmap.org/' + type + '/' + str(element.getId()) + '"\n' coordStatements[Q_school] = coordStatement # pprint.pprint(coordStatements) else: print 'Coordinates already present in Wikidata' if coordStatements: number = 0; qs_url=''; doit = '&doit' for coordStatement in coordStatements: print coordStatements[coordStatement] qs_url += URLEncoder.encode(coordStatements[coordStatement], "UTF-8") if number > 8: OpenBrowser.displayUrl('http://tools.wmflabs.org/wikidata-todo/quick_statements.php?list=' + qs_url + doit) number = 0; qs_url='' else: number+=1 if qs_url: OpenBrowser.displayUrl('http://tools.wmflabs.org/wikidata-todo/quick_statements.php?list=' + qs_url + doit) if noNewSchools: print 'switching to regular account' if not(Main.pref.get("osm-server.username") == osm_account): Main.pref.put("osm-server.username", osm_account) JOptionPane.showMessageDialog(Main.parent, "Switched back to regular OSM account, please upload the usual way") else: print 'switching to import account and selecting all new schools' Main.pref.put("osm-server.username", osm_import_account) SearchAction.search('amenity new (school | kindergarten | university | college)',SearchAction.SearchMode.fromCode('R')) Utils.copyToClipboard('''import=yes
# params = '?action=login&lgname=%s&lgpassword=%s&format=json'% (user,passw) # url = baseurl +'api.php'+params # Login request # r1 = HttpClient.create(URL(url), "POST") # print r1 # r2 = r1.connect().getContent() # print r2 #token = r1.json()['login']['token'] #params2 = params+'&lgtoken=%s'% token # Confirm token; should give "Success" #r2 = requests.post(baseurl+'api.php'+params2,auth=(authu,authp),cookies=r1.cookies) qs_url = 'http://tools.wmflabs.org/wikidata-todo/quick_statements.php?list=' + URLEncoder.encode( result, "UTF-8") + '&doit' OpenBrowser.displayUrl(qs_url) found = False for i in range(19, 0, -1): time.sleep(i / 3) params = '?action=wbsearchentities&search=' + URLEncoder.encode( name, "UTF-8") + '&language=en&format=json' url = baseurl + 'api.php' + params r1 = HttpClient.create(URL(url), "GET") r2 = r1.setHeader("Content-Type", "application/x-www-form-urlencoded" ).connect().fetchContent() #print dir(r2) print i, r2 Q_school = QinJSONRE.search(r2) if Q_school:
# baseurl = 'https://www.wikidata.org/w/' # params = '?action=login&lgname=%s&lgpassword=%s&format=json'% (user,passw) # url = baseurl +'api.php'+params # Login request # r1 = HttpClient.create(URL(url), "POST") # print r1 # r2 = r1.connect().getContent() # print r2 #token = r1.json()['login']['token'] #params2 = params+'&lgtoken=%s'% token # Confirm token; should give "Success" #r2 = requests.post(baseurl+'api.php'+params2,auth=(authu,authp),cookies=r1.cookies) qs_url = 'http://tools.wmflabs.org/wikidata-todo/quick_statements.php?list=' + URLEncoder.encode(result, "UTF-8") + '&doit' OpenBrowser.displayUrl(qs_url) found = False for i in range(19, 0, -1): time.sleep(i/3) params = '?action=wbsearchentities&search=' + URLEncoder.encode(name, "UTF-8") + '&language=en&format=json' url = baseurl + 'api.php' + params r1 = HttpClient.create(URL(url), "GET") r2 = r1.setHeader("Content-Type", "application/x-www-form-urlencoded").connect().fetchContent() #print dir(r2) print i, r2 Q_school = QinJSONRE.search(r2) if Q_school: print Q_school.group('qid') break else:
def hyperlinkUpdate(self, e): if e.getEventType() == HyperlinkEvent.EventType.ACTIVATED: OpenBrowser.displayUrl(e.getURL().toString())