org.metawidget.vaadin.ui.layout.FormLayout.java Source code

Java tutorial

Introduction

Here is the source code for org.metawidget.vaadin.ui.layout.FormLayout.java

Source

// Metawidget
//
// For historical reasons, this file is licensed under the LGPL
// (http://www.gnu.org/licenses/lgpl-2.1.html).
//
// Most other files in Metawidget are licensed under both the
// LGPL/EPL and a commercial license. See http://metawidget.org
// for details.

package org.metawidget.vaadin.ui.layout;

import java.util.Map;

import org.metawidget.layout.iface.AdvancedLayout;
import org.metawidget.vaadin.ui.Facet;
import org.metawidget.vaadin.ui.Stub;
import org.metawidget.vaadin.ui.VaadinMetawidget;

import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.Component;
import com.vaadin.ui.ComponentContainer;

/**
 * Layout to arrange widgets using Vaadin's <code>FormLayout</code>.
 *
 * @author Loghman Barari
 */

public class FormLayout implements AdvancedLayout<Component, ComponentContainer, VaadinMetawidget> {

    //
    // Private members
    //

    private final String mLabelSuffix;

    //
    // Constructor
    //

    public FormLayout() {

        this(new FormLayoutConfig());
    }

    public FormLayout(FormLayoutConfig config) {

        mLabelSuffix = config.getLabelSuffix();
    }

    //
    // Public methods
    //

    public void onStartBuild(VaadinMetawidget metawidget) {

        // Do nothing
    }

    public void startContainerLayout(ComponentContainer container, VaadinMetawidget metawidget) {

        com.vaadin.ui.FormLayout layout = new com.vaadin.ui.FormLayout();
        container.addComponent(layout);
    }

    public void layoutWidget(Component component, String elementName, Map<String, String> attributes,
            ComponentContainer container, VaadinMetawidget metawidget) {

        // Do not render empty stubs

        if (component instanceof Stub && !((Stub) component).getComponentIterator().hasNext()) {
            return;
        }

        // Fix caption

        if (component.getCaption() != null && component.getCaption().length() != 0 && mLabelSuffix != null
                && mLabelSuffix.length() != 0) {
            if (!(component instanceof Button) || component instanceof CheckBox) {
                component.setCaption(component.getCaption() + mLabelSuffix);
            }
        }

        // Add it

        com.vaadin.ui.FormLayout layout = (com.vaadin.ui.FormLayout) container.getComponentIterator().next();
        component.setWidth("100%");
        layout.addComponent(component);
    }

    public void endContainerLayout(ComponentContainer container, VaadinMetawidget metawidget) {

        // Do nothing
    }

    public void onEndBuild(VaadinMetawidget metawidget) {

        // Buttons

        Facet buttonsFacet = metawidget.getFacet("buttons");

        if (buttonsFacet != null) {
            com.vaadin.ui.FormLayout layout = (com.vaadin.ui.FormLayout) metawidget.getComponentIterator().next();
            layout.addComponent(buttonsFacet);
        }
    }
}