/* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.motorola.studio.android.devices.services.lang.model; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.ui.PlatformUI; import com.motorola.studio.android.devices.services.DeviceServicesPlugin; import com.motorola.studio.android.devices.services.i18n.ServicesNLS; /** * Page where the user can choose the language the user wants * to apply to the emulator */ public class LangWizardPage extends WizardPage { // main composite LocationComposite locationComposite = null; private String[] currentLangAndCountry = null; /** * Constructor */ public LangWizardPage() { this(null); } /** * Constructor */ public LangWizardPage(String[] currentLangAndCountry) { super("langWizardPage"); this.currentLangAndCountry = currentLangAndCountry; setTitle(ServicesNLS.UI_Wizard_Page_Locale_Title); setDescription(ServicesNLS.UI_Wizard_Page_Locale_Description); setPageComplete(false); } /* (non-Javadoc) * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) */ public void createControl(Composite parent) { // Set Help ID PlatformUI.getWorkbench().getHelpSystem() .setHelp(parent, DeviceServicesPlugin.LANG_PAGE_CONTEXT_HELP_ID); // Define layout GridLayout mainLayout = new GridLayout(1, false); mainLayout.marginTop = 0; mainLayout.marginWidth = 0; mainLayout.marginHeight = 0; if (currentLangAndCountry != null) { locationComposite = new LocationComposite(parent, currentLangAndCountry[0], currentLangAndCountry[1]); } else { locationComposite = new LocationComposite(parent); } locationComposite.addListener(LocationComposite.LOCATION_CHANGE, new Listener() { public void handleEvent(Event arg0) { updatePageComplete(); } }); locationComposite.setLayoutData(mainLayout); setControl(locationComposite); } /** * Check if the "Next" button can be enabled by checking if the user has filled all the fields */ private void updatePageComplete() { setPageComplete(false); String language = Language.getIdFromName(locationComposite.getLanguage()); String country = Country.getIdFromName(locationComposite.getCountry()); if ((currentLangAndCountry == null) || (!currentLangAndCountry[0].equals(language) || !currentLangAndCountry[1] .equals(country))) { setPageComplete(true); } } /** * Get the selected language * * @return selected language name */ public String getLanguage() { return locationComposite.getLanguage(); } /** * Get the selected country * * @return selected country name */ public String getCountry() { return locationComposite.getCountry(); } }