/*
* Copyright 2000-2016 Vaadin Ltd.
*
* 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.
*/
package com.vaadin.tests.layouts;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractReindeerTestUI;
import com.vaadin.ui.AbsoluteLayout;
import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.ColorPicker;
import com.vaadin.ui.ColorPickerArea;
import com.vaadin.ui.Component;
import com.vaadin.ui.CssLayout;
import com.vaadin.ui.GridLayout;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Link;
import com.vaadin.ui.NativeButton;
import com.vaadin.ui.Panel;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Window;
import com.vaadin.v7.ui.TextField;
/**
*
* @since
* @author Vaadin Ltd
*/
public class HtmlInCaption extends AbstractReindeerTestUI {
@Override
protected void setup(VaadinRequest request) {
HorizontalLayout main = new HorizontalLayout();
addComponent(main);
VerticalLayout components = new VerticalLayout();
components.setId("components");
VerticalLayout layouts = new VerticalLayout();
layouts.setId("layouts");
main.addComponent(layouts);
main.addComponent(components);
createComponents(components);
createLayouts(layouts);
Window w = new Window();
w.setCaption(getTextCaption("Window"));
w.setPositionX(600);
addWindow(w);
w = new Window();
w.setCaptionAsHtml(true);
w.setCaption(getHtmlCaption("Window"));
w.setPositionX(600);
w.setPositionY(100);
addWindow(w);
}
private void createLayouts(VerticalLayout layouts) {
VerticalLayout vl = new VerticalLayout(tf(false), tf(true));
vl.setCaption("VerticalLayout");
layouts.addComponent(vl);
HorizontalLayout hl = new HorizontalLayout(tf(false), tf(true));
hl.setCaption("HorizontalLayout");
layouts.addComponent(hl);
GridLayout gl = new GridLayout(2, 1);
gl.setCaption("GridLayout");
gl.addComponents(tf(false), tf(true));
layouts.addComponent(gl);
CssLayout cl = new CssLayout();
cl.setCaption("CssLayout");
cl.addComponents(tf(false), tf(true));
layouts.addComponent(cl);
AbsoluteLayout al = new AbsoluteLayout();
al.setCaption("AbsoluteLayout");
al.setWidth("300px");
al.setHeight("200px");
al.addComponent(tf(false), "top:30px");
al.addComponent(tf(true), "top: 100px");
layouts.addComponent(al);
}
private void createComponents(VerticalLayout components) {
createComponent(components, Button.class);
createComponent(components, NativeButton.class);
createComponent(components, CheckBox.class);
createComponent(components, Link.class);
createComponent(components, Panel.class);
createComponent(components, ColorPicker.class);
createComponent(components, ColorPickerArea.class);
}
private void createComponent(VerticalLayout components,
Class<? extends AbstractComponent> class1) {
AbstractComponent ac;
try {
ac = class1.newInstance();
ac.setCaption(getTextCaption(class1.getSimpleName()));
components.addComponent(ac);
} catch (Exception e) {
e.printStackTrace();
}
try {
ac = class1.newInstance();
ac.setCaption(getHtmlCaption(class1.getSimpleName()));
ac.setCaptionAsHtml(true);
components.addComponent(ac);
} catch (Exception e) {
e.printStackTrace();
}
}
private Component tf(boolean htmlCaption) {
TextField tf = new TextField();
if (htmlCaption) {
tf.setCaptionAsHtml(htmlCaption);
tf.setCaption(getHtmlCaption(""));
} else {
tf.setCaption(getTextCaption(""));
}
return tf;
}
private String getTextCaption(String string) {
return "<b>Plain text " + string + "</b>";
}
private String getHtmlCaption(String string) {
return "<b><font color='red'>HTML " + string + "</font></b>";
}
@Override
protected Integer getTicketNumber() {
return 9426;
}
}