Package com.eviware.x.impl.swing

Source Code of com.eviware.x.impl.swing.JTextFieldFormField

/*
* Copyright 2004-2014 SmartBear Software
*
* Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence is
* distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the Licence for the specific language governing permissions and limitations
* under the Licence.
*/

package com.eviware.x.impl.swing;

import java.awt.Color;

import javax.swing.BorderFactory;
import javax.swing.text.Document;

import com.eviware.soapui.support.DocumentListenerAdapter;
import com.eviware.soapui.support.components.JUndoableTextField;
import com.eviware.x.form.XFormTextField;

public class JTextFieldFormField extends AbstractSwingXFormField<JUndoableTextField> implements XFormTextField {
    private boolean updating;
    private String oldValue;

    public JTextFieldFormField() {
        super(new JUndoableTextField());

        getComponent().getDocument().addDocumentListener(new DocumentListenerAdapter() {

            @Override
            public void update(Document document) {
                String text = getComponent().getText();

                if (!updating) {
                    fireValueChanged(text, oldValue);
                }

                oldValue = text;
            }
        });
    }

    public void setRequired(boolean required, String message) {
        super.setRequired(required, message);

        if (required) {
            getComponent().setBorder(
                    BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.RED),
                            BorderFactory.createEmptyBorder(2, 2, 2, 2)));
        } else {
            getComponent().setBorder(
                    BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.GRAY),
                            BorderFactory.createEmptyBorder(2, 2, 2, 2)));
        }
    }

    public void setValue(String value) {
        updating = true;
        oldValue = null;
        getComponent().setText(value);
        updating = false;
    }

    public String getValue() {
        return getComponent().getText();
    }

    public void setWidth(int columns) {
        getComponent().setColumns(columns);
    }
}
TOP

Related Classes of com.eviware.x.impl.swing.JTextFieldFormField

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.