// ============================================================================
//
// 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.dataprofiler.core.ui.wizard.indicator.forms.impl;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.talend.dataprofiler.core.i18n.internal.DefaultMessagesImpl;
import org.talend.dataprofiler.core.ui.utils.UIMessages;
import org.talend.dataprofiler.core.ui.wizard.indicator.forms.AbstractIndicatorForm;
import org.talend.dataprofiler.core.ui.wizard.indicator.forms.FormEnum;
import org.talend.dataquality.indicators.IndicatorParameters;
/**
* DOC xqliu class global comment. Detailled comment
*/
public class JavaOptionsForm extends AbstractIndicatorForm {
protected Text characters2ReplaceText, replacementCharactersText;
public JavaOptionsForm(Composite parent, int style, IndicatorParameters parameters) {
super(parent, style, parameters);
setupForm();
}
@Override
public FormEnum getFormEnum() {
return FormEnum.JavaOptionsForm;
}
@Override
public boolean performFinish() {
if (checkFieldsValue()) {
this.parameters.getTextParameter().setCharactersToReplace(this.characters2ReplaceText.getText());
this.parameters.getTextParameter().setReplacementCharacters(this.replacementCharactersText.getText());
}
return true;
}
@Override
protected void adaptFormToReadOnly() {
}
@Override
protected void addFields() {
this.setLayout(new GridLayout());
Group group = new Group(this, SWT.NONE);
group.setLayout(new GridLayout(2, false));
group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
group.setText(DefaultMessagesImpl.getString("JavaOptionsForm.replace")); //$NON-NLS-1$
Label label1 = new Label(group, SWT.NONE);
label1.setText(DefaultMessagesImpl.getString("JavaOptionsForm.replace1")); //$NON-NLS-1$
characters2ReplaceText = new Text(group, SWT.BORDER);
GridData gd1 = new GridData();
gd1.widthHint = 200;
characters2ReplaceText.setLayoutData(gd1);
Label label2 = new Label(group, SWT.NONE);
label2.setText(DefaultMessagesImpl.getString("JavaOptionsForm.replace2")); //$NON-NLS-1$
replacementCharactersText = new Text(group, SWT.BORDER);
GridData gd2 = new GridData();
gd2.widthHint = 200;
replacementCharactersText.setLayoutData(gd2);
}
@Override
protected void addFieldsListeners() {
characters2ReplaceText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
checkFieldsValue();
}
});
replacementCharactersText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
checkFieldsValue();
}
});
}
@Override
protected void addUtilsButtonListeners() {
}
@Override
protected boolean checkFieldsValue() {
String s1 = characters2ReplaceText.getText();
String s2 = replacementCharactersText.getText();
if (s1.length() != s2.length()) {
updateStatus(IStatus.ERROR, UIMessages.MSG_DIFF_STRING_LENGTH);
return false;
} else {
updateStatus(IStatus.OK, UIMessages.MSG_VALID_FIELD);
}
return true;
}
@Override
protected void initialize() {
String s1 = this.parameters.getTextParameter() == null ? "" : this.parameters.getTextParameter().getCharactersToReplace(); //$NON-NLS-1$
String s2 = this.parameters.getTextParameter() == null ? "" : this.parameters.getTextParameter() //$NON-NLS-1$
.getReplacementCharacters();
characters2ReplaceText.setText(s1);
replacementCharactersText.setText(s2);
}
}