Package org.erlide.wrangler.refactoring.ui

Source Code of org.erlide.wrangler.refactoring.ui.NewParameterNameInputDialog

/*******************************************************************************
* Copyright (c) 2010 György Orosz.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     György Orosz - initial API and implementation
******************************************************************************/
package org.erlide.wrangler.refactoring.ui;

import org.eclipse.jface.dialogs.IDialogConstants;
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.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.erlide.wrangler.refactoring.ui.validator.IValidator;
import org.erlide.wrangler.refactoring.ui.validator.VariableNameValidator;

/**
* Input dialog which accpets a single input data.
*
* @author Gyorgy Orosz
* @version %I%, %G%
*/
public class NewParameterNameInputDialog extends AbstractInputDialog {

    private Text newParameterName;
    private String data;

    /**
     * Constructor
     *
     * @param parentShell
     *            shell
     * @param title
     *            dialog title
     */
    public NewParameterNameInputDialog(final Shell parentShell, final String title) {
        super(parentShell, title);
    }

    /**
     * Get input data
     *
     * @return input string
     */
    public String getData() {
        return data;
    }

    @Override
    protected Control createDialogArea(final Composite parent) {
        final Composite composite = (Composite) super.createDialogArea(parent);

        final Label newParameterNameLabel = new Label(composite, SWT.WRAP);
        newParameterNameLabel.setText("New parameter name:");
        final GridData minToksData = new GridData(GridData.GRAB_HORIZONTAL
                | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL
                | GridData.VERTICAL_ALIGN_CENTER);
        minToksData.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
        newParameterNameLabel.setLayoutData(minToksData);
        newParameterNameLabel.setFont(parent.getFont());

        newParameterName = new Text(composite, getInputTextStyle());
        newParameterName.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
                | GridData.HORIZONTAL_ALIGN_FILL));
        newParameterName.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(final ModifyEvent e) {
                data = newParameterName.getText();
                validateInput();
            }
        });

        errorMessageText = new Text(composite, SWT.READ_ONLY | SWT.WRAP);
        errorMessageText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
                | GridData.HORIZONTAL_ALIGN_FILL));
        errorMessageText.setBackground(errorMessageText.getDisplay().getSystemColor(
                SWT.COLOR_WIDGET_BACKGROUND));

        setErrorMessage("New parameter name must be a valid variable name!");
        newParameterName.setText("");

        return composite;

    }

    @Override
    protected void validateInput() {
        final IValidator v = new VariableNameValidator();
        if (!v.isValid(newParameterName.getText())) {
            setErrorMessage("New parameter name must be a valid variable name!");
        } else {
            setErrorMessage(null);
        }

    }

}
TOP

Related Classes of org.erlide.wrangler.refactoring.ui.NewParameterNameInputDialog

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.