def __init__(self, parent): JDialog.__init__(self, parent) self._parent = parent e = c.resource('entry') self.open_file_chooser = JFileChooser(c.config('DEFAULT_OPEN_DIRECTORY')) self.open_file_chooser.multiSelectionEnabled = 0 self.open_file_chooser.fileSelectionMode = JFileChooser.DIRECTORIES_ONLY self.open_file_dir = c.config('DEFAULT_OPEN_DIRECTORY') self.open_file_label = JLabel(self.open_file_dir) self.save_file_chooser = JFileChooser(c.config('DEFAULT_SAVE_DIRECTORY')) self.save_file_chooser.multiSelectionEnabled = 0 self.save_file_chooser.fileSelectionMode = JFileChooser.DIRECTORIES_ONLY self.save_file_dir = c.config('DEFAULT_SAVE_DIRECTORY') self.save_file_label = JLabel(self.save_file_dir) self.language = PyLanguageComboBox(c.config('SUPPORTED_LOCALES'), Locale.getDefault()) self.language.set_selection(Locale.getDefault().language) if c.config('MIDLET_LOCALE') is not None and c.config('MIDLET_LOCALE') != '': midlet_locale = Locale(c.config('MIDLET_LOCALE')) else: midlet_locale = Locale.getDefault() self.midlet_language = PyLanguageComboBox(c.config('SUPPORTED_LOCALES')) self.midlet_language.set_selection(midlet_locale.language) main = PyGridBagPanel(title="") main.setPreferredSize(Dimension(400, 200)) lang_panel = PyBorderPanel(west=JLabel(e['language']), east=self.language, title="") main.add(lang_panel, gridx=0, gridy=0, fill="HORIZONTAL", anchor="LINE_START", weightx=0.5, weighty=0.5) midlet_lang_panel = PyBorderPanel(west=JLabel(_d['midlet_language']), east=self.midlet_language, title="") main.add(midlet_lang_panel, gridx=0, gridy=1, fill="HORIZONTAL", anchor="LINE_START", weightx=0.5, weighty=0.5) open_panel = PyBorderPanel(west=JLabel(_d['open_dir']), east=JButton(_d['select'], actionPerformed=self.action_set_open), south=self.open_file_label, title="") main.add(open_panel, gridx=0, gridy=2, fill="HORIZONTAL", anchor="LINE_START", weightx=0.5, weighty=0.5) save_panel = PyBorderPanel(west=JLabel(_d['save_dir']), east=JButton(_d['select'], actionPerformed=self.action_set_save), south=self.save_file_label, title="") main.add(save_panel, gridx=0, gridy=3, fill="HORIZONTAL", anchor="LINE_START", weightx=0.5, weighty=0.5) self.make_folder = JCheckBox() makefolder_panel = PyBorderPanel(west=JLabel(_d['make_dir']), east=self.make_folder, title="") main.add(makefolder_panel, gridx=0, gridy=4, fill="HORIZONTAL", anchor="LINE_START", weightx=0.5, weighty=0.5) self.make_folder.selected = c.config('MAKE_FOLDER') button_panel=PyPanel([JButton(_d['save'], actionPerformed=self.action_ok), JButton(_d['discard'], actionPerformed=self.action_cancel)]) panel=PyBorderPanel(south=button_panel, west=main) self.title = _d['interface_title'] self.contentPane.add(panel)
def __init__(self, parent): JDialog.__init__(self, parent) e = c.resource('entry') self.language = PyLanguageComboBox(c.config('SUPPORTED_LOCALES'), Locale.getDefault()) self.language.set_selection(c.config('DEFAULT_TEXT_LANGUAGE')) self.encoding = PyComboBox(c.SUPPORTED_ENCODINGS) self.para_start = PyComboBox([(x, x) for x in range(11)]) self.para_start.set_selection(c.config('DEFAULT_PARAGRAPH_START')) main_panel = PyGridBagPanel(title='') main_panel.add(JLabel(e['language']), gridx=0, gridy=0, anchor='LINE_START', weightx=0.5) main_panel.add(self.language, gridx=1, gridy=0, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(e['encoding']), gridx=0, gridy=1, anchor='LINE_START', weightx=0.5) main_panel.add(self.encoding, gridx=1, gridy=1, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(e['source_para_start']), gridx=0, gridy=2, anchor='LINE_START', weightx=0.5) main_panel.add(self.para_start, gridx=1, gridy=2, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.setPreferredSize(Dimension(300, 70)) button_panel=PyPanel([JButton(_d['save'], actionPerformed=self.action_ok), JButton(_d['discard'], actionPerformed=self.action_cancel)]) panel=PyGridBagPanel(title='') panel.add(main_panel) panel.add(button_panel, gridy=1) self.title = _d['text_input_title'] self.contentPane.add(panel)
def resource(name): result = {} try: r = ResourceBundle.getBundle("properties/" + name, Locale.getDefault(), imp.getSyspathJavaLoader()) for key in r.getKeys(): result[key] = r.getString(key) except MissingResourceException, e: pass
def __init__(self, app): #name: reference code for this tool used for exmaple in 'config.cfg' self.name = self.title.lower().replace(" ", "_") if self.name in app.toolsStatus: self.isActive = app.toolsStatus[self.name] else: self.isActive = True #localization if self.isTranslated: localeDir = File.separator.join([self.app.SCRIPTDIR, "tools", "data", self.title.replace(" ", ""), "locale"]) urls = [File(localeDir).toURI().toURL()] loader = URLClassLoader(urls) currentLocale = Locale.getDefault() self.strings = ResourceBundle.getBundle("MessagesBundle", currentLocale, loader) if self.name == "favourites": self.title = self.strings.getString("Favourites") if self.name == "favourites": ref = "Favourites" else: ref = self.title.replace(" ", "") self.bigIcon = ImageIcon(File.separator.join([app.SCRIPTDIR, "tools", "data", ref, "icons", "tool_24.png"])) self.smallIcon = ImageIcon(File.separator.join([app.SCRIPTDIR, "tools", "data", ref, "icons", "tool_16.png"])) if not hasattr(self, "isLocal") or not self.isLocal: self.isLocal = False if self.name in app.toolsPrefs: self.update_preferences() if not hasattr(self, "markerPosition"): self.markerPosition = None self.views = [] for viewName, checksList in self.toolInfo.iteritems(): self.views.append(View(app, self, viewName, checksList))
def get_pdbredo_data(pdbids=[]): global CACHE_EXPIRED alldatapath = os.path.join(PDBfiles.CACHEDIR, os.path.basename(ALLDATA_URL)) # if not os.path.isfile(alldatapath): #Download tries = 3 dateformat = " on %a, %d %b %Y %H:%M:%S " while tries > 0: tries -= 1 if sys.platform.startswith("java"): oldlocale = Locale.getDefault() Locale.setDefault(Locale.ENGLISH) try: download = False olddate = datetime.datetime(1, 1, 1) if os.path.isfile(alldatapath): alldata = open(alldatapath, "r") for line in alldata: if "Created on" in line: olddate = datetime.datetime.strptime(line.split("+")[0].split("Created")[1], dateformat) break alldata.close() rfh = urllib2.urlopen(ALLDATA_URL) firstlines = "" for line in rfh: if download: alldata.write(line) continue firstlines += line if not download and "Created on" in line: newdate = datetime.datetime.strptime(line.split("+")[0].split("Created")[1], dateformat) if newdate <= olddate: print "%s is up to date (%s)" % (alldatapath, olddate.__str__()) CACHE_EXPIRED = False break else: CACHE_EXPIRED = True download = True alldata = open(alldatapath, "w") alldata.write(firstlines) print "Downloading %s" % ALLDATA_URL # alldata.write(rfh.read()) alldata.close() rfh.close() break except Exception, e: print "Could not download", ALLDATA_URL print e print "Retrying...", tries time.sleep(1) if sys.platform.startswith("java"): Locale.setDefault(oldlocale)
def set_i18n(path=None, basename="sos.po.sos"): """Use this method to change the default i18n behavior from gettext to java ResourceBundle.getString. This is really only useful when using jython. Path is expected to be the path to a jarfile that contains the translation files (.properties)""" # Since we are trying to modify the module-level _sos variable # we have to declare it global global _sos try: from java.util import ResourceBundle, Locale rb = ResourceBundle.getBundle(basename, Locale.getDefault(), _get_classloader(path)) def _java(msg): try: return rb.getString(msg).encode('utf-8') except: return msg _sos = _java except: pass
def __init__(self): self.SCRIPTDIR = SCRIPTDIR #Localization urls = [ File(File.separator.join([self.SCRIPTDIR, "data", "locale"])).toURI().toURL() ] loader = URLClassLoader(urls) currentLocale = Locale.getDefault() self.strings = ResourceBundle.getBundle("MessagesBundle", currentLocale, loader) #Read config self.favZone = None self.zones = None self.config = ConfigLoader(self) """Build tools instances""" self.allTools = AllTools(self).tools for tool in self.allTools: if tool.name == "favourites": self.favouritesTool = tool break self.realTools = [ tool for tool in self.allTools if tool.name not in ("favourites", "localfile") ] #remove tools disabled from config file self.tools = [ tool for tool in self.allTools if tool.isActive or tool.name in ("favourites") ] #add favourite checks to Favourites tool if "favourites" in self.toolsPrefs: favChecks = self.toolsPrefs["favourites"]["checks"] if favChecks != "": for favCheck in favChecks.split("|"): (toolName, viewName, checkName) = favCheck.split(".") for tool in self.tools: if tool.name == toolName: for view in tool.views: if view.name == viewName: for check in view.checks: if check.name == checkName: self.favouritesTool.views[ 0].checks.append(check) """Build dialog for manual reporting of false positive""" self.falsePositiveDlg = FalsePositiveDialog( Main.parent, self.strings.getString("false_positives_title"), True, self) """Build qat_script toggleDialog""" #BUG: it steals icon from validator. #Is it possible ot use an icon not from 'dialogs' dir? icon = "validator.png" self.dlg = QatDialog(self.strings.getString("qat_dialog_title"), icon, "Show ", None, 250, self) self.create_new_dataset_if_empty() Main.map.addToggleDialog(self.dlg) """Build processing dialog""" self.downloadAndReadDlg = DownloadAndReadDialog( Main.parent, self.strings.getString("download_dialog_title"), False, self) """Build quality assurance tools menu""" self.menu = QatMenu(self, "QA Tools") menu.add(self.menu) menu.repaint() """Initialization""" #Read ids of OSM objects that the user wants to be ignored self.ignore_file = File.separator.join( [self.SCRIPTDIR, "data", "ignoreids.csv"]) self.read_ignore() self.falsePositive = [] # info regarding false positive self.selectedTool = self.tools[0] self.selectedView = self.selectedTool.views[0] # first view self.selectedTableModel = self.selectedView.tableModel self.selectedChecks = [] self.downloadingChecks = [] self.clickedError = None self.errorsData = None self.zoneBbox = None # bbox of current JOSM view self.selectedError = None self.url = None # url of errors self.errorLayers = [] # list of layers with error markers self.selectionChangedFromMenuOrLayer = False self.dlg.toolsCombo.setSelectedIndex(0) print "\nINFO: Quality Assurance Tools script is running: ", self.SCRIPTVERSION # Check if using the latest version if self.checkUpdate == "on": update_checker.Updater(self, "auto")
def buildMonthYearEntry(entry): localDate = entry.getKey().minusMonths(1) return String.valueOf(localDate.getYear()) + " " + \ localDate.getMonth().getDisplayName(TextStyle.FULL, Locale.getDefault())
def addForecasts(self, forecasts): self.forecastLayout.removeAllViews() self.scrollView.scrollTo(0, 0) if len(forecasts) == 0: return self.placeLabel.setText(forecasts[0].place) self.creditLabel.setText(forecasts[0].credit) firstDate = forecasts[0].from_ calendar = Calendar.getInstance() calendar.setTime(firstDate) currentDay = calendar.get(Calendar.DAY_OF_MONTH) context = self.getContext() for forecast in forecasts: # Date # Temperature Symbol Description # Wind # Get the day of the month. date = forecast.from_ calendar.setTime(date) day = calendar.get(Calendar.DAY_OF_MONTH) # Add an item for the date for the first item and any item # following a day change. if date == firstDate or day != currentDay: dateView = TextView(context) dateView.setText( calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault()) + " " + \ str(day) + " " + \ calendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.getDefault()) + " " + \ str(calendar.get(Calendar.YEAR))) dateView.setGravity(Gravity.CENTER) dateView.setTypeface(Typeface.create(None, Typeface.BOLD)) dateView.setBackgroundColor(self.lightBackground) dateView.setTextColor(0xff000000) self.forecastLayout.addView(dateView, self.rowLayout()) currentDay = day # Time timeString = String.format( "%02d:%02d:%02d - ", array([ calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND) ])) date = forecast.to_ calendar.setTime(date) timeString += String.format( "%02d:%02d:%02d", array([ calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND) ])) timeView = TextView(context) timeView.setText(timeString) timeView.setGravity(Gravity.CENTER) timeView.setTypeface(Typeface.create(None, Typeface.BOLD)) self.forecastLayout.addView(timeView, self.rowLayout()) # Symbol, temperature, description and wind row = RelativeLayout(context) # Symbol lp = self.itemLayout() lp.addRule(RelativeLayout.CENTER_IN_PARENT) if forecast.symbol != -1: imageView = ImageView(context) imageView.setImageResource(forecast.symbol) row.addView(imageView, lp) else: spacer = Space(context) row.addView(spacer, lp) # Temperature tempView = TextView(context) tempView.setTextSize(tempView.getTextSize() * 2) if forecast.temperatureUnit == "celsius": tempView.setText(forecast.temperature + u"\u2103") else: tempView.setText(forecast.temperature + " " + forecast.temperatureUnit) lp = self.itemLayout() lp.addRule(RelativeLayout.CENTER_VERTICAL) lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT) row.addView(tempView, lp) # Description and wind speed descLayout = LinearLayout(context) descLayout.setOrientation(LinearLayout.VERTICAL) descView = TextView(context) descView.setText(forecast.description) descLayout.addView(descView, lp) windView = TextView(context) windView.setText(forecast.windSpeed) descLayout.addView(windView, lp) lp = self.itemLayout() lp.addRule(RelativeLayout.CENTER_VERTICAL) lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT) row.addView(descLayout, lp) self.forecastLayout.addView(row, self.rowLayout())
def __init__(self): self.SCRIPTDIR = SCRIPTDIR #Localization urls = [File(File.separator.join([self.SCRIPTDIR, "data", "locale"])).toURI().toURL()] loader = URLClassLoader(urls) currentLocale = Locale.getDefault() self.strings = ResourceBundle.getBundle("MessagesBundle", currentLocale, loader) #Read config self.favZone = None self.zones = None self.config = ConfigLoader(self) """Build tools instances""" self.allTools = AllTools(self).tools for tool in self.allTools: if tool.name == "favourites": self.favouritesTool = tool break self.realTools = [tool for tool in self.allTools if tool.name not in ("favourites", "localfile")] #remove tools disabled from config file self.tools = [tool for tool in self.allTools if tool.isActive or tool.name in ("favourites")] #add favourite checks to Favourites tool if "favourites" in self.toolsPrefs: favChecks = self.toolsPrefs["favourites"]["checks"] if favChecks != "": for favCheck in favChecks.split("|"): (toolName, viewName, checkName) = favCheck.split(".") for tool in self.tools: if tool.name == toolName: for view in tool.views: if view.name == viewName: for check in view.checks: if check.name == checkName: self.favouritesTool.views[0].checks.append(check) """Build dialog for manual reporting of false positive""" self.falsePositiveDlg = FalsePositiveDialog( Main.parent, self.strings.getString("false_positives_title"), True, self) """Build qat_script toggleDialog""" #BUG: it steals icon from validator. #Is it possible ot use an icon not from 'dialogs' dir? icon = "validator.png" self.dlg = QatDialog(self.strings.getString("qat_dialog_title"), icon, "Show ", None, 250, self) self.create_new_dataset_if_empty() Main.map.addToggleDialog(self.dlg) """Build processing dialog""" self.downloadAndReadDlg = DownloadAndReadDialog(Main.parent, self.strings.getString("download_dialog_title"), False, self) """Build quality assurance tools menu""" self.menu = QatMenu(self, "QA Tools") menu.add(self.menu) menu.repaint() """Initialization""" #Read ids of OSM objects that the user wants to be ignored self.ignore_file = File.separator.join([self.SCRIPTDIR, "data", "ignoreids.csv"]) self.read_ignore() self.falsePositive = [] # info regarding false positive self.selectedTool = self.tools[0] self.selectedView = self.selectedTool.views[0] # first view self.selectedTableModel = self.selectedView.tableModel self.selectedChecks = [] self.downloadingChecks = [] self.clickedError = None self.errorsData = None self.zoneBbox = None # bbox of current JOSM view self.selectedError = None self.url = None # url of errors self.errorLayers = [] # list of layers with error markers self.selectionChangedFromMenuOrLayer = False self.dlg.toolsCombo.setSelectedIndex(0) print "\nINFO: Quality Assurance Tools script is running: ", self.SCRIPTVERSION # Check if using the latest version if self.checkUpdate == "on": update_checker.Updater(self, "auto")
def __init__(self, language_list, current_locale=Locale.getDefault()): items = [] for lang in language_list: locale_language = Locale(lang).getDisplayLanguage(current_locale) items.append((lang, locale_language.capitalize())) PyComboBox.__init__(self, items)