com.muratools.eclipse.wizard.newPlugin.SettingDialog.java Source code

Java tutorial

Introduction

Here is the source code for com.muratools.eclipse.wizard.newPlugin.SettingDialog.java

Source

/**
 * Copyright 2011 Steve Good [steve@stevegood.org]
 * 
 * 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.muratools.eclipse.wizard.newPlugin;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;

import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
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.GridLayout;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;

public class SettingDialog extends Dialog {
    private String strName = "";
    private String strLabel = "";
    private String strHint = "";
    private String strRegEx = "";
    private String strMessage = "";
    private String strDefault = "";
    private String strOptions = "";
    private String strOptionLabels = "";
    private String strType = "";
    private String strValidation = "";
    private Boolean isRequired = new Boolean(false);

    private Text txtName;
    private Text txtLabel;
    private Text txtHint;
    private Text txtRegEx;
    private Text txtMessage;
    private Text txtDefault;
    private Text txtOptions;
    private Text txtOptionLabels;
    private Combo cmbType;
    private Combo cmbValidation;
    private Button btnRequired;

    public SettingDialog(Shell parentShell) {
        super(parentShell);

    }

    /**
     * @return the strName
     */
    public String getName() {
        return strName;
    }

    /**
     * @return the strLabel
     */
    public String getLabel() {
        return strLabel;
    }

    /**
     * @return the strHint
     */
    public String getHint() {
        return strHint;
    }

    /**
     * @return the strRegEx
     */
    public String getRegEx() {
        return strRegEx;
    }

    /**
     * @return the strMessage
     */
    public String getMessage() {
        return strMessage;
    }

    /**
     * @return the strDefault
     */
    public String getDefault() {
        return strDefault;
    }

    /**
     * @return the strOptions
     */
    public String getOptions() {
        return strOptions;
    }

    /**
     * @return the strOptionLabels
     */
    public String getOptionLabels() {
        return strOptionLabels;
    }

    /**
     * @return the strType
     */
    public String getType() {
        return strType;
    }

    /**
     * @return the strValidation
     */
    public String getValidation() {
        return strValidation;
    }

    /**
     * @return the isRequired
     */
    public Boolean getIsRequired() {
        return isRequired;
    }

    public String getStrName() {
        return strName;
    }

    public void setStrName(String strName) {
        this.strName = strName;
    }

    public String getStrLabel() {
        return strLabel;
    }

    public void setStrLabel(String strLabel) {
        this.strLabel = strLabel;
    }

    public String getStrHint() {
        return strHint;
    }

    public void setStrHint(String strHint) {
        this.strHint = strHint;
    }

    public String getStrRegEx() {
        return strRegEx;
    }

    public void setStrRegEx(String strRegEx) {
        this.strRegEx = strRegEx;
    }

    public String getStrMessage() {
        return strMessage;
    }

    public void setStrMessage(String strMessage) {
        this.strMessage = strMessage;
    }

    public String getStrDefault() {
        return strDefault;
    }

    public void setStrDefault(String strDefault) {
        this.strDefault = strDefault;
    }

    public String getStrOptions() {
        return strOptions;
    }

    public void setStrOptions(String strOptions) {
        this.strOptions = strOptions;
    }

    public String getStrOptionLabels() {
        return strOptionLabels;
    }

    public void setStrOptionLabels(String strOptionLabels) {
        this.strOptionLabels = strOptionLabels;
    }

    public String getStrType() {
        return strType;
    }

    public void setStrType(String strType) {
        this.strType = strType;
    }

    public String getStrValidation() {
        return strValidation;
    }

    public void setStrValidation(String strValidation) {
        this.strValidation = strValidation;
    }

    public void setIsRequired(Boolean isRequired) {
        this.isRequired = isRequired;
    }

    protected void configureShell(Shell newShell) {
        super.configureShell(newShell);
        newShell.setText("Setting Editor");
    }

    protected Control createDialogArea(Composite parent) {
        Composite container = (Composite) super.createDialogArea(parent);
        container.setLayout(new GridLayout(2, false));

        Label lblName = new Label(container, SWT.NONE);
        lblName.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblName.setText("Name *");

        txtName = new Text(container, SWT.BORDER);
        txtName.setText(getName());
        txtName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        txtName.addModifyListener(new ModifyListener() {

            // @Override
            public void modifyText(ModifyEvent e) {
                strName = txtName.getText();
            }
        });
        txtName.addFocusListener(new FocusListener() {

            public void focusLost(FocusEvent e) {
                txtName.setText(txtName.getText().replace(" ", "_"));
                strName = txtName.getText();
            }

            public void focusGained(FocusEvent e) {
                // Do nothing
            }
        });

        Label lblLabel = new Label(container, SWT.NONE);
        lblLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblLabel.setText("Label *");

        txtLabel = new Text(container, SWT.BORDER);
        txtLabel.setText(getLabel());
        txtLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        txtLabel.addModifyListener(new ModifyListener() {

            // @Override
            public void modifyText(ModifyEvent e) {
                strLabel = txtLabel.getText();
            }
        });

        Label lblHint = new Label(container, SWT.NONE);
        lblHint.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblHint.setText("Hint");

        txtHint = new Text(container, SWT.BORDER);
        txtHint.setText(getHint());
        txtHint.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        txtHint.addModifyListener(new ModifyListener() {

            // @Override
            public void modifyText(ModifyEvent e) {
                strHint = txtHint.getText();
            }
        });

        Label lblType = new Label(container, SWT.NONE);
        lblType.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblType.setText("Type");

        cmbType = new Combo(container, SWT.NONE);
        cmbType.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        cmbType.addModifyListener(new ModifyListener() {

            // @Override
            public void modifyText(ModifyEvent e) {
                strType = cmbType.getText();
            }
        });

        addTypeItems();
        if (getType().length() > 0) {
            cmbType.setText(getType());
        } else {
            cmbType.select(0);
        }

        Label lblValidation = new Label(container, SWT.NONE);
        lblValidation.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblValidation.setText("Validation");

        cmbValidation = new Combo(container, SWT.NONE);
        cmbValidation.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        cmbValidation.addModifyListener(new ModifyListener() {

            // @Override
            public void modifyText(ModifyEvent e) {
                strValidation = cmbValidation.getText() == "None" ? "" : cmbValidation.getText();
            }
        });

        addValidationItems();
        if (getValidation().length() > 0) {
            cmbValidation.setText(getValidation());
        } else {
            cmbValidation.select(0);
        }

        Label lblRegex = new Label(container, SWT.NONE);
        lblRegex.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblRegex.setText("RegEx");

        txtRegEx = new Text(container, SWT.BORDER);
        txtRegEx.setText(getRegEx());
        txtRegEx.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        txtRegEx.addModifyListener(new ModifyListener() {

            // @Override
            public void modifyText(ModifyEvent e) {
                strRegEx = txtRegEx.getText();
            }
        });

        Label lblMessage = new Label(container, SWT.NONE);
        lblMessage.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblMessage.setText("Message");

        txtMessage = new Text(container, SWT.BORDER);
        txtMessage.setText(getMessage());
        txtMessage.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        txtMessage.addModifyListener(new ModifyListener() {

            // @Override
            public void modifyText(ModifyEvent e) {
                strMessage = txtMessage.getText();
            }
        });

        Label lblDefault = new Label(container, SWT.NONE);
        lblDefault.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblDefault.setText("Default");

        txtDefault = new Text(container, SWT.BORDER);
        txtDefault.setText(getDefault());
        txtDefault.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        txtDefault.addModifyListener(new ModifyListener() {

            // @Override
            public void modifyText(ModifyEvent e) {
                strDefault = txtDefault.getText();
            }
        });

        Label lblOptions = new Label(container, SWT.NONE);
        lblOptions.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblOptions.setText("Options");

        txtOptions = new Text(container, SWT.BORDER);
        txtOptions.setText(getOptions());
        txtOptions.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        txtOptions.addModifyListener(new ModifyListener() {

            // @Override
            public void modifyText(ModifyEvent e) {
                strOptions = txtOptions.getText();
            }
        });

        Label lblOptionLabels = new Label(container, SWT.NONE);
        lblOptionLabels.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblOptionLabels.setText("Option Labels");

        txtOptionLabels = new Text(container, SWT.BORDER);
        txtOptionLabels.setText(getOptionLabels());
        txtOptionLabels.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        txtOptionLabels.addModifyListener(new ModifyListener() {

            // @Override
            public void modifyText(ModifyEvent e) {
                strOptionLabels = txtOptionLabels.getText();
            }
        });
        new Label(container, SWT.NONE);

        btnRequired = new Button(container, SWT.CHECK);
        btnRequired.setSelection(getIsRequired());
        btnRequired.setText("Required");
        new Label(container, SWT.NONE);

        Label lblRequiredField = new Label(container, SWT.NONE);
        lblRequiredField.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
        lblRequiredField.setText("* Required Field");
        btnRequired.addSelectionListener(new SelectionAdapter() {
            // @Override
            public void widgetSelected(SelectionEvent e) {
                isRequired = new Boolean(btnRequired.getSelection());
            }
        });

        return container;
    }

    private void addTypeItems() {
        cmbType.add("TextBox");
        cmbType.add("TextArea");
        cmbType.add("HTMLEditor");
        cmbType.add("SelectBox");
        cmbType.add("MultiSelectBox");
        cmbType.add("RadioGroup");
        cmbType.add("File");
        cmbType.add("Hidden");
    }

    private void addValidationItems() {
        cmbValidation.add("None");
        cmbValidation.add("Date");
        cmbValidation.add("Numeric");
        cmbValidation.add("Email");
        cmbValidation.add("Regex");

    }
}