/** * Create origin area with information about selection and original language * * @param parent parent composite * @param comboListener translator combo listener * @param schema android localization schema */ private void createFromArea( Composite parent, ComboListener comboListener, ILocalizationSchema schema) { Group languageFromGroup = new Group(parent, SWT.SHADOW_ETCHED_OUT); languageFromGroup.setText(Messages.TranslationDialog_From); languageFromGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); languageFromGroup.setLayout(new GridLayout(3, false)); /* * Selected cells / text */ // TODO: decide whether to show or now the selected text /* * Label labelFrom = new Label(languageFromGroup, SWT.NONE); * labelFrom.setText(Messages.TranslationDialog_SelectedText); * * Label labelFromText = new Label(languageFromGroup, SWT.NONE); * labelFromText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, * false, 2, 1)); String selectedText = ""; for (String text : * this.selectedCells) { selectedText += text + "\n"; } * labelFromText.setText(selectedText); */ /* * Language selection */ Label fromText = new Label(languageFromGroup, SWT.NONE); fromText.setText(Messages.TranslationDialog_FromLanguage); String selectedLanguage = schema.getISO639LangFromID(this.selectedColumn); // check if ISO639 exists selectedLanguage = ((LanguagesUtil.getLanguageName(selectedLanguage) != null) ? selectedLanguage : null); String defaultLanguage = PreferencesManager.getInstance() .getProjectPreferencesManager(this.project) .getDefaultLanguageForColumn(this.selectedColumn); fromCombo = LanguagesUtil.createLanguagesCombo( (Composite) languageFromGroup, selectedLanguage, defaultLanguage, schema); fromCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); fromCombo.addSelectionListener(comboListener); LanguagesUtil.createImageStatus(languageFromGroup, selectedLanguage); }
/** * Create destination area with information about destination columns and languages * * @param parent parent composite * @param schema android localization schema */ private void createToArea(Composite parent, ILocalizationSchema schema) { Group languageToGroup = new Group(parent, SWT.SHADOW_ETCHED_OUT); languageToGroup.setText(Messages.TranslationDialog_To); languageToGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); languageToGroup.setLayout(new GridLayout(4, false)); if (this.columns.length <= 2) { Label noColumns = new Label(languageToGroup, SWT.NONE); noColumns.setText(Messages.TranslationDialog_NoColumns); } /* * Destination Columns */ this.destinationColumns = new ArrayList<DestinationColumn>(); int i = 0; for (TableColumn column : this.columns) { if ((i > 0) && (!column.getText().equals(this.selectedColumn))) { // checkbox Button checkbox = new Button(languageToGroup, SWT.CHECK); checkbox.setSelection(true); // label Label label = new Label(languageToGroup, SWT.NONE); label.setText(column.getText()); // languages combo String selectedLanguage = schema.getISO639LangFromID(column.getText()); // check if ISO639 exists selectedLanguage = ((LanguagesUtil.getLanguageName(selectedLanguage) != null) ? selectedLanguage : null); String defaultLanguage = PreferencesManager.getInstance() .getProjectPreferencesManager(this.project) .getDefaultLanguageForColumn(column.getText()); DestinationColumn destColumn = new DestinationColumn(checkbox, true, column.getText(), selectedLanguage); checkbox.setData(destColumn); checkbox.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { ((DestinationColumn) ((Button) e.getSource()).getData()) .setSelected(((Button) e.getSource()).getSelection()); validateSelection(); } }); Combo languagesCombo = LanguagesUtil.createLanguagesCombo( languageToGroup, selectedLanguage, defaultLanguage, schema); destColumn.setLang(LanguagesUtil.getLanguageID(languagesCombo.getText())); languagesCombo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); languagesCombo.setData(destColumn); languagesCombo.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { String selectedText = ((Combo) e.getSource()).getText(); if (!selectedText.equals(LanguagesUtil.getComboSeparator())) { ((DestinationColumn) ((Combo) e.getSource()).getData()) .setLang(LanguagesUtil.getLanguageID(selectedText)); // update default language PreferencesManager.getInstance() .getProjectPreferencesManager(project) .setDefaultLanguageForColumn( ((DestinationColumn) ((Combo) e.getSource()).getData()).getText(), LanguagesUtil.getLanguageID(selectedText)); } else { ((DestinationColumn) ((Combo) e.getSource()).getData()).setLang(null); } validateSelection(); } }); // status image LanguagesUtil.createImageStatus(languageToGroup, selectedLanguage); destinationColumns.add(destColumn); } i++; } /* * Select and Deselect All buttons */ Composite buttonsArea = new Composite(languageToGroup, SWT.NONE); buttonsArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1)); buttonsArea.setLayout(new GridLayout(2, true)); Button selectAllButton = new Button(buttonsArea, SWT.PUSH); selectAllButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); selectAllButton.setText(Messages.TranslationDialog_SelectAll); selectAllButton.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { for (DestinationColumn destColumn : destinationColumns) { destColumn.setSelected(true); } validateSelection(); } }); Button deselectAllButton = new Button(buttonsArea, SWT.PUSH); deselectAllButton.setText(Messages.TranslationDialog_DeselectAll); deselectAllButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); deselectAllButton.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { for (DestinationColumn destColumn : destinationColumns) { destColumn.setSelected(false); } validateSelection(); } }); }