Move Language selection links to LanuagePanel. Clean up of sidebar stuff - introduction of SidebarPage
git-svn-id: https://svn.apache.org/repos/asf/karaf/sandbox/pieber/karaf-webconsole/trunk@1158443 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java b/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
index 34a24db..463dba9 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
@@ -1,15 +1,16 @@
package org.apache.karaf.webconsole.core;
-import java.util.Collections;
+import java.util.Arrays;
import java.util.List;
import java.util.Locale;
+import org.apache.karaf.webconsole.core.internal.LanguagePanel;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.markup.html.CSSPackageResource;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.image.Image;
-import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.model.IModel;
import org.apache.wicket.model.util.ListModel;
import org.ops4j.pax.wicket.api.PaxWicketBean;
@@ -18,6 +19,9 @@
@PaxWicketBean(name = "tabs")
private List<ConsoleTab> tabs;
+ // list of supported Locales - should be replaced by resolver/detector or something similar
+ private IModel<List<Locale>> supportedLocales = new ListModel<Locale>(Arrays.asList(Locale.FRENCH, Locale.ENGLISH));
+
public BasePage() {
add(CSSPackageResource.getHeaderContribution(BasePage.class, "style.css"));
add(CSSPackageResource.getHeaderContribution(BasePage.class, "grid.css"));
@@ -26,39 +30,9 @@
add(new Image("karafLogo", new ResourceReference(BasePage.class, "images/karaf-logo.png")));
- Link linkFr = new Link("goFrench") {
- @Override
- public void onClick() {
- getSession().setLocale(Locale.FRANCE);
- }
- };
-
- Link linkEn = new Link("goEnglish") {
- @Override
- public void onClick() {
- getSession().setLocale(Locale.ENGLISH);
- }
- };
-
-
- add(linkFr);
- linkFr.add(new Image("frenchFlag", new ResourceReference(BasePage.class, "images/french-flag.jpeg")));
-
- add(linkEn);
- linkEn.add(new Image("englishFlag", new ResourceReference(BasePage.class, "images/english-flag.jpeg")));
+ add(new LanguagePanel("languagePanel", supportedLocales));
add(new NavigationPanel("navigationPanel", new ListModel<ConsoleTab>(tabs)));
-
- List<Class> subPages = getSubPages();
- if (subPages != null && subPages.size() > 0) {
- add(new SidebarPanel("sidebar", getClass(), subPages));
- } else {
- add(new Label("sidebar").setRenderBodyOnly(true));
- }
- }
-
- protected List<Class> getSubPages() {
- return Collections.emptyList();
}
}
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/NavigationPanel.java b/core/src/main/java/org/apache/karaf/webconsole/core/NavigationPanel.java
index de3ca48..f475a7d 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/NavigationPanel.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/NavigationPanel.java
@@ -1,5 +1,8 @@
package org.apache.karaf.webconsole.core;
+import java.util.LinkedList;
+import java.util.List;
+
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.list.ListItem;
@@ -8,9 +11,6 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.ResourceModel;
-import java.util.LinkedList;
-import java.util.List;
-
public class NavigationPanel extends Panel {
public NavigationPanel(String id, IModel<List<ConsoleTab>> model) {
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/SidebarPage.java b/core/src/main/java/org/apache/karaf/webconsole/core/SidebarPage.java
new file mode 100644
index 0000000..cbec73d
--- /dev/null
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/SidebarPage.java
@@ -0,0 +1,22 @@
+package org.apache.karaf.webconsole.core;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.karaf.webconsole.core.internal.SidebarPanel;
+import org.apache.wicket.Page;
+import org.apache.wicket.model.util.ListModel;
+
+public class SidebarPage extends BasePage {
+
+ public SidebarPage() {
+ ListModel<Class<? extends Page>> listModel = new ListModel<Class<? extends Page>>(getSubPages());
+
+ add(new SidebarPanel("sidebar", getClass(), listModel));
+ }
+
+ protected List<Class<? extends Page>> getSubPages() {
+ return Collections.emptyList();
+ }
+
+}
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/SidebarPanel.java b/core/src/main/java/org/apache/karaf/webconsole/core/SidebarPanel.java
deleted file mode 100644
index 8342dd5..0000000
--- a/core/src/main/java/org/apache/karaf/webconsole/core/SidebarPanel.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.apache.karaf.webconsole.core;
-
-import java.util.List;
-
-import org.apache.wicket.Page;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.ListView;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.util.ListModel;
-
-public class SidebarPanel<T extends Page> extends Panel {
-
- public SidebarPanel(String id, Class<T> basePage, List<Class<Page>> subPages) {
- super(id);
-
- add(new BookmarkablePageLink<T>("masterPageLink", basePage).add(new Label("masterPageLabel", basePage.getName())));
-
- add(new ListView<Class<Page>>("subPageLinks", new ListModel<Class<Page>>(subPages)) {
- @Override
- protected void populateItem(ListItem<Class<Page>> item) {
- BookmarkablePageLink<T> link = new BookmarkablePageLink<T>("subPageLink", item.getModelObject());
- link.add(new Label("subPageLabel", item.getModelObject().getName()));
- item.add(link);
- }
- });
- }
-
-}
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/internal/LanguagePanel.java b/core/src/main/java/org/apache/karaf/webconsole/core/internal/LanguagePanel.java
new file mode 100644
index 0000000..9016719
--- /dev/null
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/internal/LanguagePanel.java
@@ -0,0 +1,36 @@
+package org.apache.karaf.webconsole.core.internal;
+
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.karaf.webconsole.core.BasePage;
+import org.apache.wicket.ResourceReference;
+import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.IModel;
+
+public class LanguagePanel extends Panel {
+
+ public LanguagePanel(String id, IModel<List<Locale>> locales) {
+ super(id);
+
+ add(new ListView<Locale>("languages", locales) {
+ @Override
+ protected void populateItem(final ListItem<Locale> item) {
+ final Locale model = item.getModelObject();
+ Image flagImage = new Image("flag", new ResourceReference(BasePage.class, "images/" + model.getDisplayName(Locale.ENGLISH).toLowerCase() + "-flag.png"));
+ Link<Void> link = new Link<Void>("languageLink") {
+ @Override
+ public void onClick() {
+ getSession().setLocale(model);
+ }
+ };
+ item.add(link.add(flagImage));
+ }
+ });
+ }
+
+}
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/internal/SidebarPanel.java b/core/src/main/java/org/apache/karaf/webconsole/core/internal/SidebarPanel.java
new file mode 100644
index 0000000..4c9be6e
--- /dev/null
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/internal/SidebarPanel.java
@@ -0,0 +1,28 @@
+package org.apache.karaf.webconsole.core.internal;
+
+import org.apache.wicket.Page;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.util.ListModel;
+
+public class SidebarPanel extends Panel {
+
+ public SidebarPanel(String id, Class<? extends Page> basePage, ListModel<Class<? extends Page>> listModel) {
+ super(id, listModel);
+
+ add(new BookmarkablePageLink<Page>("masterPageLink", basePage).add(new Label("masterPageLabel", basePage.getName())));
+
+ add(new ListView<Class<? extends Page>>("subPageLinks", listModel) {
+ @Override
+ protected void populateItem(ListItem<Class<? extends Page>> item) {
+ BookmarkablePageLink<Page> link = new BookmarkablePageLink<Page>("subPageLink", item.getModelObject());
+ link.add(new Label("subPageLabel", item.getModelObject().getName()));
+ item.add(link);
+ }
+ });
+ }
+
+}
diff --git a/core/src/main/resources/org/apache/karaf/webconsole/core/BasePage.html b/core/src/main/resources/org/apache/karaf/webconsole/core/BasePage.html
index 0e4d868..6c83638 100644
--- a/core/src/main/resources/org/apache/karaf/webconsole/core/BasePage.html
+++ b/core/src/main/resources/org/apache/karaf/webconsole/core/BasePage.html
@@ -13,30 +13,19 @@
</div>
<div class="grid_9">
<h3>Administration console</h3>
- <a href="#" wicket:id="goFrench">
- <img wicket:id="frenchFlag" alt="french flag" height="14" width="20" />
- </a>
- <a href="#" wicket:id="goEnglish">
- <img wicket:id="englishFlag" alt="english flag" height="14" width="20" />
- </a>
+
+ <div wicket:id="languagePanel" id="languages">Languages go here</div>
</div>
<div class="clear"></div>
-
<div class="grid_12">
<div wicket:id="navigationPanel">Navigation goes here</div>
</div>
<div class="clear"></div>
-
- <div class="grid_3">
- <div wicket:id="sidebar">Sidebar goes here</div>
- </div>
-
- <div class="grid_9">
+ <div class="grid_12">
<wicket:child />
</div>
-
<div class="clear"></div>
<div class="grid_12">
diff --git a/core/src/main/resources/org/apache/karaf/webconsole/core/SidebarPage.html b/core/src/main/resources/org/apache/karaf/webconsole/core/SidebarPage.html
new file mode 100644
index 0000000..df9f17a
--- /dev/null
+++ b/core/src/main/resources/org/apache/karaf/webconsole/core/SidebarPage.html
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Karaf wicket console</title>
+</head>
+
+<body>
+ <div class="container container_12">
+ <div class="grid_3">
+ <img wicket:id="karafLogo" alt="karaf-logo" height="70" width="150" />
+ </div>
+ <div class="grid_9">
+ <h3>Administration console</h3>
+
+ <div wicket:id="languagePanel" id="languages">Languages go here</div>
+ </div>
+
+ <div class="clear"></div>
+
+ <div class="grid_12">
+ <div wicket:id="navigationPanel">Navigation goes here</div>
+ </div>
+
+ <div class="clear"></div>
+ <div class="grid_3">
+ <div wicket:id="sidebar">Sidebar goes here</div>
+ </div>
+ <div class="grid_9">
+ <wicket:child />
+ </div>
+ <div class="clear"></div>
+
+ <div class="grid_12">
+ <div wicket:id="footer">Footer</div>
+ </div>
+ </div>
+</body>
+</html>
\ No newline at end of file
diff --git a/core/src/main/resources/org/apache/karaf/webconsole/core/images/english-flag.jpeg b/core/src/main/resources/org/apache/karaf/webconsole/core/images/english-flag.png
similarity index 100%
rename from core/src/main/resources/org/apache/karaf/webconsole/core/images/english-flag.jpeg
rename to core/src/main/resources/org/apache/karaf/webconsole/core/images/english-flag.png
Binary files differ
diff --git a/core/src/main/resources/org/apache/karaf/webconsole/core/images/french-flag.jpeg b/core/src/main/resources/org/apache/karaf/webconsole/core/images/french-flag.jpeg
deleted file mode 100644
index 0c72cef..0000000
--- a/core/src/main/resources/org/apache/karaf/webconsole/core/images/french-flag.jpeg
+++ /dev/null
Binary files differ
diff --git a/core/src/main/resources/org/apache/karaf/webconsole/core/internal/LanguagePanel.html b/core/src/main/resources/org/apache/karaf/webconsole/core/internal/LanguagePanel.html
new file mode 100644
index 0000000..275e99e
--- /dev/null
+++ b/core/src/main/resources/org/apache/karaf/webconsole/core/internal/LanguagePanel.html
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>Karaf wicket console</title>
+</head>
+<body>
+
+ <wicket:panel>
+ <ul>
+ <li wicket:id="languages">
+ <a href="#" wicket:id="languageLink">
+ <img wicket:id="flag" alt="flag" height="14" width="20" />
+ </a>
+ </li>
+ </ul>
+ </wicket:panel>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/core/src/main/resources/org/apache/karaf/webconsole/core/SidebarPanel.html b/core/src/main/resources/org/apache/karaf/webconsole/core/internal/SidebarPanel.html
similarity index 100%
rename from core/src/main/resources/org/apache/karaf/webconsole/core/SidebarPanel.html
rename to core/src/main/resources/org/apache/karaf/webconsole/core/internal/SidebarPanel.html
diff --git a/core/src/main/resources/org/apache/karaf/webconsole/core/style.css b/core/src/main/resources/org/apache/karaf/webconsole/core/style.css
index 58bb9b0..51600de 100644
--- a/core/src/main/resources/org/apache/karaf/webconsole/core/style.css
+++ b/core/src/main/resources/org/apache/karaf/webconsole/core/style.css
@@ -30,10 +30,14 @@
width: 250px;
}
-#sidebar ul li {
+#sidebar ul li, #languages ul li {
list-style-type: none;
}
+#languages ul li {
+ display: inline;
+}
+
#topmenu ul li, #top-panel ul li {
display: inline;
}
diff --git a/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/HomePage.java b/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/HomePage.java
index feedd35..d18b75b 100644
--- a/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/HomePage.java
+++ b/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/HomePage.java
@@ -5,12 +5,12 @@
import java.util.LinkedList;
import java.util.List;
-import org.apache.karaf.webconsole.core.BasePage;
+import org.apache.karaf.webconsole.core.SidebarPage;
+import org.apache.wicket.Page;
import org.apache.wicket.PageParameters;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.ops4j.pax.wicket.api.PaxWicketBean;
@@ -22,7 +22,7 @@
/**
* Homepage
*/
-public class HomePage extends BasePage {
+public class HomePage extends SidebarPage {
@PaxWicketBean(name = "blueprintBundleContext")
private BundleContext context;
@@ -153,8 +153,8 @@
}
@Override
- protected List<Class> getSubPages() {
- List<Class> subpages = new LinkedList<Class>();
+ protected List<Class<? extends Page>> getSubPages() {
+ List<Class<? extends Page>> subpages = new LinkedList<Class<? extends Page>>();
subpages.add(ConfigurationsPage.class);
subpages.add(EventsPage.class);
return subpages;