// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.mdm.repository.ui.wizards.process; import java.util.Map; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.talend.mdm.repository.i18n.Messages; import com.amalto.workbench.dialogs.AnnotationLanguageLabelsDialog; /** * DOC hbhong class global comment. Detailled comment */ public class ConfigReturnMessagePage extends WizardPage { public static final String PAGE_ID = "org.talend.mdm.repository.ui.wizards.process.ConfigReturnMessagePage"; //$NON-NLS-1$ private Text messageText; String[] messageParams = new String[2]; public String[] getMessageParams() { return this.messageParams; } private Combo typeCombo; /** * Create the wizard. */ public ConfigReturnMessagePage() { super(PAGE_ID); setTitle(Messages.NewProcessWizard_title); setDescription(Messages.ConfigReturnMessagePage_description); } /** * Create contents of the wizard. * * @param parent */ public void createControl(Composite parent) { Composite container = new Composite(parent, SWT.NULL); setControl(container); container.setLayout(new GridLayout(3, false)); Label lblNewLabel = new Label(container, SWT.NONE); lblNewLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblNewLabel.setText(Messages.ConfigReturnMessagePage_type); typeCombo = new Combo(container, SWT.READ_ONLY); typeCombo.setItems(new String[] { "error", "info" }); //$NON-NLS-1$ //$NON-NLS-2$ typeCombo.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); typeCombo.select(0); typeCombo.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { getWizard().getContainer().updateButtons(); } }); Label lblMessage = new Label(container, SWT.NONE); lblMessage.setText(Messages.ConfigReturnMessagePage_message); Button btnNewButton = new Button(container, SWT.NONE); btnNewButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { AnnotationLanguageLabelsDialog dialog = new AnnotationLanguageLabelsDialog(null, null, getShell(), Messages.ConfigReturnMessagePage_setMessage); if (dialog.open() == IDialogConstants.OK_ID) { StringBuffer output = new StringBuffer(); for (Map.Entry<String, String> m : dialog.getDescriptionsMap().entrySet()) { output.append("[").append(m.getKey().toUpperCase()).append(":").append(m.getValue()).append("]");//$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ } messageText.setText(output.toString()); } } }); btnNewButton.setText(Messages.ConfigReturnMessagePage_selectMessage); messageText = new Text(container, SWT.BORDER); messageText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { getWizard().getContainer().updateButtons(); } }); messageText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); setPageComplete(false); } private boolean validateMessage() { boolean result = false; messageParams[0] = typeCombo.getText().trim(); messageParams[1] = messageText.getText().trim(); if (messageParams[1].length() == 0) { setErrorMessage(Messages.ConfigReturnMessagePage_pleaseInputMessage); } else { setErrorMessage(null); result = true; } return result; } @Override public boolean isPageComplete() { return validateMessage(); } }