Example usage for java.util Locale getCountry

List of usage examples for java.util Locale getCountry

Introduction

In this page you can find the example usage for java.util Locale getCountry.

Prototype

public String getCountry() 

Source Link

Document

Returns the country/region code for this locale, which should either be the empty string, an uppercase ISO 3166 2-letter code, or a UN M.49 3-digit code.

Usage

From source file:org.apache.wicket.protocol.http.mock.MockHttpServletRequest.java

/**
 * Helper method to create some default headers for the request
 * @param l //from   ww  w  .j  a  v a  2s  . co m
 */
private void setDefaultHeaders(Locale l) {
    headers.clear();
    addHeader("Accept", "text/xml,application/xml,application/xhtml+xml,"
            + "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
    addHeader("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
    addHeader("Accept-Language", l.getLanguage().toLowerCase() + "-" + l.getCountry().toLowerCase() + ","
            + l.getLanguage().toLowerCase() + ";q=0.5");
    addHeader("User-Agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0");
}

From source file:edu.ku.brc.specify.tools.l10nios.StrLocalizerAppForiOS.java

/**
 * @param hideExisting//w  w w.j  av a2 s  .c  om
 * @return
 */
private void appendLocale(final Vector<Locale> locales, final Vector<Locale> destLocales,
        final String language) {
    for (Locale l : locales) {
        if (l.getLanguage().equals(language) && StringUtils.isEmpty(l.getCountry())) {
            destLocales.add(l);
            break;
        }
    }
}

From source file:org.sakaiproject.citation.impl.BaseConfigurationService.java

public List<Map<String, String>> getSaveciteClientsForLocale(Locale locale) {
    List<Map<String, String>> clients = null;
    if (this.saveciteClients == null || this.saveciteClients.isEmpty()) {
        clients = new ArrayList<Map<String, String>>();
    } else if (this.saveciteClients.containsKey(locale.toString())) {
        clients = this.saveciteClients.get(locale.toString());
    } else if (this.saveciteClients.containsKey(locale.getLanguage() + "_" + locale.getCountry())) {
        clients = this.saveciteClients.get(locale.getLanguage() + "_" + locale.getCountry());
    } else if (this.saveciteClients.containsKey(locale.getLanguage())) {
        clients = this.saveciteClients.get(locale.getLanguage());
    } else if (this.saveciteClients.containsKey(SERVER_DEFAULT_LOCALE)) {
        clients = this.saveciteClients.get(SERVER_DEFAULT_LOCALE);
    } else {/*  w w  w . j  a v a 2s.c  om*/
        clients = new ArrayList<Map<String, String>>();
    }
    return clients;
}

From source file:org.apache.jetspeed.services.profiler.JetspeedProfilerService.java

protected void getLanguageSettings(Profile profile, RunData rundata) {
    String language = rundata.getParameters().getString(Profiler.PARAM_LANGUAGE);

    if (language != null) {
        // dont use locale based fall back
        profile.setLanguage(language);//from  w  w  w . j  a  v a 2 s  .  c  o  m

        if (!language.equals("-1")) {
            String country = rundata.getParameters().getString(Profiler.PARAM_COUNTRY);
            if (country != null) {
                profile.setCountry(country);
            }
        }
    } else {
        Locale locale = (Locale) rundata.getUser().getTemp("locale");
        if (locale == null) {
            // Get the locale store it in the user object
            CustomLocalizationService locService = (CustomLocalizationService) ServiceUtil
                    .getServiceByName(LocalizationService.SERVICE_NAME);
            locale = locService.getLocale(rundata);
            if (locale == null) {
                locale = new Locale(TurbineResources.getString("locale.default.language", "en"),
                        TurbineResources.getString("locale.default.country", "US"));
            }
            rundata.getUser().setTemp("locale", locale);
        }

        if (useFallbackLanguage) {
            profile.setLanguage(locale.getLanguage());
        }

        if (useFallbackCountry) {
            profile.setCountry(locale.getCountry());
        }
    }
}

From source file:edu.ku.brc.specify.config.init.TreeDefSetupPanel.java

/**
 * @param disciplineType/*from  w w  w .  java  2 s.com*/
 */
private void loadTree(final STD_DISCIPLINES disciplineType) {
    treeDefList.clear();

    DisciplineType dType = disciplineType == null ? null : DisciplineType.getDiscipline(disciplineType);

    String fileName = null;
    if (classType == TaxonTreeDef.class) {
        fileName = dType.getFolder() + File.separator + "taxon_init.xml";

    } else if (classType == GeographyTreeDef.class) {
        fileName = "common" + File.separator + "geography_init.xml";

    } else if (classType == StorageTreeDef.class) {
        fileName = "common" + File.separator + "storage_init.xml";
    }

    Locale currLocale = SchemaI18NService.getCurrentLocale();

    File file = getConfigDir(fileName);
    if (file.exists()) {
        try {
            Element root = readFileToDOM4J(file);
            for (Object levelObj : root.selectNodes("/tree/treedef/level")) {
                Element level = (Element) levelObj;
                String name = getAttr(level, "name", null);
                int rank = getAttr(level, "rank", -1);
                boolean enforced = getAttr(level, "enforced", false);
                boolean isInFullName = getAttr(level, "infullname", false);

                String title = name;

                String text = null;
                for (Object localeObj : level.selectNodes("locale")) {
                    Element locale = (Element) localeObj;
                    String lang = getAttr(locale, "lang", null);
                    String country = getAttr(locale, "country", null);
                    String var = getAttr(locale, "var", null);

                    if (StringUtils.isNotEmpty(lang) && StringUtils.isNotEmpty(currLocale.getLanguage())
                            && lang.equals(currLocale.getLanguage())) {
                        title = getAttr(locale, "text", null);
                        if (StringUtils.isNotEmpty(country) && StringUtils.isNotEmpty(currLocale.getCountry())
                                && country.equals(currLocale.getCountry())) {
                            title = getAttr(locale, "text", null);
                            if (StringUtils.isNotEmpty(var) && StringUtils.isNotEmpty(currLocale.getVariant())
                                    && var.equals(currLocale.getVariant())) {
                                title = getAttr(locale, "text", null);
                            }
                        }
                    }
                }

                if (rank > -1) {
                    boolean required = false;
                    if (classType == TaxonTreeDef.class) {
                        required = TaxonTreeDef.isStdRequiredLevel(rank) || rank == 0;

                    } else if (classType == GeographyTreeDef.class) {
                        required = GeographyTreeDef.isStdRequiredLevel(rank) || rank == 0;
                    } else {
                        required = rank == 0;
                    }
                    String sep = classType == TaxonTreeDef.class ? " " : ", ";
                    treeDefList.add(new TreeDefRow(name, title, rank, required, enforced,
                            required && isInFullName, required || rank == 0, sep));
                }
            }

            if (model != null) {
                model.fireTableDataChanged();
            }

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

From source file:org.openmrs.Concept.java

/**
 * Returns all names available for locale langueage "or" country. <br>
 * <br>/*from w w w  . j a  v a  2  s.  c  o  m*/
 * 
 * @param locale locale for which names should be returned
 * @return Collection of ConceptNames with the given locale langueage or country
 */
private Collection<ConceptName> getPartiallyCompatibleNames(Locale locale) {
    Collection<ConceptName> localeNames = new Vector<ConceptName>();
    String language = locale.getLanguage();
    String country = locale.getCountry();
    for (ConceptName possibleName : getNames()) {
        Locale possibleLocale = possibleName.getLocale();
        if (language.equals(possibleLocale.getLanguage())
                || (StringUtils.isNotBlank(country) && country.equals(possibleLocale.getCountry()))) {
            localeNames.add(possibleName);
        }
    }
    return localeNames;
}

From source file:org.opencommercesearch.AbstractSearchServer.java

private SearchResponse doSearch(SolrQuery query, Site site, RepositoryItem catalog, Locale locale,
        boolean isSearch, boolean isRuleBasedPage, String categoryPath, boolean isOutletPage, String brandId,
        FilterQuery... filterQueries) throws SearchServerException {
    if (site == null) {
        throw new IllegalArgumentException("Missing site");
    }/*from w ww  .j  a  va 2s  . c o  m*/
    if (catalog == null) {
        throw new IllegalArgumentException("Missing catalog");
    }
    long startTime = System.currentTimeMillis();

    query.addFacetField("category");
    query.set("facet.mincount", 1);

    RuleManager ruleManager = new RuleManager(getSearchRepository(), getRulesBuilder(),
            getRulesSolrServer(locale));
    if ((query.getRows() != null && query.getRows() > 0)
            || (query.get("group") != null && query.getBool("group"))) {
        setGroupParams(query, locale);
        setFieldListParams(query, locale.getCountry(), catalog.getRepositoryId());
        try {
            ruleManager.setRuleParams(query, isSearch, isRuleBasedPage, categoryPath, filterQueries, catalog,
                    isOutletPage, brandId);

            if (ruleManager.getRules().containsKey(SearchRepositoryItemDescriptor.REDIRECT_RULE)) {
                Map<String, List<RepositoryItem>> rules = ruleManager.getRules();
                List<RepositoryItem> redirects = rules.get(SearchRepositoryItemDescriptor.REDIRECT_RULE);
                if (redirects != null) {
                    RepositoryItem redirect = redirects.get(0);
                    return new SearchResponse(query, null, null, null,
                            (String) redirect.getPropertyValue(RedirectRuleProperty.URL), null, true);
                }
            }

        } catch (RepositoryException ex) {
            if (isLoggingError()) {
                logError("Unable to load search rules: " + ex.getMessage());
            }
            throw create(SEARCH_EXCEPTION, ex);
        } catch (SolrServerException ex) {
            if (isLoggingError()) {
                logError("Unable to load search rules: " + ex.getMessage());
            }
            throw create(SEARCH_EXCEPTION, ex);
        } catch (SolrException ex) {
            if (isLoggingError()) {
                logError("Unable to load search rules: " + ex.getMessage());
            }
            throw create(SEARCH_EXCEPTION, ex);
        }
    } else {
        ruleManager.setFilterQueries(filterQueries, catalog.getRepositoryId(), query);
    }

    try {
        QueryResponse queryResponse = getCatalogSolrServer(locale).query(query);

        String correctedTerm = null;
        boolean matchesAll = true;

        //if no results, check for spelling errors
        if (query.getRows() > 0 && isEmptySearch(queryResponse.getGroupResponse())
                && StringUtils.isNotEmpty(query.getQuery())) {

            SpellCheckResponse spellCheckResponse = queryResponse.getSpellCheckResponse();
            //try to do searching for the corrected term matching all terms (q.op=AND)
            QueryResponse tentativeResponse = handleSpellCheck(spellCheckResponse, getCatalogSolrServer(locale),
                    query, "AND");
            if (tentativeResponse != null) {
                //if we got results, set the corrected term variable and proceed to return the results
                queryResponse = tentativeResponse;
                correctedTerm = spellCheckResponse.getCollatedResult();
            } else {
                //if we didn't got any response, try doing another search matching any term (q.op=OR)
                tentativeResponse = handleSpellCheck(spellCheckResponse, getCatalogSolrServer(locale), query,
                        "OR");
                if (tentativeResponse != null) {
                    //if we got results for the match any term scenario. Set similar results to true
                    //and set the corrected term.
                    queryResponse = tentativeResponse;
                    matchesAll = false;
                    correctedTerm = query.getQuery();
                }
            }

        }

        long searchTime = System.currentTimeMillis() - startTime;
        if (isLoggingDebug()) {
            logDebug("Search time is " + searchTime + ", search engine time is " + queryResponse.getQTime());
        }

        SearchResponse searchResponse = new SearchResponse(query, queryResponse, ruleManager, filterQueries,
                null, correctedTerm, matchesAll);
        searchResponse.setRuleQueryTime(ruleManager.getLoadRulesTime());
        return searchResponse;
    } catch (SolrServerException ex) {
        throw create(SEARCH_EXCEPTION, ex);
    } catch (SolrException ex) {
        throw create(SEARCH_EXCEPTION, ex);
    }

}

From source file:org.openmrs16.Concept.java

/**
 * Sets the short name for a locale. This sets tags on the concept name to indicate that it is
 * short for the language and country. Also, the name is added to the concept (if needed). <br/>
 * <br/>/*from w  ww  .ja  v a 2  s  .  com*/
 * If the country is specified in the locale, then the language is considered to be only implied
 * &mdash; it will only get set if there is not an existing short language name. <br/>
 * <br/>
 * If the country is not specified in the locale, then the language is considered an explicit
 * designation and the call is the equivalent of calling {@link #getShortNameInLanguage(String)}
 * .
 * 
 * @param locale the locale for which to set the short name
 * @param shortName name which is preferred in the locale
 */
public void setShortName(Locale locale, ConceptName shortName) {
    ConceptNameTag shortLanguage = ConceptNameTag.shortLanguageTagFor(locale);
    ConceptNameTag shortCountry = ConceptNameTag.shortCountryTagFor(locale);

    ConceptName currentShortNameInLanguage = getShortNameInLanguage(locale.getLanguage());
    if (shortCountry != null) {
        if (currentShortNameInLanguage == null) {
            shortName.addTag(shortLanguage);
        }

        ConceptName currentPreferredForCountry = getPreferredNameForCountry(locale.getCountry());
        if (currentPreferredForCountry != null) {
            currentPreferredForCountry.removeTag(shortCountry);
        }
        shortName.addTag(shortCountry);
    } else {
        if (currentShortNameInLanguage != null) {
            currentShortNameInLanguage.removeTag(shortLanguage);
        }
        shortName.addTag(shortLanguage);
    }

    addName(shortName);
}

From source file:org.dbgl.gui.SettingsDialog.java

protected void createContents() {
    shell = new Shell(getParent(), SWT.TITLE | SWT.CLOSE | SWT.BORDER | SWT.RESIZE | SWT.APPLICATION_MODAL);
    shell.setLayout(new BorderLayout(0, 0));
    shell.addControlListener(new SizeControlAdapter(shell, "settingsdialog"));
    shell.setText(settings.msg("dialog.settings.title"));

    final TabFolder tabFolder = new TabFolder(shell, SWT.NONE);

    final TabItem generalTabItem = new TabItem(tabFolder, SWT.NONE);
    generalTabItem.setText(settings.msg("dialog.settings.tab.general"));

    final Composite composite = new Composite(tabFolder, SWT.NONE);
    composite.setLayout(new GridLayout());
    generalTabItem.setControl(composite);

    final Group dosboxGroup = new Group(composite, SWT.NONE);
    dosboxGroup.setText(settings.msg("dialog.settings.dosbox"));
    dosboxGroup.setLayout(new GridLayout(2, false));

    final Label showConsoleLabel = new Label(dosboxGroup, SWT.NONE);
    showConsoleLabel.setText(settings.msg("dialog.settings.hidestatuswindow"));

    final Button console = new Button(dosboxGroup, SWT.CHECK);
    console.setSelection(conf.getBooleanValue("dosbox", "hideconsole"));

    final Group sendToGroup = new Group(composite, SWT.NONE);
    sendToGroup.setText(settings.msg("dialog.settings.sendto"));
    sendToGroup.setLayout(new GridLayout(2, false));

    final Label enableCommLabel = new Label(sendToGroup, SWT.NONE);
    enableCommLabel.setText(settings.msg("dialog.settings.enableport"));

    final Button portEnabled = new Button(sendToGroup, SWT.CHECK);
    portEnabled.setSelection(conf.getBooleanValue("communication", "port_enabled"));
    portEnabled.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent event) {
            port.setEnabled(portEnabled.getSelection());
        }//w w  w.  j a v a 2  s .co m
    });

    final Label portnumberLabel = new Label(sendToGroup, SWT.NONE);
    portnumberLabel.setText(settings.msg("dialog.settings.port"));

    port = new Text(sendToGroup, SWT.BORDER);
    port.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    port.setText(conf.getValue("communication", "port"));
    port.setEnabled(portEnabled.getSelection());

    final Group profileDefGroup = new Group(composite, SWT.NONE);
    profileDefGroup.setText(settings.msg("dialog.settings.profiledefaults"));
    profileDefGroup.setLayout(new GridLayout(3, false));

    final Label configFileLabel = new Label(profileDefGroup, SWT.NONE);
    configFileLabel.setText(settings.msg("dialog.settings.configfile"));

    confLocation = new Combo(profileDefGroup, SWT.READ_ONLY);
    confLocation.setItems(confLocations);
    confLocation.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    confLocation.select(conf.getIntValue("profiledefaults", "confpath"));

    confFilename = new Combo(profileDefGroup, SWT.READ_ONLY);
    confFilename.setItems(confFilenames);
    confFilename.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    confFilename.select(conf.getIntValue("profiledefaults", "conffile"));

    final Group i18nGroup = new Group(composite, SWT.NONE);
    i18nGroup.setText(settings.msg("dialog.settings.i18n"));
    i18nGroup.setLayout(new GridLayout(2, false));

    final Label languageLabel = new Label(i18nGroup, SWT.NONE);
    languageLabel.setText(settings.msg("dialog.settings.languagecountry"));

    localeCombo = new Combo(i18nGroup, SWT.READ_ONLY);
    Locale locale = new Locale(conf.getValue("locale", "language"), conf.getValue("locale", "country"),
            conf.getValue("locale", "variant"));

    final SortedMap<String, Locale> locales = new TreeMap<String, Locale>();
    String locString = "";

    java.util.List<String> supportedLanguages = new ArrayList<String>(SUPPORTED_LANGUAGES);
    File[] files = new File("./plugins/i18n").listFiles();
    if (files != null) {
        for (File file : files) {
            String name = file.getName();
            if (name.startsWith("MessagesBundle_") && name.endsWith(".properties")) {
                String code = name.substring("MessagesBundle_".length(), name.indexOf(".properties"));
                if (code.length() > 0) {
                    supportedLanguages.add(code);
                }
            }
        }
    }

    for (String lang : supportedLanguages) {
        Locale loc = allLocales.get(lang);
        String variant = null;
        if (loc == null && StringUtils.countMatches(lang, "_") == 2) {
            String langWithoutVariant = StringUtils.removeEnd(StringUtils.substringBeforeLast(lang, "_"), "_");
            variant = StringUtils.substringAfterLast(lang, "_");
            loc = allLocales.get(langWithoutVariant);
        }
        if (loc != null) {
            StringBuffer s = new StringBuffer(loc.getDisplayLanguage(Locale.getDefault()));
            if (loc.getCountry().length() > 0)
                s.append(" - ").append(loc.getDisplayCountry(Locale.getDefault()));
            if (variant != null) {
                s.append(" (").append(variant).append(')');
                loc = new Locale(loc.getLanguage(), loc.getCountry(), variant);
            }
            locales.put(s.toString(), loc);
            if (loc.equals(locale)) {
                locString = s.toString();
            }
        }
    }

    for (String sloc : locales.keySet()) {
        localeCombo.add(sloc);
    }
    localeCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    localeCombo.setText(locString);
    localeCombo.setVisibleItemCount(20);

    columnsTabItem = new TabItem(tabFolder, SWT.NONE);
    columnsTabItem.setText(settings.msg("dialog.settings.tab.profiletable"));

    final Composite composite2 = new Composite(tabFolder, SWT.NONE);
    composite2.setLayout(new BorderLayout(0, 0));
    columnsTabItem.setControl(composite2);

    final Group visColumnsGroup = new Group(composite2, SWT.NONE);
    visColumnsGroup.setLayout(new FillLayout());
    visColumnsGroup.setText(settings.msg("dialog.settings.visiblecolunms"));

    visible_columns = new Table(visColumnsGroup, SWT.FULL_SELECTION | SWT.BORDER | SWT.CHECK);
    visible_columns.setLinesVisible(true);

    TableColumn column1 = new TableColumn(visible_columns, SWT.NONE);
    column1.setWidth(350);

    java.util.List<Integer> visibleColumnIDs = new ArrayList<Integer>();
    for (int i = 0; i < MainWindow.columnNames.length; i++)
        if (conf.getBooleanValue("gui", "column" + (i + 1) + "visible"))
            visibleColumnIDs.add(i);
    java.util.List<Integer> orderedVisibleColumnIDs = new ArrayList<Integer>();
    int[] columnOrder = conf.getIntValues("gui", "columnorder");
    for (int i = 0; i < columnOrder.length; i++)
        orderedVisibleColumnIDs.add(visibleColumnIDs.get(columnOrder[i]));
    java.util.List<Integer> remainingColumnIDs = new ArrayList<Integer>();
    for (int i = 0; i < MainWindow.columnNames.length; i++)
        if (!orderedVisibleColumnIDs.contains(i))
            remainingColumnIDs.add(i);
    allColumnIDs = new ArrayList<Integer>(orderedVisibleColumnIDs);
    allColumnIDs.addAll(remainingColumnIDs);

    visibleColumns = new TableItem[MainWindow.columnNames.length];

    for (int i = 0; i < MainWindow.columnNames.length; i++) {
        visibleColumns[i] = new TableItem(visible_columns, SWT.BORDER);
        visibleColumns[i].setText(MainWindow.columnNames[allColumnIDs.get(i)]);
        visibleColumns[i]
                .setChecked(conf.getBooleanValue("gui", "column" + (allColumnIDs.get(i) + 1) + "visible"));
    }

    final TableEditor editor = new TableEditor(visible_columns);
    editor.horizontalAlignment = SWT.LEFT;
    editor.grabHorizontal = true;
    editor.minimumWidth = 50;

    visible_columns.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent event) {
            // Clean up any previous editor control
            Control oldEditor = editor.getEditor();
            if (oldEditor != null) {
                oldEditor.dispose();
            }

            // Identify the selected row
            TableItem item = (TableItem) event.item;
            if (item == null) {
                return;
            }
            int selIdx = item.getParent().getSelectionIndex();
            if (selIdx == -1)
                return;
            int idx = allColumnIDs.get(selIdx);
            if (idx < Constants.RO_COLUMN_NAMES
                    || idx >= (Constants.RO_COLUMN_NAMES + Constants.EDIT_COLUMN_NAMES))
                return;

            // The control that will be the editor must be a child of the table
            Text newEditor = new Text(visible_columns, SWT.NONE);
            newEditor.setText(item.getText(EDITABLE_COLUMN));
            newEditor.addModifyListener(new ModifyListener() {
                public void modifyText(final ModifyEvent mEvent) {
                    Text text = (Text) editor.getEditor();
                    editor.getItem().setText(EDITABLE_COLUMN, text.getText());
                }
            });
            newEditor.selectAll();
            newEditor.setFocus();
            editor.setEditor(newEditor, item, EDITABLE_COLUMN);
        }
    });

    final Group addProfGroup = new Group(composite2, SWT.NONE);
    addProfGroup.setLayout(new GridLayout(2, false));
    addProfGroup.setText(settings.msg("dialog.settings.addeditduplicateprofile"));
    addProfGroup.setLayoutData(BorderLayout.SOUTH);

    final Label autoSortLabel = new Label(addProfGroup, SWT.NONE);
    autoSortLabel.setText(settings.msg("dialog.settings.autosort"));

    final Button autosort = new Button(addProfGroup, SWT.CHECK);
    autosort.setSelection(conf.getBooleanValue("gui", "autosortonupdate"));

    final TabItem dynTabItem = new TabItem(tabFolder, SWT.NONE);
    dynTabItem.setText(settings.msg("dialog.settings.tab.dynamicoptions"));

    final Composite composite_1 = new Composite(tabFolder, SWT.NONE);
    composite_1.setLayout(new FillLayout());
    dynTabItem.setControl(composite_1);

    final Group dynOptionsGroup = new Group(composite_1, SWT.NONE);
    dynOptionsGroup.setLayout(new GridLayout(2, false));
    dynOptionsGroup.setText(settings.msg("dialog.settings.dynamicoptions"));

    final Label optionsLabel = new Label(dynOptionsGroup, SWT.NONE);
    optionsLabel.setText(settings.msg("dialog.settings.options"));

    final Label valuesLabel = new Label(dynOptionsGroup, SWT.NONE);
    valuesLabel.setText(settings.msg("dialog.settings.values"));

    options = new List(dynOptionsGroup, SWT.V_SCROLL | SWT.BORDER);
    options.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent event) {
            storeValues();
            previousSelection = options.getSelectionIndex();
            if (previousSelection != -1) {
                values.setText(conf.getMultilineValues("profile", options.getItem(previousSelection),
                        values.getLineDelimiter()));
            }
        }
    });
    options.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    for (String s : conf.getAllItemNames("profile")) {
        options.add(s);
    }

    values = new Text(dynOptionsGroup, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL);
    values.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    final TabItem guiTabItem = new TabItem(tabFolder, SWT.NONE);
    guiTabItem.setText(settings.msg("dialog.settings.tab.gui"));
    final Composite composite1 = new Composite(tabFolder, SWT.NONE);
    composite1.setLayout(new GridLayout(2, false));
    guiTabItem.setControl(composite1);
    Group screenshots = new Group(composite1, SWT.NONE);
    screenshots.setLayout(new GridLayout(3, false));
    GridData screenshotsLData = new GridData();
    screenshotsLData.grabExcessHorizontalSpace = true;
    screenshotsLData.horizontalAlignment = GridData.FILL;
    screenshotsLData.horizontalSpan = 2;
    screenshots.setLayoutData(screenshotsLData);
    screenshots.setText(settings.msg("dialog.settings.screenshots"));
    Label heightLabel = new Label(screenshots, SWT.NONE);
    heightLabel.setText(settings.msg("dialog.settings.height"));
    GridData sshotsHeightData = new GridData();
    sshotsHeightData.grabExcessHorizontalSpace = true;
    sshotsHeightData.horizontalAlignment = GridData.FILL;
    screenshotsHeight = new Scale(screenshots, SWT.NONE);
    screenshotsHeight.setMaximum(750);
    screenshotsHeight.setMinimum(50);
    screenshotsHeight.setLayoutData(sshotsHeightData);
    screenshotsHeight.setIncrement(25);
    screenshotsHeight.setPageIncrement(100);
    screenshotsHeight.setSelection(conf.getIntValue("gui", "screenshotsheight"));
    screenshotsHeight.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent evt) {
            heightValue.setText(screenshotsHeight.getSelection() + settings.msg("dialog.settings.px"));
            heightValue.pack();
        }
    });
    heightValue = new Label(screenshots, SWT.NONE);
    heightValue.setText(screenshotsHeight.getSelection() + settings.msg("dialog.settings.px"));

    final Label displayFilenameLabel = new Label(screenshots, SWT.NONE);
    displayFilenameLabel.setText(settings.msg("dialog.settings.screenshotsfilename"));
    final Button displayFilename = new Button(screenshots, SWT.CHECK);
    displayFilename.setSelection(conf.getBooleanValue("gui", "screenshotsfilename"));

    Group screenshotsColumn = new Group(composite1, SWT.NONE);
    screenshotsColumn.setLayout(new GridLayout(3, false));
    GridData screenshotsCData = new GridData();
    screenshotsCData.grabExcessHorizontalSpace = true;
    screenshotsCData.horizontalAlignment = GridData.FILL;
    screenshotsCData.horizontalSpan = 2;
    screenshotsColumn.setLayoutData(screenshotsCData);
    screenshotsColumn.setText(settings.msg("dialog.settings.screenshotscolumn"));
    Label columnHeightLabel = new Label(screenshotsColumn, SWT.NONE);
    columnHeightLabel.setText(settings.msg("dialog.settings.height"));
    screenshotsColumnHeight = new Scale(screenshotsColumn, SWT.NONE);
    screenshotsColumnHeight.setMaximum(200);
    screenshotsColumnHeight.setMinimum(16);
    GridData sshotsColumnHeightData = new GridData();
    sshotsColumnHeightData.grabExcessHorizontalSpace = true;
    sshotsColumnHeightData.horizontalAlignment = GridData.FILL;
    screenshotsColumnHeight.setLayoutData(sshotsColumnHeightData);
    screenshotsColumnHeight.setIncrement(4);
    screenshotsColumnHeight.setPageIncrement(16);
    screenshotsColumnHeight.setSelection(conf.getIntValue("gui", "screenshotscolumnheight"));
    screenshotsColumnHeight.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent evt) {
            columnHeightValue
                    .setText(screenshotsColumnHeight.getSelection() + settings.msg("dialog.settings.px"));
            columnHeightValue.pack();
        }
    });
    columnHeightValue = new Label(screenshotsColumn, SWT.NONE);
    columnHeightValue.setText(screenshotsColumnHeight.getSelection() + settings.msg("dialog.settings.px"));

    final Label stretchLabel = new Label(screenshotsColumn, SWT.NONE);
    stretchLabel.setText(settings.msg("dialog.settings.screenshotscolumnstretch"));
    final Button stretch = new Button(screenshotsColumn, SWT.CHECK);
    stretch.setSelection(conf.getBooleanValue("gui", "screenshotscolumnstretch"));
    new Label(screenshotsColumn, SWT.NONE);
    final Label keepAspectRatioLabel = new Label(screenshotsColumn, SWT.NONE);
    keepAspectRatioLabel.setText(settings.msg("dialog.settings.screenshotscolumnkeepaspectratio"));
    final Button keepAspectRatio = new Button(screenshotsColumn, SWT.CHECK);
    keepAspectRatio.setSelection(conf.getBooleanValue("gui", "screenshotscolumnkeepaspectratio"));
    new Label(screenshotsColumn, SWT.NONE);
    keepAspectRatio.setEnabled(stretch.getSelection());
    stretch.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent event) {
            keepAspectRatio.setEnabled(stretch.getSelection());
        }
    });

    Group buttonsGroup = new Group(composite1, SWT.NONE);
    buttonsGroup.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false));
    buttonsGroup.setLayout(new GridLayout(2, false));
    buttonsGroup.setText(settings.msg("dialog.settings.buttons"));

    final Label buttonLabel = new Label(buttonsGroup, SWT.NONE);
    buttonLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    buttonLabel.setText(settings.msg("dialog.settings.display"));

    buttonDisplay = new Combo(buttonsGroup, SWT.READ_ONLY);
    buttonDisplay.setItems(buttonDisplayOptions);
    buttonDisplay.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    buttonDisplay.select(conf.getIntValue("gui", "buttondisplay"));

    final Group notesGroup = new Group(composite1, SWT.NONE);
    notesGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    notesGroup.setLayout(new GridLayout(2, false));
    notesGroup.setText(settings.msg("dialog.profile.notes"));

    final Label fontLabel = new Label(notesGroup, SWT.NONE);
    fontLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    fontLabel.setText(settings.msg("dialog.settings.font"));

    final Button fontButton = new Button(notesGroup, SWT.PUSH);
    fontButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    Font f = GeneralPurposeGUI.stringToFont(shell.getDisplay(), port.getFont(),
            conf.getValues("gui", "notesfont"));
    fontButton.setText(f.getFontData()[0].getName());
    fontButton.setFont(f);
    fontButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            FontDialog fd = new FontDialog(shell, SWT.NONE);
            fd.setFontList(fontButton.getFont().getFontData());
            FontData newFont = fd.open();
            if (newFont != null) {
                fontButton.setText(newFont.getName());
                fontButton.setFont(new Font(shell.getDisplay(), newFont));
                notesGroup.setSize(notesGroup.computeSize(SWT.DEFAULT, SWT.DEFAULT));
                composite1.layout();
            }
        }
    });

    final TabItem enginesTabItem = new TabItem(tabFolder, SWT.NONE);
    enginesTabItem.setText(settings.msg("dialog.settings.tab.engines"));
    Composite compositeHoldingSubTabs = new Composite(tabFolder, SWT.NONE);
    compositeHoldingSubTabs.setLayout(new FillLayout());
    enginesTabItem.setControl(compositeHoldingSubTabs);
    final TabFolder enginesTabFolder = new TabFolder(compositeHoldingSubTabs, SWT.NONE);

    setTitle = new Button[NR_OF_ENGINES];
    setDev = new Button[NR_OF_ENGINES];
    setPub = new Button[NR_OF_ENGINES];
    setYear = new Button[NR_OF_ENGINES];
    setGenre = new Button[NR_OF_ENGINES];
    setLink = new Button[NR_OF_ENGINES];
    setRank = new Button[NR_OF_ENGINES];
    setDescr = new Button[NR_OF_ENGINES];
    allRegionsCoverArt = new Button[NR_OF_ENGINES];
    chooseCoverArt = new Button[NR_OF_ENGINES];
    chooseScreenshot = new Button[NR_OF_ENGINES];
    maxCoverArt = new Spinner[NR_OF_ENGINES];
    maxScreenshots = new Spinner[NR_OF_ENGINES];
    platformFilterValues = new Text[NR_OF_ENGINES];

    for (int i = 0; i < NR_OF_ENGINES; i++) {
        WebSearchEngine engine = EditProfileDialog.webSearchEngines.get(i);
        final TabItem engineTabItem = new TabItem(enginesTabFolder, SWT.NONE);
        engineTabItem.setText(settings.msg("dialog.settings.tab." + engine.getSimpleName()));
        Composite composite3 = new Composite(enginesTabFolder, SWT.NONE);
        composite3.setLayout(new GridLayout(1, true));
        engineTabItem.setControl(composite3);
        Group consult = new Group(composite3, SWT.NONE);
        consult.setLayout(new GridLayout(2, false));
        GridData consultLData = new GridData();
        consultLData.grabExcessHorizontalSpace = true;
        consultLData.horizontalAlignment = GridData.FILL;
        consultLData.grabExcessVerticalSpace = true;
        consultLData.verticalAlignment = GridData.FILL;
        consult.setLayoutData(consultLData);
        consult.setText(settings.msg("dialog.settings.consult", new String[] { engine.getName() }));
        Label titleLabel = new Label(consult, SWT.NONE);
        titleLabel.setText(settings.msg("dialog.settings.settitle"));
        setTitle[i] = new Button(consult, SWT.CHECK);
        setTitle[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_title"));
        Label devLabel = new Label(consult, SWT.NONE);
        devLabel.setText(settings.msg("dialog.settings.setdeveloper"));
        setDev[i] = new Button(consult, SWT.CHECK);
        setDev[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_developer"));
        if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("hotud")
                || engine.getSimpleName().equals("thegamesdb")) {
            Label pubLabel = new Label(consult, SWT.NONE);
            pubLabel.setText(settings.msg("dialog.settings.setpublisher"));
            setPub[i] = new Button(consult, SWT.CHECK);
            setPub[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_publisher"));
        }
        Label yearLabel = new Label(consult, SWT.NONE);
        yearLabel.setText(settings.msg("dialog.settings.setyear"));
        setYear[i] = new Button(consult, SWT.CHECK);
        setYear[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_year"));
        Label genreLabel = new Label(consult, SWT.NONE);
        genreLabel.setText(settings.msg("dialog.settings.setgenre"));
        setGenre[i] = new Button(consult, SWT.CHECK);
        setGenre[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_genre"));
        Label linkLabel = new Label(consult, SWT.NONE);
        linkLabel.setText(settings.msg("dialog.settings.setlink", new String[] { engine.getName() }));
        setLink[i] = new Button(consult, SWT.CHECK);
        setLink[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_link"));
        Label rankLabel = new Label(consult, SWT.NONE);
        rankLabel.setText(settings.msg("dialog.settings.setrank",
                new Object[] { MainWindow.columnNames[Constants.RO_COLUMN_NAMES + 8] }));
        setRank[i] = new Button(consult, SWT.CHECK);
        setRank[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_rank"));
        if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("hotud")
                || engine.getSimpleName().equals("thegamesdb")) {
            Label descrLabel = new Label(consult, SWT.NONE);
            descrLabel.setText(settings.msg("dialog.settings.setdescription"));
            setDescr[i] = new Button(consult, SWT.CHECK);
            setDescr[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_description"));
        }
        if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("thegamesdb")) {
            Label chooseCoverArtLabel = new Label(consult, SWT.NONE);
            chooseCoverArtLabel.setText(settings.msg("dialog.settings.choosecoverart"));
            Composite comp = new Composite(consult, SWT.NONE);
            GridLayout layout = new GridLayout(3, false);
            layout.marginWidth = 0;
            comp.setLayout(layout);
            chooseCoverArt[i] = new Button(comp, SWT.CHECK);
            chooseCoverArt[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "choose_coverart"));

            if (engine.getSimpleName().equals("mobygames")) {
                Label allRegionsCoverArtLabel = new Label(comp, SWT.NONE);
                allRegionsCoverArtLabel.setText(settings.msg("dialog.settings.allregionscoverart"));
                GridData gd = new GridData();
                gd.horizontalIndent = 40;
                allRegionsCoverArtLabel.setLayoutData(gd);

                allRegionsCoverArt[i] = new Button(comp, SWT.CHECK);
                allRegionsCoverArt[i].setSelection(
                        conf.getBooleanValue(engine.getSimpleName(), "force_all_regions_coverart"));
            }
        }
        if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet")
                || engine.getSimpleName().equals("thegamesdb")) {
            Label chooseScreenshotLabel = new Label(consult, SWT.NONE);
            chooseScreenshotLabel.setText(settings.msg("dialog.settings.choosescreenshot"));
            chooseScreenshot[i] = new Button(consult, SWT.CHECK);
            chooseScreenshot[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "choose_screenshot"));
        }
        if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("thegamesdb")) {
            final Label maxCoverArtLabel = new Label(consult, SWT.NONE);
            maxCoverArtLabel.setText(settings.msg("dialog.settings.multieditmaxcoverart"));
            maxCoverArt[i] = new Spinner(consult, SWT.BORDER);
            maxCoverArt[i].setLayoutData(new GridData(100, SWT.DEFAULT));
            maxCoverArt[i].setMinimum(0);
            maxCoverArt[i].setMaximum(Integer.MAX_VALUE);
            maxCoverArt[i].setSelection(conf.getIntValue(engine.getSimpleName(), "multi_max_coverart"));
        }
        if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet")
                || engine.getSimpleName().equals("thegamesdb")) {
            final Label maxScreenshotsLabel = new Label(consult, SWT.NONE);
            maxScreenshotsLabel.setText(settings.msg("dialog.settings.multieditmaxscreenshot"));
            maxScreenshots[i] = new Spinner(consult, SWT.BORDER);
            maxScreenshots[i].setLayoutData(new GridData(100, SWT.DEFAULT));
            maxScreenshots[i].setMinimum(0);
            maxScreenshots[i].setMaximum(Integer.MAX_VALUE);
            maxScreenshots[i].setSelection(conf.getIntValue(engine.getSimpleName(), "multi_max_screenshot"));
        }
        Label filterLabel = new Label(consult, SWT.NONE);
        filterLabel.setText(settings.msg("dialog.settings.platformfilter"));
        if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet")) {
            platformFilterValues[i] = new Text(consult, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL);
            platformFilterValues[i].setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
            platformFilterValues[i].setText(conf.getMultilineValues(engine.getSimpleName(), "platform_filter",
                    platformFilterValues[i].getLineDelimiter()));
        } else {
            platformFilterValues[i] = new Text(consult, SWT.BORDER);
            platformFilterValues[i].setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
            platformFilterValues[i].setText(conf.getValue(engine.getSimpleName(), "platform_filter"));
        }
    }

    final TabItem envTabItem = new TabItem(tabFolder, SWT.NONE);
    envTabItem.setText(settings.msg("dialog.settings.tab.environment"));
    Composite composite4 = new Composite(tabFolder, SWT.NONE);
    composite4.setLayout(new GridLayout(1, true));
    envTabItem.setControl(composite4);
    Group envGroup = new Group(composite4, SWT.NONE);
    envGroup.setLayout(new GridLayout(2, false));
    GridData envLData = new GridData();
    envLData.grabExcessHorizontalSpace = true;
    envLData.horizontalAlignment = GridData.FILL;
    envLData.grabExcessVerticalSpace = true;
    envLData.verticalAlignment = GridData.FILL;
    envGroup.setLayoutData(envLData);
    envGroup.setText(settings.msg("dialog.settings.environment"));
    Label enableEnvLabel = new Label(envGroup, SWT.NONE);
    enableEnvLabel.setText(settings.msg("dialog.settings.enableenvironment"));
    final Button enableEnv = new Button(envGroup, SWT.CHECK);
    enableEnv.setSelection(conf.getBooleanValue("environment", "use"));
    enableEnv.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent event) {
            envValues.setEnabled(enableEnv.getSelection());
        }
    });
    Label envLabel = new Label(envGroup, SWT.NONE);
    envLabel.setText(settings.msg("dialog.settings.environmentvariables"));
    envValues = new Text(envGroup, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL);
    envValues.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    envValues.setText(conf.getMultilineValues("environment", "value", envValues.getLineDelimiter()));
    envValues.setEnabled(enableEnv.getSelection());

    final Composite composite_7 = new Composite(shell, SWT.NONE);
    composite_7.setLayout(new GridLayout(2, true));
    composite_7.setLayoutData(BorderLayout.SOUTH);

    final Button okButton = new Button(composite_7, SWT.NONE);
    okButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent event) {
            if (!isValid()) {
                return;
            }

            changedVisColumns = haveColumnsBeenChanged();
            if (changedVisColumns)
                updateColumnSettings();

            conf.setBooleanValue("dosbox", "hideconsole", console.getSelection());
            conf.setBooleanValue("communication", "port_enabled", portEnabled.getSelection());
            conf.setValue("communication", "port", port.getText());
            conf.setIntValue("profiledefaults", "confpath", confLocation.getSelectionIndex());
            conf.setIntValue("profiledefaults", "conffile", confFilename.getSelectionIndex());
            conf.setValue("locale", "language", locales.get(localeCombo.getText()).getLanguage());
            conf.setValue("locale", "country", locales.get(localeCombo.getText()).getCountry());
            conf.setValue("locale", "variant", locales.get(localeCombo.getText()).getVariant());
            for (int i = 0; i < MainWindow.columnNames.length; i++) {
                conf.setBooleanValue("gui", "column" + (i + 1) + "visible",
                        visibleColumns[allColumnIDs.indexOf(i)].getChecked());
            }
            conf.setBooleanValue("gui", "autosortonupdate", autosort.getSelection());
            for (int i = 0; i < Constants.EDIT_COLUMN_NAMES; i++) {
                conf.setValue("gui", "custom" + (i + 1),
                        visibleColumns[allColumnIDs.indexOf(i + Constants.RO_COLUMN_NAMES)].getText());
            }
            conf.setIntValue("gui", "screenshotsheight", screenshotsHeight.getSelection());
            conf.setBooleanValue("gui", "screenshotsfilename", displayFilename.getSelection());
            conf.setIntValue("gui", "screenshotscolumnheight", screenshotsColumnHeight.getSelection());
            conf.setBooleanValue("gui", "screenshotscolumnstretch", stretch.getSelection());
            conf.setBooleanValue("gui", "screenshotscolumnkeepaspectratio", keepAspectRatio.getSelection());

            Rectangle rec = shell.getBounds();
            conf.setIntValue("gui", "settingsdialog_width", rec.width);
            conf.setIntValue("gui", "settingsdialog_height", rec.height);
            conf.setIntValue("gui", "buttondisplay", buttonDisplay.getSelectionIndex());
            conf.setMultilineValues("gui", "notesfont",
                    GeneralPurposeGUI.fontToString(shell.getDisplay(), fontButton.getFont()), "|");

            for (int i = 0; i < NR_OF_ENGINES; i++) {
                WebSearchEngine engine = EditProfileDialog.webSearchEngines.get(i);
                conf.setBooleanValue(engine.getSimpleName(), "set_title", setTitle[i].getSelection());
                conf.setBooleanValue(engine.getSimpleName(), "set_developer", setDev[i].getSelection());
                if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("hotud")
                        || engine.getSimpleName().equals("thegamesdb")) {
                    conf.setBooleanValue(engine.getSimpleName(), "set_publisher", setPub[i].getSelection());
                    conf.setBooleanValue(engine.getSimpleName(), "set_description", setDescr[i].getSelection());
                }
                conf.setBooleanValue(engine.getSimpleName(), "set_year", setYear[i].getSelection());
                conf.setBooleanValue(engine.getSimpleName(), "set_genre", setGenre[i].getSelection());
                conf.setBooleanValue(engine.getSimpleName(), "set_link", setLink[i].getSelection());
                conf.setBooleanValue(engine.getSimpleName(), "set_rank", setRank[i].getSelection());
                if (engine.getSimpleName().equals("mobygames")) {
                    conf.setBooleanValue(engine.getSimpleName(), "force_all_regions_coverart",
                            allRegionsCoverArt[i].getSelection());
                }
                if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("thegamesdb")) {
                    conf.setBooleanValue(engine.getSimpleName(), "choose_coverart",
                            chooseCoverArt[i].getSelection());
                    conf.setIntValue(engine.getSimpleName(), "multi_max_coverart",
                            maxCoverArt[i].getSelection());
                }
                if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet")
                        || engine.getSimpleName().equals("thegamesdb")) {
                    conf.setBooleanValue(engine.getSimpleName(), "choose_screenshot",
                            chooseScreenshot[i].getSelection());
                    conf.setIntValue(engine.getSimpleName(), "multi_max_screenshot",
                            maxScreenshots[i].getSelection());
                }
                if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet")) {
                    conf.setMultilineValues(engine.getSimpleName(), "platform_filter",
                            platformFilterValues[i].getText(), platformFilterValues[i].getLineDelimiter());
                } else {
                    conf.setValue(engine.getSimpleName(), "platform_filter", platformFilterValues[i].getText());
                }
            }

            conf.setBooleanValue("environment", "use", enableEnv.getSelection());
            conf.setMultilineValues("environment", "value", envValues.getText(), envValues.getLineDelimiter());

            storeValues();
            settings.getSettings().injectValuesFrom(conf);
            shell.close();
        }

        private boolean haveColumnsBeenChanged() {
            for (int i = 0; i < MainWindow.columnNames.length; i++)
                if ((conf.getBooleanValue("gui",
                        "column" + (allColumnIDs.get(i) + 1) + "visible") != visibleColumns[i].getChecked())
                        || !MainWindow.columnNames[allColumnIDs.get(i)].equals(visibleColumns[i].getText()))
                    return true;
            return false;
        }
    });
    shell.setDefaultButton(okButton);
    okButton.setText(settings.msg("button.ok"));

    final Button cancelButton = new Button(composite_7, SWT.NONE);
    cancelButton.setText(settings.msg("button.cancel"));
    cancelButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent event) {
            shell.close();
        }
    });

    final GridData gridData = new GridData();
    gridData.horizontalAlignment = SWT.FILL;
    gridData.widthHint = GeneralPurposeGUI.getWidth(okButton, cancelButton);
    okButton.setLayoutData(gridData);
    cancelButton.setLayoutData(gridData);
}

