Index: DefaultYanelToolbar.java
===================================================================
--- DefaultYanelToolbar.java (revision 59010)
+++ DefaultYanelToolbar.java (working copy)
@@ -1,246 +1,251 @@
-package org.wyona.yanel.servlet.toolbar.impl;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.log4j.Logger;
-
-import org.wyona.security.core.api.Identity;
-import org.wyona.yanel.core.Resource;
-import org.wyona.yanel.core.api.attributes.VersionableV2;
-import org.wyona.yanel.core.map.Map;
-import org.wyona.yanel.core.util.PathUtil;
-import org.wyona.yanel.core.util.ResourceAttributeHelper;
-import org.wyona.yanel.servlet.YanelServlet;
-import org.wyona.yanel.servlet.menu.Menu;
-import org.wyona.yanel.servlet.toolbar.YanelToolbar;
-import org.wyona.yanel.servlet.toolbar.YanelToolbarException;
-
-/**
- * The default Yanel toolbar implementation, wrapping a {@link Menu} (which might has been configured in the realm.xml configuration).
- */
-public class DefaultYanelToolbar implements YanelToolbar {
-
- private static Logger log = Logger.getLogger(DefaultYanelToolbar.class);
-
- //private int DELAY_IN_MILLIS = 300;
- private int DELAY_IN_MILLIS = 400;
-
- protected Menu menu;
-
- /**
- *
- */
- public DefaultYanelToolbar() {
- log.warn("No realm specific menu seems to be configured, hence use default menu.");
- menu = new org.wyona.yanel.servlet.menu.impl.DefaultMenu();
- }
-
- /**
- *
- */
- public DefaultYanelToolbar(Menu menu) {
- this.menu = menu;
- }
-
- /**
- * @see org/wyona/yanel/servlet/toolbar/YanelToolbar#getToolbarBodyStart(Resource, HttpServletRequest, Map, String)
- */
- public String getToolbarBodyStart(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) {
- log.debug("Generate toolbar XHTML ...");
- try {
- String backToRealm = PathUtil.backToRealm(resource.getPath());
- StringBuilder buf = new StringBuilder();
- buf.append("
");
- buf.append("");
- return buf.toString();
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new YanelToolbarException("Couldn't generate toolbar body start markup: " + e.getMessage(), e);
- }
- }
-
- /**
- * @see org/wyona/yanel/servlet/toolbar/YanelToolbar#getToolbarHeader(Resource, HttpServletRequest, Map, String)
- */
- public String getToolbarHeader(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) {
-
- String backToRealm = org.wyona.yanel.core.util.PathUtil.backToRealm(resource.getPath());
- StringBuilder sb = new StringBuilder();
-
- sb.append("");
- sb.append(System.getProperty("line.separator"));
- sb.append("");
- sb.append(System.getProperty("line.separator"));
- sb.append("");
- sb.append(System.getProperty("line.separator"));
-
- // INFO: superfish related stuff
- sb.append("");
- sb.append(System.getProperty("line.separator"));
- sb.append("");
- sb.append(System.getProperty("line.separator"));
- sb.append(" ");
- sb.append(System.getProperty("line.separator"));
- sb.append("");
- sb.append(System.getProperty("line.separator"));
-
- // INFO: If browser is Mozilla (gecko engine rv:1.7)
- if (request.getHeader("User-Agent").indexOf("rv:1.7") >= 0) {
- sb.append("");
- sb.append(System.getProperty("line.separator"));
- }
- // If browser is IE
- if (request.getHeader("User-Agent").indexOf("compatible; MSIE") >= 0
- && request.getHeader("User-Agent").indexOf("Windows") >= 0) {
- sb.append("");
-/* NOTE: Not necessary anymore?
- sb.append(System.getProperty("line.separator"));
- sb.append("");
-*/
- }
- // If browser is IE6
- if (request.getHeader("User-Agent").indexOf("compatible; MSIE 6") >= 0
- && request.getHeader("User-Agent").indexOf("Windows") >= 0) {
- sb.append("");
- sb.append(System.getProperty("line.separator"));
- }
- sb.append("");
-
- return sb.toString();
- }
-
- /**
- * @see org/wyona/yanel/servlet/toolbar/YanelToolbar#getToolbarBodyEnd(Resource, HttpServletRequest, Map, String)
- */
- public String getToolbarBodyEnd(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) {
- return "
";
- }
-
- /**
- * Gets the toolbar menus.
- */
- private String getToolbarMenus(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) throws Exception {
- return menu.getAllMenus(resource, request, map, reservedPrefix);
- }
-
- /**
- * Gets information such as realm name, user name, etc.
- */
- protected String getInfo(Resource resource, HttpServletRequest request, Map map, String backToRealm, String reservedPrefix) throws Exception {
- String userLanguage = getUserLanguage(resource);
-
- StringBuilder buf = new StringBuilder();
-
- //buf.append("Version: " + yanel.getVersion() + "-r" + yanel.getRevision() + " ");
-
- if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "2")) {
- VersionableV2 versionableRes = (VersionableV2) resource;
- if (versionableRes.isCheckedOut()) {
- buf.append(getLabel("page", userLanguage) + ": Locked by " + versionableRes.getCheckoutUserID()
- + " (unlock) ");
- }
- }
-
- Identity identity = resource.getEnvironment().getIdentity();
- if (identity != null && !identity.isWorld()) {
- buf.append(getLabel("user", userLanguage) + ": " + identity.getAlias() + ""); // TODO: yanel/users should be replaced by reservedPrefix, also see src/webapp/src/java/org/wyona/yanel/servlet/menu/Menu.java
- } else {
- buf.append(getLabel("user", userLanguage) + ": Not signed in!");
- }
-
- return buf.toString();
- }
-
- /**
- * Gets user language (order: profile, browser, ...) (Also see
- * org/wyona/yanel/servlet/menu/Menu.java)
- */
- private String getUserLanguage(Resource resource) throws Exception {
- Identity identity = resource.getEnvironment().getIdentity();
- String language = resource.getRequestedLanguage();
- String userID = identity.getUsername();
- if (userID != null) {
- String userLanguage = resource.getRealm().getIdentityManager().getUserManager().getUser(userID).getLanguage();
- if (userLanguage != null) {
- language = userLanguage;
- log.debug("Use user profile language: " + language);
- } else {
- log.debug("Use requested language: " + language);
- }
- }
- return language;
- }
-
- /**
- * Gets i18n (TODO: Replace this by something more generic)
- *
- * @param key I18n key
- * @param language Language
- */
- private static String getLabel(String key, String language) {
- if (language.equals("de")) {
- if (key.equals("user")) {
- return "Benutzer";
- } else if (key.equals("page")) {
- return "Seite";
- } else {
- log.warn("Key '" + key + "' not supported yet by requested language '" + language + "'. Fallback to english!");
- return getLabel(key, "en");
- }
- } else if (language.equals("en")) {
- if (key.equals("user")) {
- return "User";
- } else if (key.equals("page")) {
- return "Page";
- } else {
- log.warn("Key '" + key + "' not supported yet!");
- return key;
- }
- } else {
- log.warn("Language '" + language + "' not supported yet. Fallback to english!");
- return getLabel(key, "en");
- }
- }
-
-}
+Index: DefaultYanelToolbar.java
+===================================================================
+--- DefaultYanelToolbar.java (revision 59010)
++++ DefaultYanelToolbar.java (working copy)
+@@ -1,246 +0,0 @@
+-package org.wyona.yanel.servlet.toolbar.impl;
+-
+-import javax.servlet.http.HttpServletRequest;
+-
+-import org.apache.log4j.Logger;
+-
+-import org.wyona.security.core.api.Identity;
+-import org.wyona.yanel.core.Resource;
+-import org.wyona.yanel.core.api.attributes.VersionableV2;
+-import org.wyona.yanel.core.map.Map;
+-import org.wyona.yanel.core.util.PathUtil;
+-import org.wyona.yanel.core.util.ResourceAttributeHelper;
+-import org.wyona.yanel.servlet.YanelServlet;
+-import org.wyona.yanel.servlet.menu.Menu;
+-import org.wyona.yanel.servlet.toolbar.YanelToolbar;
+-import org.wyona.yanel.servlet.toolbar.YanelToolbarException;
+-
+-/**
+- * The default Yanel toolbar implementation, wrapping a {@link Menu} (which might has been configured in the realm.xml configuration).
+- */
+-public class DefaultYanelToolbar implements YanelToolbar {
+-
+- private static Logger log = Logger.getLogger(DefaultYanelToolbar.class);
+-
+- //private int DELAY_IN_MILLIS = 300;
+- private int DELAY_IN_MILLIS = 400;
+-
+- protected Menu menu;
+-
+- /**
+- *
+- */
+- public DefaultYanelToolbar() {
+- log.warn("No realm specific menu seems to be configured, hence use default menu.");
+- menu = new org.wyona.yanel.servlet.menu.impl.DefaultMenu();
+- }
+-
+- /**
+- *
+- */
+- public DefaultYanelToolbar(Menu menu) {
+- this.menu = menu;
+- }
+-
+- /**
+- * @see org/wyona/yanel/servlet/toolbar/YanelToolbar#getToolbarBodyStart(Resource, HttpServletRequest, Map, String)
+- */
+- public String getToolbarBodyStart(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) {
+- log.debug("Generate toolbar XHTML ...");
+- try {
+- String backToRealm = PathUtil.backToRealm(resource.getPath());
+- StringBuilder buf = new StringBuilder();
+- buf.append("");
+- buf.append("");
+- return buf.toString();
+- } catch (RuntimeException e) {
+- throw e;
+- } catch (Exception e) {
+- throw new YanelToolbarException("Couldn't generate toolbar body start markup: " + e.getMessage(), e);
+- }
+- }
+-
+- /**
+- * @see org/wyona/yanel/servlet/toolbar/YanelToolbar#getToolbarHeader(Resource, HttpServletRequest, Map, String)
+- */
+- public String getToolbarHeader(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) {
+-
+- String backToRealm = org.wyona.yanel.core.util.PathUtil.backToRealm(resource.getPath());
+- StringBuilder sb = new StringBuilder();
+-
+- sb.append("");
+- sb.append(System.getProperty("line.separator"));
+- sb.append("");
+- sb.append(System.getProperty("line.separator"));
+- sb.append("");
+- sb.append(System.getProperty("line.separator"));
+-
+- // INFO: superfish related stuff
+- sb.append("");
+- sb.append(System.getProperty("line.separator"));
+- sb.append("");
+- sb.append(System.getProperty("line.separator"));
+- sb.append(" ");
+- sb.append(System.getProperty("line.separator"));
+- sb.append("");
+- sb.append(System.getProperty("line.separator"));
+-
+- // INFO: If browser is Mozilla (gecko engine rv:1.7)
+- if (request.getHeader("User-Agent").indexOf("rv:1.7") >= 0) {
+- sb.append("");
+- sb.append(System.getProperty("line.separator"));
+- }
+- // If browser is IE
+- if (request.getHeader("User-Agent").indexOf("compatible; MSIE") >= 0
+- && request.getHeader("User-Agent").indexOf("Windows") >= 0) {
+- sb.append("");
+-/* NOTE: Not necessary anymore?
+- sb.append(System.getProperty("line.separator"));
+- sb.append("");
+-*/
+- }
+- // If browser is IE6
+- if (request.getHeader("User-Agent").indexOf("compatible; MSIE 6") >= 0
+- && request.getHeader("User-Agent").indexOf("Windows") >= 0) {
+- sb.append("");
+- sb.append(System.getProperty("line.separator"));
+- }
+- sb.append("");
+-
+- return sb.toString();
+- }
+-
+- /**
+- * @see org/wyona/yanel/servlet/toolbar/YanelToolbar#getToolbarBodyEnd(Resource, HttpServletRequest, Map, String)
+- */
+- public String getToolbarBodyEnd(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) {
+- return "
";
+- }
+-
+- /**
+- * Gets the toolbar menus.
+- */
+- private String getToolbarMenus(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) throws Exception {
+- return menu.getAllMenus(resource, request, map, reservedPrefix);
+- }
+-
+- /**
+- * Gets information such as realm name, user name, etc.
+- */
+- protected String getInfo(Resource resource, HttpServletRequest request, Map map, String backToRealm, String reservedPrefix) throws Exception {
+- String userLanguage = getUserLanguage(resource);
+-
+- StringBuilder buf = new StringBuilder();
+-
+- //buf.append("Version: " + yanel.getVersion() + "-r" + yanel.getRevision() + " ");
+-
+- if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "2")) {
+- VersionableV2 versionableRes = (VersionableV2) resource;
+- if (versionableRes.isCheckedOut()) {
+- buf.append(getLabel("page", userLanguage) + ": Locked by " + versionableRes.getCheckoutUserID()
+- + " (unlock) ");
+- }
+- }
+-
+- Identity identity = resource.getEnvironment().getIdentity();
+- if (identity != null && !identity.isWorld()) {
+- buf.append(getLabel("user", userLanguage) + ": " + identity.getAlias() + ""); // TODO: yanel/users should be replaced by reservedPrefix, also see src/webapp/src/java/org/wyona/yanel/servlet/menu/Menu.java
+- } else {
+- buf.append(getLabel("user", userLanguage) + ": Not signed in!");
+- }
+-
+- return buf.toString();
+- }
+-
+- /**
+- * Gets user language (order: profile, browser, ...) (Also see
+- * org/wyona/yanel/servlet/menu/Menu.java)
+- */
+- private String getUserLanguage(Resource resource) throws Exception {
+- Identity identity = resource.getEnvironment().getIdentity();
+- String language = resource.getRequestedLanguage();
+- String userID = identity.getUsername();
+- if (userID != null) {
+- String userLanguage = resource.getRealm().getIdentityManager().getUserManager().getUser(userID).getLanguage();
+- if (userLanguage != null) {
+- language = userLanguage;
+- log.debug("Use user profile language: " + language);
+- } else {
+- log.debug("Use requested language: " + language);
+- }
+- }
+- return language;
+- }
+-
+- /**
+- * Gets i18n (TODO: Replace this by something more generic)
+- *
+- * @param key I18n key
+- * @param language Language
+- */
+- private static String getLabel(String key, String language) {
+- if (language.equals("de")) {
+- if (key.equals("user")) {
+- return "Benutzer";
+- } else if (key.equals("page")) {
+- return "Seite";
+- } else {
+- log.warn("Key '" + key + "' not supported yet by requested language '" + language + "'. Fallback to english!");
+- return getLabel(key, "en");
+- }
+- } else if (language.equals("en")) {
+- if (key.equals("user")) {
+- return "User";
+- } else if (key.equals("page")) {
+- return "Page";
+- } else {
+- log.warn("Key '" + key + "' not supported yet!");
+- return key;
+- }
+- } else {
+- log.warn("Language '" + language + "' not supported yet. Fallback to english!");
+- return getLabel(key, "en");
+- }
+- }
+-
+-}