def on_falsePositiveBtn_clicked(self, event): """Tell the tool server that selected error is a false positive """ check = self.selectedError.check tool = check.tool if tool.falseFeedbackMode == "url": #the tool supports automatic reporting if self.properties.getProperty("false_positive_warning.%s" % tool.name) == "on": messageArguments = array([tool.title], String) formatter = MessageFormat("") formatter.applyPattern(self.strings.getString("false_positive_confirmation")) msg = formatter.format(messageArguments) options = [self.strings.getString("yes_do_not_ask_the_next_time"), self.strings.getString("Yes"), self.strings.getString("No")] answer = JOptionPane.showOptionDialog(Main.parent, msg, self.strings.getString("flagging_a_false_positive"), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, None, options, options[2]) if answer == 0: #don't ask again self.properties.setProperty("false_positive_warning.%s" % tool.name, "off") self.save_config(self) elif answer == 2: #don't flag as false positive return tool.sayFalseBug(self.selectedError, check) elif tool.falseFeedbackMode == "msg": #the tool supports manual reporting of false positives if self.properties.getProperty("false_positive_warning.%s" % tool.name) == "on": messageArguments = array([tool.title], String) formatter = MessageFormat("") formatter.applyPattern(self.strings.getString("manual_false_positive_confirmation")) msg = formatter.format(messageArguments) options = [self.strings.getString("yes_do_not_ask_the_next_time"), self.strings.getString("Yes"), self.strings.getString("No")] answer = JOptionPane.showOptionDialog(Main.parent, msg, self.strings.getString("flagging_a_false_positive"), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, None, options, options[2]) errorInfo = [tool.title, check.name, self.selectedError.errorId, self.selectedError.osmId] self.falsePositiveDlg.tableModel.addRow(errorInfo) else: #the tool does not support feedback return self.editDone()
def update_favourite_zone_indicator(self): #icon if self.app.favZone is not None: self.favAreaIndicator.setIcon(self.app.favZone.icon) #tooltip messageArguments = array([self.app.favZone.name], String) formatter = MessageFormat("") formatter.applyPattern(self.app.strings.getString("favAreaIndicator_tooltip")) msg = formatter.format(messageArguments) self.favAreaIndicator.setToolTipText(msg) #status self.favAreaIndicator.setVisible(self.app.favouriteZoneStatus)
def update_favourite_zone_indicator(self): #icon if self.app.favZone is not None: self.favAreaIndicator.setIcon(self.app.favZone.icon) #tooltip messageArguments = array([self.app.favZone.name], String) formatter = MessageFormat("") formatter.applyPattern( self.app.strings.getString("favAreaIndicator_tooltip")) msg = formatter.format(messageArguments) self.favAreaIndicator.setToolTipText(msg) #status self.favAreaIndicator.setVisible(self.app.favouriteZoneStatus)
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)
def on_falsePositiveBtn_clicked(self, event): """Tell the tool server that selected error is a false positive """ check = self.selectedError.check tool = check.tool if tool.falseFeedbackMode == "url": #the tool supports automatic reporting if self.properties.getProperty("false_positive_warning.%s" % tool.name) == "on": messageArguments = array([tool.title], String) formatter = MessageFormat("") formatter.applyPattern( self.strings.getString("false_positive_confirmation")) msg = formatter.format(messageArguments) options = [ self.strings.getString("yes_do_not_ask_the_next_time"), self.strings.getString("Yes"), self.strings.getString("No") ] answer = JOptionPane.showOptionDialog( Main.parent, msg, self.strings.getString("flagging_a_false_positive"), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, None, options, options[2]) if answer == 0: #don't ask again self.properties.setProperty( "false_positive_warning.%s" % tool.name, "off") self.save_config(self) elif answer == 2: #don't flag as false positive return tool.sayFalseBug(self.selectedError, check) elif tool.falseFeedbackMode == "msg": #the tool supports manual reporting of false positives if self.properties.getProperty("false_positive_warning.%s" % tool.name) == "on": messageArguments = array([tool.title], String) formatter = MessageFormat("") formatter.applyPattern( self.strings.getString( "manual_false_positive_confirmation")) msg = formatter.format(messageArguments) options = [ self.strings.getString("yes_do_not_ask_the_next_time"), self.strings.getString("Yes"), self.strings.getString("No") ] answer = JOptionPane.showOptionDialog( Main.parent, msg, self.strings.getString("flagging_a_false_positive"), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, None, options, options[2]) errorInfo = [ tool.title, check.name, self.selectedError.errorId, self.selectedError.osmId ] self.falsePositiveDlg.tableModel.addRow(errorInfo) else: #the tool does not support feedback return self.editDone()