From source file:org.openmrs16.Concept.java

/**
 * Sets the preferred name for a locale. This sets tags on the concept name to indicate that it
 * is preferred for the language and country. Also, the name is added to the concept. If the
 * country is specified in the locale, then the language is considered to be only implied as
 * preferred &mdash; it will only get set if there is not an existing preferred language name.
 * /*  ww w.j  a v  a  2 s.  c  om*/
 * @param locale the locale for which to set the preferred name
 * @param preferredName name which is preferred in the locale
 * @should only allow one preferred name
 */
public void setPreferredName(Locale locale, ConceptName preferredName) {
    ConceptNameTag preferredLanguage = ConceptNameTag.preferredLanguageTagFor(locale);
    ConceptNameTag preferredCountry = ConceptNameTag.preferredCountryTagFor(locale);

    ConceptName currentPreferredNameInLanguage = getPreferredNameInLanguage(locale.getLanguage());

    if (preferredCountry != null) {
        if (currentPreferredNameInLanguage == null) {
            preferredName.addTag(preferredLanguage);
        }

        ConceptName currentPreferredForCountry = getPreferredNameForCountry(locale.getCountry());
        if (currentPreferredForCountry != null) {
            currentPreferredForCountry.removeTag(preferredCountry);
        }
        preferredName.addTag(preferredCountry);
    } else {
        if (currentPreferredNameInLanguage != null) {
            currentPreferredNameInLanguage.removeTag(preferredLanguage);
        }
        preferredName.addTag(preferredLanguage);
    }

    addName(preferredName);
}