org.eclipse.skalli.view.component.CustomField.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.skalli.view.component.CustomField.java

Source

/*******************************************************************************
 * Copyright (c) 2010-2014 SAP AG and others.
 * 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:
 *     SAP AG - initial API and implementation
 *******************************************************************************/
package org.eclipse.skalli.view.component;

import java.util.Collection;

import com.vaadin.data.Property;
import com.vaadin.data.Validator;
import com.vaadin.data.Validator.InvalidValueException;
import com.vaadin.ui.AbstractField;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.Field;

/**
 * A {@link CustomComponent} that also implements the {@link Field} interface, so
 * form fields can be created by composing Vaadin components.
 *
 * Subclasses need to set the composition root, which is done in the constructor
 * typically.
 *
 * See {@link Field} for more information on the individual methods. Typically,
 * only {@link #setValue(Object)}, {@link #getValue()} and {@link #getType()}
 * need to be overridden.
 *
 */
public abstract class CustomField extends CustomComponent implements Field {

    private final class AbstractFieldDelegator extends AbstractField {
        private static final long serialVersionUID = 1L;

        @Override
        public Class<?> getType() {
            return CustomField.this.getType();
        }

        @Override
        public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
            if (isReadThrough() || !isModified()) {
                fireValueChange(false);
            }
        }

        @Override
        public void setValue(Object newValue) throws ReadOnlyException, ConversionException {
            CustomField.this.setValue(newValue);
        }

        @Override
        public Object getValue() {
            return CustomField.this.getValue();
        }

        private Object superGetValue() {
            return super.getValue();
        }

        private void superSetValue(Object newValue) {
            super.setValue(newValue);
        }
    }

    private static final long serialVersionUID = 1L;
    private AbstractFieldDelegator abstractField;

    public CustomField() {
        abstractField = new AbstractFieldDelegator();
    }

    @Override
    public boolean isInvalidCommitted() {
        return abstractField.isInvalidCommitted();
    }

    @Override
    public void setInvalidCommitted(boolean isCommitted) {
        abstractField.setInvalidCommitted(isCommitted);
    }

    @Override
    public void commit() throws SourceException, InvalidValueException {
        abstractField.commit();
    }

    @Override
    public void discard() throws SourceException {
        abstractField.discard();
    }

    @Override
    public boolean isWriteThrough() {
        return abstractField.isWriteThrough();
    }

    @Override
    public void setWriteThrough(boolean writeThrough) throws SourceException, InvalidValueException {
        abstractField.setWriteThrough(writeThrough);
    }

    @Override
    public boolean isReadThrough() {
        return abstractField.isReadThrough();
    }

    @Override
    public void setReadThrough(boolean readThrough) throws SourceException {
        abstractField.setReadThrough(readThrough);
    }

    @Override
    public boolean isModified() {
        return abstractField.isModified();
    }

    @Override
    public void addValidator(Validator validator) {
        abstractField.addValidator(validator);
    }

    @Override
    public void removeValidator(Validator validator) {
        abstractField.removeValidator(validator);
    }

    @Override
    public Collection<Validator> getValidators() {
        return abstractField.getValidators();
    }

    @Override
    public boolean isValid() {
        return abstractField.isValid();
    }

    @Override
    public void validate() throws InvalidValueException {
        abstractField.validate();
    }

    @Override
    public boolean isInvalidAllowed() {
        return abstractField.isInvalidAllowed();
    }

    @Override
    public void setInvalidAllowed(boolean invalidValueAllowed) throws UnsupportedOperationException {
        abstractField.setInvalidAllowed(invalidValueAllowed);
    }

    @Override
    public Object getValue() {
        return abstractField.superGetValue();
    }

    @Override
    public void setValue(Object newValue) throws ReadOnlyException, ConversionException {
        abstractField.superSetValue(newValue);
    }

    @Override
    public abstract Class<?> getType();

    @Override
    public void addListener(ValueChangeListener listener) {
        abstractField.addListener(listener);
    }

    @Override
    public void removeListener(ValueChangeListener listener) {
        abstractField.removeListener(listener);
    }

    @Override
    public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
        abstractField.valueChange(event);
    }

    @Override
    public void setPropertyDataSource(Property newDataSource) {
        abstractField.setPropertyDataSource(newDataSource);
    }

    @Override
    public Property getPropertyDataSource() {
        return abstractField.getPropertyDataSource();
    }

    @Override
    public int getTabIndex() {
        return abstractField.getTabIndex();
    }

    @Override
    public void setTabIndex(int tabIndex) {
        abstractField.setTabIndex(tabIndex);
    }

    @Override
    public boolean isRequired() {
        return abstractField.isRequired();
    }

    @Override
    public void setRequired(boolean required) {
        abstractField.setRequired(required);
    }

    @Override
    public void setRequiredError(String requiredMessage) {
        abstractField.setRequiredError(requiredMessage);
    }

    @Override
    public String getRequiredError() {
        return abstractField.getRequiredError();
    }

    @Override
    public void focus() {
        super.focus();
    }

    @Override
    public String toString() {
        return abstractField.toString();
    }

}