// ============================================================================
//
// 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 com.amalto.workbench.widgets;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.FormToolkit;
import com.amalto.workbench.editors.AMainPageV2;
import com.amalto.workbench.i18n.Messages;
public class ConditionWidget {
private Text conditionText;
private AMainPageV2 page;
public ConditionWidget(Composite parent, FormToolkit toolkit, AMainPageV2 page) {
this.page = page;
Group conditionComposite = new Group(parent, SWT.NONE);
conditionComposite.setBackground(parent.getBackground());
conditionComposite.setText(Messages.ConditionWidget_Conditions);
conditionComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
conditionComposite.setLayout(new GridLayout(3, false));
conditionText = toolkit.createText(conditionComposite, "", SWT.BORDER | SWT.WRAP | SWT.V_SCROLL);//$NON-NLS-1$
conditionText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 3));
Composite conditionBtnComposite = toolkit.createComposite(conditionComposite, SWT.NULL);
conditionBtnComposite.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, true, 1, 1));
conditionBtnComposite.setLayout(new GridLayout(5, false));
ButtonListenr listener = new ButtonListenr();
Button btnLeft = toolkit.createButton(conditionBtnComposite, "(", SWT.PUSH);//$NON-NLS-1$
btnLeft.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, true, 1, 1));
btnLeft.setData("(");//$NON-NLS-1$
btnLeft.addSelectionListener(listener);
Button btnRight = toolkit.createButton(conditionBtnComposite, ")", SWT.PUSH);//$NON-NLS-1$
btnRight.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, true, 1, 1));
btnRight.setData(")");//$NON-NLS-1$
btnRight.addSelectionListener(listener);
Button btnAnd = toolkit.createButton(conditionBtnComposite, "And", SWT.PUSH);//$NON-NLS-1$
btnAnd.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, true, 1, 1));
btnAnd.setData("&&");//$NON-NLS-1$
btnAnd.addSelectionListener(listener);
Button btnOr = toolkit.createButton(conditionBtnComposite, "Or", SWT.PUSH);//$NON-NLS-1$
btnOr.setData("||");//$NON-NLS-1$
btnOr.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, true, 1, 1));
btnOr.addSelectionListener(listener);
Button btnNot = toolkit.createButton(conditionBtnComposite, "Not", SWT.PUSH);//$NON-NLS-1$
btnNot.setData("!");//$NON-NLS-1$
btnNot.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, true, 1, 1));
btnNot.addSelectionListener(listener);
}
class ButtonListenr implements SelectionListener {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
if (e.widget instanceof Button) {
Button btn = (Button) e.widget;
String condition = conditionText.getText() + " " + btn.getText();//$NON-NLS-1$
conditionText.setText(condition);
conditionText.setFocus();
page.markDirty();
}
}
}
public Text getConditionText() {
return conditionText;
}
public void setConditionText(Text conditionText) {
this.conditionText = conditionText;
}
}