diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2017-03-27 04:03:35 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2017-03-27 04:03:35 +0200 |
commit | fe78973d99f21726d6e64db70c17dca08df4a5ab (patch) | |
tree | 57882589c4c4087ed949468ea8bda535783712c0 /java | |
parent | 32b5c0d85df5b29c44693996b72ff4044860bcf5 (diff) | |
download | share-fe78973d99f21726d6e64db70c17dca08df4a5ab.zip share-fe78973d99f21726d6e64db70c17dca08df4a5ab.tar.gz |
java : vaadin : add About.html, use MenuBar, VerticalSplitPanel, TabSheet
Diffstat (limited to 'java')
-rw-r--r-- | java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/icons/help.png | bin | 0 -> 1582 bytes | |||
-rw-r--r-- | java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/layouts/About.html | 10 | ||||
-rw-r--r-- | java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/mytheme.scss | 18 | ||||
-rw-r--r-- | java/vaadin/src/main/java/ch/asynk/Daddy.java | 25 | ||||
-rw-r--r-- | java/vaadin/src/main/java/ch/asynk/HelloWorldServlet.java | 1 | ||||
-rw-r--r-- | java/vaadin/src/main/java/ch/asynk/HelloWorldUI.java | 130 | ||||
-rw-r--r-- | java/vaadin/src/main/java/ch/asynk/ui/Icons.java | 9 | ||||
-rw-r--r-- | java/vaadin/src/main/java/ch/asynk/ui/ViewMain.java | 32 |
8 files changed, 192 insertions, 33 deletions
diff --git a/java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/icons/help.png b/java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/icons/help.png Binary files differnew file mode 100644 index 0000000..e91d95a --- /dev/null +++ b/java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/icons/help.png diff --git a/java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/layouts/About.html b/java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/layouts/About.html new file mode 100644 index 0000000..7020e1d --- /dev/null +++ b/java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/layouts/About.html @@ -0,0 +1,10 @@ +<div style='margin:10px'> +<h1>HelloWorld 0.0.0</h1> + +<p>powered by <ul> +<li><a target="_blank" href="https://vaadin.com">vaadin</a> java framework for building modern web applications</li> +<li><a target="_blank" href="http://debian.org">debian</a> a free operating system (OS) for your computer.</li> +</ul></p> +<p>written by <a target="_blank" href="mailto:jeremy@asynk.ch">Jérémy Zurcher</a> +as a part of <a target="_blank" href="https://github.com/jeremyz/share">share</a></p>. +</div> diff --git a/java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/mytheme.scss b/java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/mytheme.scss index f1c36c3..ad29293 100644 --- a/java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/mytheme.scss +++ b/java/vaadin/src/main/WebContent/VAADIN/themes/mytheme/mytheme.scss @@ -3,13 +3,15 @@ @mixin mytheme { @include valo; - - .v-app { - background-color: #e6e6e9; - } - .v-button { - color: #ff6660; - background-image: none; - background-color: #eee666; + .v-app { background-color: #e6e6e9; } + .mybg { background-color: #e6e6e6; } + .v-verticallayout-margin-top { padding-top: $v-layout-margin-top; } + .v-verticallayout-margin-right { padding-right: $v-layout-margin-top; } + .v-menubar { + .v-menubar-menuitem-menuRight { + position: absolute; + right: 10px; + top: 0; + } } } diff --git a/java/vaadin/src/main/java/ch/asynk/Daddy.java b/java/vaadin/src/main/java/ch/asynk/Daddy.java new file mode 100644 index 0000000..3f279fd --- /dev/null +++ b/java/vaadin/src/main/java/ch/asynk/Daddy.java @@ -0,0 +1,25 @@ +package ch.asynk; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Daddy +{ + private static final long serialVersionUID = 1L; + + public static final String SESSION_STATUS = "SESSION_STATUS"; + + private static final Logger logger; + + static { + logger = LoggerFactory.getLogger(Daddy.class); + warn("beware Daddy is up"); + } + + public static void trace(String msg) { logger.trace(msg); } + public static void debug(String msg) { logger.debug(msg); } + public static void warn(String msg) { logger.warn(msg); } + public static void info(String msg) { logger.info(msg); } + public static void error(String msg) { logger.error(msg); } + public static void error(String msg, Exception e) { logger.error(String.format("%s : %s", msg, e.getMessage())); } +} diff --git a/java/vaadin/src/main/java/ch/asynk/HelloWorldServlet.java b/java/vaadin/src/main/java/ch/asynk/HelloWorldServlet.java index e4157c4..d0e8374 100644 --- a/java/vaadin/src/main/java/ch/asynk/HelloWorldServlet.java +++ b/java/vaadin/src/main/java/ch/asynk/HelloWorldServlet.java @@ -27,6 +27,7 @@ public class HelloWorldServlet extends VaadinServlet implements SessionInitListe public void sessionInit(SessionInitEvent event) throws ServiceException { event.getSession().setLocale(new java.util.Locale("fr", "CH")); + event.getSession().setAttribute(Daddy.SESSION_STATUS, "unknown"); System.err.println("sessionInit"); } diff --git a/java/vaadin/src/main/java/ch/asynk/HelloWorldUI.java b/java/vaadin/src/main/java/ch/asynk/HelloWorldUI.java index f4579be..be65387 100644 --- a/java/vaadin/src/main/java/ch/asynk/HelloWorldUI.java +++ b/java/vaadin/src/main/java/ch/asynk/HelloWorldUI.java @@ -3,50 +3,130 @@ package ch.asynk; import com.vaadin.annotations.PreserveOnRefresh; import com.vaadin.annotations.Theme; import com.vaadin.annotations.Title; +import com.vaadin.navigator.Navigator; import com.vaadin.server.VaadinRequest; -import com.vaadin.server.ThemeResource; import com.vaadin.ui.Button; -import com.vaadin.ui.Button.ClickEvent; -import com.vaadin.ui.Button.ClickListener; +import com.vaadin.ui.Component; +import com.vaadin.ui.CustomLayout; +import com.vaadin.ui.HorizontalSplitPanel; import com.vaadin.ui.Label; +import com.vaadin.ui.MenuBar; +import com.vaadin.ui.MenuBar.Command; +import com.vaadin.ui.MenuBar.MenuItem; import com.vaadin.ui.Notification; import com.vaadin.ui.UI; import com.vaadin.ui.VerticalLayout; +import com.vaadin.ui.Window; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import ch.asynk.ui.Icons; +import ch.asynk.ui.ViewMain; @PreserveOnRefresh -@Title("Hello!!") @Theme("mytheme") +@Title("Hello!!") public class HelloWorldUI extends UI { - private static final long serialVersionUID = 511085335415683713L; - private static Logger logger = null; + private static final long serialVersionUID = 1L; + + private static final String HOME = "Home"; + private static final String ABOUT = "About"; + + private Navigator navigator; @Override protected void init(VaadinRequest request) { - logger = LoggerFactory.getLogger(this.getClass()); - VerticalLayout content = new VerticalLayout(); - setContent(content); - - content.addComponent(new Label("Hello World using mytheme")); - Button btn = new Button("Push Me!", new ThemeResource("icons/home.png")); - btn.addClickListener(new ClickListener() { - private static final long serialVersionUID = 5808429544582385114L; + final VerticalLayout vl = new VerticalLayout(); + vl.setSizeFull(); + vl.setMargin(true); + setContent(vl); + + final MenuBar menu = createMenuBar(); + + final HorizontalSplitPanel hsplit = new HorizontalSplitPanel(); + hsplit.setSplitPosition(80f); + hsplit.addComponent(createLeftPanel()); + hsplit.addComponent(createRightPanel()); + + vl.addComponents(menu, hsplit); + vl.setExpandRatio(menu, 0); + vl.setExpandRatio(hsplit, 1); + + navigateToHome(); + } + + private Component createLeftPanel() + { + final VerticalLayout vl = new VerticalLayout(); + vl.addStyleName("margin-top"); + vl.addStyleName("margin-right"); + navigator = new Navigator(this, vl); + navigator.addView(HOME, ViewMain.class); + return vl; + } + + private Component createRightPanel() + { + final VerticalLayout vl = new VerticalLayout(); + vl.setMargin(true); + vl.addStyleName("mybg"); + // vl.addStyleName("margin-top"); + // vl.addStyleName("margin-right"); + vl.addComponent(new Label("Hello World using mytheme")); + Button btn = new Button("Push Me!", Icons.home); + btn.addClickListener(new Button.ClickListener() { + private static final long serialVersionUID = 1L; @Override - public void buttonClick(ClickEvent event) { + public void buttonClick(Button.ClickEvent event) { Notification.show("Pushed!"); - System.out.println("System.out"); - System.err.println("System.err"); - logger.trace("trace"); - logger.debug("debug"); - logger.info("info"); - logger.warn("warn"); - logger.error("error"); + Daddy.trace("trace"); + Daddy.debug("debug"); + Daddy.info("info"); + Daddy.warn("warn"); + Daddy.error("error"); } }); - content.addComponent(btn); + vl.addComponent(btn); + return vl; + } + + private MenuBar createMenuBar() + { + Command menuCommand = new Command() { + private static final long serialVersionUID = 1L; + @Override + public void menuSelected(MenuItem selectedItem) { + String itemText = selectedItem.getText(); + if (itemText.equals(HOME)) { + navigateToHome(); + } else if (itemText.equals(ABOUT)) { + showAbout(); + } else { + Daddy.error("unhandeled MenuItem : " + itemText); + } + } + }; + + final MenuBar menu = new MenuBar(); + menu.addItem(HOME, Icons.home, menuCommand); + menu.addItem(ABOUT, Icons.help, menuCommand); + MenuBar.MenuItem login = menu.addItem((String) UI.getCurrent().getSession().getAttribute(Daddy.SESSION_STATUS), menuCommand); + login.setStyleName("menuRight"); + menu.setWidth("100%"); + + return menu; + } + + public void navigateToHome() { navigator.navigateTo(HOME); } + + private void showAbout() + { + final Window about = new Window(ABOUT); + about.setContent( new CustomLayout(ABOUT) ); + about.setHeight("50%"); + about.setWidth("600px"); + about.center(); + about.setModal(true); + UI.getCurrent().addWindow(about); } } diff --git a/java/vaadin/src/main/java/ch/asynk/ui/Icons.java b/java/vaadin/src/main/java/ch/asynk/ui/Icons.java new file mode 100644 index 0000000..98bfb5f --- /dev/null +++ b/java/vaadin/src/main/java/ch/asynk/ui/Icons.java @@ -0,0 +1,9 @@ +package ch.asynk.ui; + +import com.vaadin.server.ThemeResource; + +public class Icons +{ + public static final ThemeResource help = new ThemeResource("icons/help.png"); + public static final ThemeResource home = new ThemeResource("icons/home.png"); +} diff --git a/java/vaadin/src/main/java/ch/asynk/ui/ViewMain.java b/java/vaadin/src/main/java/ch/asynk/ui/ViewMain.java new file mode 100644 index 0000000..489e328 --- /dev/null +++ b/java/vaadin/src/main/java/ch/asynk/ui/ViewMain.java @@ -0,0 +1,32 @@ +package ch.asynk.ui; + +import com.vaadin.navigator.View; +import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; +import com.vaadin.ui.Label; +import com.vaadin.ui.TabSheet; +import com.vaadin.ui.VerticalLayout; + +public class ViewMain extends TabSheet implements View +{ + private static final long serialVersionUID = 1L; + + public ViewMain() + { + addStyleName("framed"); + addTab(content("0"), "Tab 0", Icons.home, 0); + addTab(content("1"), "Tab 1"); + setSelectedTab(2); + } + + @Override + public void enter(ViewChangeEvent event) { + System.err.println(this.getClass().getName()+"::enter"); + } + + private VerticalLayout content(String s) + { + VerticalLayout ly = new VerticalLayout(); + ly.addComponent(new Label(" Hi, this is " + s)); + return ly; + } +} |