diff options
Diffstat (limited to 'uitest/src/com/vaadin/tests/fonticon/FontIcons.java')
-rw-r--r-- | uitest/src/com/vaadin/tests/fonticon/FontIcons.java | 226 |
1 files changed, 226 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/fonticon/FontIcons.java b/uitest/src/com/vaadin/tests/fonticon/FontIcons.java new file mode 100644 index 0000000000..5511acf3bf --- /dev/null +++ b/uitest/src/com/vaadin/tests/fonticon/FontIcons.java @@ -0,0 +1,226 @@ +/* + * Copyright 2000-2013 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.fonticon; + +import com.vaadin.event.Action; +import com.vaadin.event.Action.Handler; +import com.vaadin.server.FontAwesome; +import com.vaadin.server.FontIcon; +import com.vaadin.server.Page; +import com.vaadin.server.Resource; +import com.vaadin.server.ThemeResource; +import com.vaadin.server.VaadinRequest; +import com.vaadin.shared.Position; +import com.vaadin.shared.ui.label.ContentMode; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.AbstractSelect; +import com.vaadin.ui.Accordion; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.CheckBox; +import com.vaadin.ui.ComboBox; +import com.vaadin.ui.Component; +import com.vaadin.ui.DateField; +import com.vaadin.ui.GridLayout; +import com.vaadin.ui.Label; +import com.vaadin.ui.Link; +import com.vaadin.ui.ListSelect; +import com.vaadin.ui.MenuBar; +import com.vaadin.ui.MenuBar.MenuItem; +import com.vaadin.ui.NativeButton; +import com.vaadin.ui.NativeSelect; +import com.vaadin.ui.Notification; +import com.vaadin.ui.OptionGroup; +import com.vaadin.ui.Panel; +import com.vaadin.ui.Slider; +import com.vaadin.ui.TabSheet; +import com.vaadin.ui.Table; +import com.vaadin.ui.Table.Align; +import com.vaadin.ui.Table.RowHeaderMode; +import com.vaadin.ui.TextArea; +import com.vaadin.ui.TextField; +import com.vaadin.ui.Tree; +import com.vaadin.ui.TwinColSelect; +import com.vaadin.ui.Upload; +import com.vaadin.ui.VerticalLayout; + +/** + * + * @since + * @author Vaadin Ltd + */ +public class FontIcons extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + buildUI(FontAwesome.ANDROID); + } + + private void buildUI(final Resource icon) { + VerticalLayout layout = new VerticalLayout(); + setContent(layout); + layout.setMargin(true); + + layout.setIcon(icon); + + layout.addComponent(new Button("Switch icon type", + new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + buildUI(icon instanceof FontIcon ? new ThemeResource( + "../runo/icons/16/user.png") + : FontAwesome.ANDROID); + } + })); + + Handler actionHandler = new Handler() { + Action[] actions = { new Action("Do it!", icon) }; + + @Override + public void handleAction(Action action, Object sender, Object target) { + + } + + @Override + public Action[] getActions(Object target, Object sender) { + return actions; + } + }; + + // Notification + Notification n = new Notification("Hey there!"); + n.setIcon(icon); + n.setPosition(Position.BOTTOM_CENTER); + n.setDelayMsec(-1); + n.show(Page.getCurrent()); + + // grid of compoents + GridLayout gl = new GridLayout(4, 5); + gl.setSpacing(true); + layout.addComponent(gl); + + // Basic components, caption icon only + Class<?>[] components = { Button.class, CheckBox.class, + DateField.class, NativeButton.class, Link.class, Label.class, + Panel.class, Slider.class, TextArea.class, TextField.class, + Upload.class }; + for (Class<?> clazz : components) { + Component c; + try { + c = (Component) clazz.newInstance(); + } catch (Exception e) { + e.printStackTrace(); + continue; + } + c.setCaption(clazz.getSimpleName()); + c.setIcon(icon); + gl.addComponent(c); + } + + // TabSheet, caption + tab icons + TabSheet tabs = new TabSheet(); + tabs.setCaption("TabSheet"); + tabs.setIcon(icon); + tabs.addStyleName("myTabs"); + tabs.addTab(new Label("Content 1"), "Tab 1", icon); + tabs.addTab(new Label("Content 2"), "Tab 2", icon); + tabs.setWidth("150px"); + gl.addComponent(tabs); + + // Accordion, caption + tab icons + Accordion acc = new Accordion(); + acc.setCaption("Accordion"); + acc.setIcon(icon); + acc.addTab(new Label(), "Section 1", icon); + acc.addTab(new Label(), "Section 2", icon); + gl.addComponent(acc); + + // Table, caption + column + row + action icons + Table tbl = new Table("Table"); + tbl.setRowHeaderMode(RowHeaderMode.ICON_ONLY); + tbl.setIcon(icon); + tbl.addContainerProperty("Column 1", String.class, "Row", "Column 1", + icon, Align.LEFT); + tbl.addContainerProperty("Column 2", String.class, "Row", "Column 2", + icon, Align.LEFT); + tbl.setItemIcon(tbl.addItem(), icon); + tbl.setItemIcon(tbl.addItem(), icon); + tbl.setItemIcon(tbl.addItem(), icon); + tbl.setPageLength(3); + gl.addComponent(tbl); + tbl.addActionHandler(actionHandler); + + // Selects, caption + item icons + Class<?>[] selects = { ComboBox.class, NativeSelect.class, + ListSelect.class, TwinColSelect.class, OptionGroup.class }; + for (Class<?> clazz : selects) { + AbstractSelect sel; + try { + sel = (AbstractSelect) clazz.newInstance(); + } catch (Exception e) { + e.printStackTrace(); + continue; + } + sel.setCaption(clazz.getSimpleName()); + sel.setIcon(icon); + sel.addItem("One"); + sel.setItemIcon("One", icon); + sel.addItem("Two"); + sel.setItemIcon("Two", icon); + gl.addComponent(sel); + } + + // MenuBar, caption + item + sub-item icons + MenuBar menu = new MenuBar(); + menu.setIcon(icon); + menu.setCaption("MenuBar"); + MenuItem mi = menu.addItem("File", icon, null); + MenuItem smi = mi.addItem("Item", icon, null); + smi = mi.addItem("Item", icon, null); + smi = smi.addItem("Item", icon, null); + gl.addComponent(menu); + + // Tree, caption + item + subitem + action icons + Tree tree = new Tree("Tree"); + tree.addItem("Root"); + tree.setItemIcon("Root", icon); + tree.addItem("Leaf"); + tree.setItemIcon("Leaf", icon); + tree.setParent("Leaf", "Root"); + tree.expandItemsRecursively("Root"); + tree.addActionHandler(actionHandler); + gl.addComponent(tree); + + // All of FontAwesome + String allIcons = ""; + for (FontIcon ic : FontAwesome.values()) { + allIcons += ic.getHtml() + " "; + } + layout.addComponent(new Label(allIcons, ContentMode.HTML)); + } + + @Override + protected String getTestDescription() { + return "Font icons should show up in all the right places"; + } + + @Override + protected Integer getTicketNumber() { + return 13152; + } + +} |