summaryrefslogtreecommitdiffstats
path: root/uitest/src/com/vaadin/tests/fonticon/FontIcons.java
diff options
context:
space:
mode:
Diffstat (limited to 'uitest/src/com/vaadin/tests/fonticon/FontIcons.java')
-rw-r--r--uitest/src/com/vaadin/tests/fonticon/FontIcons.java226
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;
+ }
+
+}