de.fzi.fhemapi.view.vaadin.ui.UIHelper.java Source code

Java tutorial

Introduction

Here is the source code for de.fzi.fhemapi.view.vaadin.ui.UIHelper.java

Source

/*******************************************************************************
 * Copyright 2007-2014 FZI, http://www.fzi.de
 *                 Forschungszentrum Informatik - Information Process Engineering (IPE)
 *  
 *                 See the NOTICE file distributed with this work for additional
 *                 information regarding copyright ownership
 *                
 *                 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.
 * @author tzentek - <a href="mailto:zentek@fzi.de">Tom Zentek</a>
 * @author cyumusak - <a href="mailto:canyumusak@gmail.com">Can Yumusak</a>
 ******************************************************************************/
package de.fzi.fhemapi.view.vaadin.ui;

import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;

/**
 * Static class giving some help while creating the UI.
 * @author Can Yumussak
 *
 */
public final class UIHelper {

    private UIHelper() {
    }

    /**
     * Builds a rich text field.
     * @param text
     * @return
     */
    public static Label buildRichTextField(String text) {
        Label label = new Label();
        label.setImmediate(false);
        label.setWidth("-1px");
        label.setHeight("-1px");
        label.setValue(text);
        label.setContentMode(Label.CONTENT_XHTML);
        return label;
    }

    /**
     * Builds an attribute panel. This build a caption on the left side. This should be altered if
     * one would like to change the appearance of the whole UI.
     * @param attributeName the caption of the component
     * @param component a component
     * @return a horizontallayout.
     */
    public static HorizontalLayout buildAttributePanel(String attributeName, AbstractComponent component) {
        // common part: create layout
        HorizontalLayout horizontalLayout = new HorizontalLayout();
        horizontalLayout.setImmediate(false);
        horizontalLayout.setWidth("100.0%");
        horizontalLayout.setHeight("-1px");
        horizontalLayout.setMargin(false);

        horizontalLayout.addComponent(buildRichTextField("<b>" + attributeName + "</b>"));
        horizontalLayout.addComponent(component);
        component.setCaption(attributeName);
        //      component.set

        return horizontalLayout;
    }
}