[jboss-svn-commits] JBoss Portal SVN: r5505 - in trunk/core/src: bin/portal-core-war/themes/industrial bin/portal-core-war/themes/maple bin/portal-core-war/themes/mission-critical bin/portal-core-war/themes/phalanx bin/portal-core-war/themes/renaissance main/org/jboss/portal/core/aspects/controller

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Oct 27 16:10:42 EDT 2006


Author: roy.russo at jboss.com
Date: 2006-10-27 16:10:36 -0400 (Fri, 27 Oct 2006)
New Revision: 5505

Modified:
   trunk/core/src/bin/portal-core-war/themes/industrial/portal_style.css
   trunk/core/src/bin/portal-core-war/themes/maple/portal_style.css
   trunk/core/src/bin/portal-core-war/themes/mission-critical/portal_style.css
   trunk/core/src/bin/portal-core-war/themes/phalanx/portal_style.css
   trunk/core/src/bin/portal-core-war/themes/renaissance/portal_style.css
   trunk/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java
Log:
JBPORTAL-1017 - CSS Submenus when tab onHover.

Modified: trunk/core/src/bin/portal-core-war/themes/industrial/portal_style.css
===================================================================
--- trunk/core/src/bin/portal-core-war/themes/industrial/portal_style.css	2006-10-26 18:37:55 UTC (rev 5504)
+++ trunk/core/src/bin/portal-core-war/themes/industrial/portal_style.css	2006-10-27 20:10:36 UTC (rev 5505)
@@ -236,6 +236,8 @@
    margin: 0;
    padding-left: 300px;
    min-width: 550px;
+   z-index: 100; /* added for submenu hover */
+   position: relative; /* added for submenu hover */
 }
 
 UL#tabsHeader li {
@@ -288,6 +290,68 @@
    background-repeat: repeat-x;
 }
 
+/* Begin Submenu selectors */
+
+/* hide the sub levels and give them a positon absolute so that they take up no room */
+UL#tabsHeader ul {
+   visibility: hidden;
+   position: absolute;
+   height: 0;
+   top: 0px;
+   left: 0;
+   width: 150px;
+   text-align: left;
+   margin: 0px;
+   padding: 0px;
+   margin-top: 22px;
+}
+
+UL#tabsHeader ul a {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+
+}
+
+UL#tabsHeader ul a:hover {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+}
+
+UL#tabsHeader #current ul a {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+}
+
+UL#tabsHeader li:hover ul {
+   visibility: visible;
+}
+
+UL#tabsHeader ul li {
+   background: #EDECEC;
+   color: #5078aa;
+   padding: 3px;
+   width: 120px;
+
+   border: 1px solid #FFFFFF;
+   border-width: 1px 1px 0 0;
+
+   margin-left: 0px;
+   margin-top: 0px;
+   margin-right: 0px;
+}
+
+UL#tabsHeader ul li:hover {
+   background: #E2E2E2;
+}
+
+/* End Submenu selectors */
+
 /* used for sub navigation if applicable
 UL#tabsHeader #currentSubNav, UL#tabsHeader #currentSubNav a {
   color: #000;

Modified: trunk/core/src/bin/portal-core-war/themes/maple/portal_style.css
===================================================================
--- trunk/core/src/bin/portal-core-war/themes/maple/portal_style.css	2006-10-26 18:37:55 UTC (rev 5504)
+++ trunk/core/src/bin/portal-core-war/themes/maple/portal_style.css	2006-10-27 20:10:36 UTC (rev 5505)
@@ -235,6 +235,8 @@
    margin: 0;
    padding-left: 10px;
    min-width: 550px;
+   z-index: 100; /* added for submenu hover */
+   position: relative; /* added for submenu hover */
 }
 
 UL#tabsHeader li {
@@ -297,6 +299,68 @@
    background-repeat: no-repeat;
 }
 
+/* Begin Submenu selectors */
+
+/* hide the sub levels and give them a positon absolute so that they take up no room */
+UL#tabsHeader ul {
+   visibility: hidden;
+   position: absolute;
+   height: 0;
+   top: 0px;
+   left: 0;
+   width: 150px;
+   text-align: left;
+   margin: 0px;
+   padding: 0px;
+   margin-top: 22px;
+}
+
+UL#tabsHeader ul a {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+
+}
+
+UL#tabsHeader ul a:hover {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+}
+
+UL#tabsHeader #current ul a {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+}
+
+UL#tabsHeader li:hover ul {
+   visibility: visible;
+}
+
+UL#tabsHeader ul li {
+   background: #EDECEC;
+   color: #5078aa;
+   padding: 3px;
+   width: 120px;
+
+   border: 1px solid #FFFFFF;
+   border-width: 1px 1px 0 0;
+
+   margin-left: 0px;
+   margin-top: 0px;
+   margin-right: 0px;
+}
+
+UL#tabsHeader ul li:hover {
+   background: #E2E2E2;
+}
+
+/* End Submenu selectors */
+
 /* Tab background color for selected global nav item */
 li.currentTabBackground {
    background: #fff;

Modified: trunk/core/src/bin/portal-core-war/themes/mission-critical/portal_style.css
===================================================================
--- trunk/core/src/bin/portal-core-war/themes/mission-critical/portal_style.css	2006-10-26 18:37:55 UTC (rev 5504)
+++ trunk/core/src/bin/portal-core-war/themes/mission-critical/portal_style.css	2006-10-27 20:10:36 UTC (rev 5505)
@@ -231,6 +231,8 @@
    margin: 0;
    padding-left: 440px;
    min-width: 550px;
+   z-index: 100; /* added for submenu hover */
+   position: relative; /* added for submenu hover */
 }
 
 UL#tabsHeader li {
@@ -284,6 +286,68 @@
    background-repeat: repeat-x;
 }
 
+/* Begin Submenu selectors */
+
+/* hide the sub levels and give them a positon absolute so that they take up no room */
+UL#tabsHeader ul {
+   visibility: hidden;
+   position: absolute;
+   height: 0;
+   top: 0px;
+   left: 0;
+   width: 150px;
+   text-align: left;
+   margin: 0px;
+   padding: 0px;
+   margin-top: 22px;
+}
+
+UL#tabsHeader ul a {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+
+}
+
+UL#tabsHeader ul a:hover {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+}
+
+UL#tabsHeader #current ul a {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+}
+
+UL#tabsHeader li:hover ul {
+   visibility: visible;
+}
+
+UL#tabsHeader ul li {
+   background: #EDECEC;
+   color: #5078aa;
+   padding: 3px;
+   width: 120px;
+
+   border: 1px solid #FFFFFF;
+   border-width: 1px 1px 0 0;
+
+   margin-left: 0px;
+   margin-top: 0px;
+   margin-right: 0px;
+}
+
+UL#tabsHeader ul li:hover {
+   background: #E2E2E2;
+}
+
+/* End Submenu selectors */
+
 /* used for sub navigation if applicable
 UL#tabsHeader #currentSubNav, UL#tabsHeader #currentSubNav a {
   color: #000;

Modified: trunk/core/src/bin/portal-core-war/themes/phalanx/portal_style.css
===================================================================
--- trunk/core/src/bin/portal-core-war/themes/phalanx/portal_style.css	2006-10-26 18:37:55 UTC (rev 5504)
+++ trunk/core/src/bin/portal-core-war/themes/phalanx/portal_style.css	2006-10-27 20:10:36 UTC (rev 5505)
@@ -238,6 +238,8 @@
    margin: 0;
    padding-left: 300px;
    min-width: 550px;
+   z-index: 100; /* added for submenu hover */
+   position: relative; /* added for submenu hover */
 }
 
 UL#tabsHeader li {
@@ -325,6 +327,68 @@
    line-height: 26px;
 }
 
+/* Begin Submenu selectors */
+
+/* hide the sub levels and give them a positon absolute so that they take up no room */
+UL#tabsHeader ul {
+   visibility: hidden;
+   position: absolute;
+   height: 0;
+   top: 0px;
+   left: 0;
+   width: 150px;
+   text-align: left;
+   margin: 0px;
+   padding: 0px;
+   margin-top: 22px;
+}
+
+UL#tabsHeader ul a {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+
+}
+
+UL#tabsHeader ul a:hover {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+}
+
+UL#tabsHeader #current ul a {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+}
+
+UL#tabsHeader li:hover ul {
+   visibility: visible;
+}
+
+UL#tabsHeader ul li {
+   background: #EDECEC;
+   color: #5078aa;
+   padding: 3px;
+   width: 120px;
+
+   border: 1px solid #FFFFFF;
+   border-width: 1px 1px 0 0;
+
+   margin-left: 0px;
+   margin-top: 0px;
+   margin-right: 0px;
+}
+
+UL#tabsHeader ul li:hover {
+   background: #E2E2E2;
+}
+
+/* End Submenu selectors */
+
 UL#tabsHeader #current a:hover {
    text-decoration: none;
 }

Modified: trunk/core/src/bin/portal-core-war/themes/renaissance/portal_style.css
===================================================================
--- trunk/core/src/bin/portal-core-war/themes/renaissance/portal_style.css	2006-10-26 18:37:55 UTC (rev 5504)
+++ trunk/core/src/bin/portal-core-war/themes/renaissance/portal_style.css	2006-10-27 20:10:36 UTC (rev 5505)
@@ -225,6 +225,8 @@
    margin: 0;
    padding-left: 0px;
    min-width: 550px;
+   z-index: 100; /* added for submenu hover */
+   position: relative; /* added for submenu hover */
 }
 
 UL#tabsHeader li {
@@ -305,6 +307,66 @@
    background-position: top left;
 }
 
+/* Begin Submenu selectors */
+UL#tabsHeader ul {
+   visibility: hidden;
+   position: absolute;
+   height: 0;
+   top: 0px;
+   left: 0;
+   width: 150px;
+   text-align: left;
+   margin: 0px;
+   padding: 0px;
+   margin-top: 22px;
+}
+
+UL#tabsHeader ul a {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+
+}
+
+UL#tabsHeader ul a:hover {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+}
+
+UL#tabsHeader #current ul a {
+   font: 11px;
+   font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
+   font-weight: normal;
+   color: #5078aa;
+}
+
+UL#tabsHeader li:hover ul {
+   visibility: visible;
+}
+
+UL#tabsHeader ul li {
+   background: #EDECEC;
+   color: #5078aa;
+   padding: 3px;
+   width: 120px;
+
+   border: 1px solid #FFFFFF;
+   border-width: 1px 1px 0 0;
+
+   margin-left: 0px;
+   margin-top: 0px;
+   margin-right: 0px;
+}
+
+UL#tabsHeader ul li:hover {
+   background: #E2E2E2;
+}
+
+/* End Submenu selectors */
+
 /* -------- These are new selectors for the admin and add page styles ------- */
 
 UL#tabsHeader #admin {

Modified: trunk/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java	2006-10-26 18:37:55 UTC (rev 5504)
+++ trunk/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java	2006-10-27 20:10:36 UTC (rev 5505)
@@ -270,11 +270,12 @@
 
          StringBuffer html = new StringBuffer();
          html.append("<ul id=\"tabsHeader\">");
+         List currentChildren = new ArrayList();
          for (Iterator i = navElements.iterator(); i.hasNext();)
          {
             PortalObjectImpl navElement = (PortalObjectImpl)i.next();
 
-            // build up Marks markup for the navigation , based on these nodes
+            // build up markup for the navigation , based on these nodes
             String name = navElement.getName();
 
             try
@@ -289,6 +290,7 @@
             }
 
             String id = navElement.getId();
+
             PortalObjectPermission perm = new PortalObjectPermission(id, PortalObjectPermission.VIEW_MASK);
             if (portalAuthorizationManagerFactory.getManager().checkPermission(perm))
             {
@@ -301,10 +303,30 @@
                {
                   html.append(" id=\"current\"");
                }
-               html.append(" onmouseover=\"this.className='hoverOn'\" onmouseout=\"this.className='hoverOff'\"><a href='").append(childURL).append("'>").append(name).append("</a></li>");
+               html.append(" onmouseover=\"this.className='hoverOn'\" onmouseout=\"this.className='hoverOff'\"><a href='").append(childURL).append("'>").append(name).append("</a>");
+
+               // Submenu logic
+               if (hasChildPages(navElement))
+               {
+                  html.append("<ul>");
+                  for (Iterator j = navElement.getChildren().iterator(); j.hasNext();)
+                  {
+                     PortalObject child = (PortalObject)j.next();
+                     if (child.getType() == PortalObject.TYPE_PAGE)
+                     {
+                        RenderPageCommand renderCmd = new RenderPageCommand(child.getId());
+                        String subChildURL = rpc.getControllerContext().encodeURL(renderCmd, null, null);
+
+                        html.append("<li>").append("<a href='").append(subChildURL).append("'>").append(child.getName()).append("</a></li>");
+                     }
+                  }
+                  html.append("</ul>");
+               }
+               html.append("</li>");
             }
          }
          html.append("</ul>");
+
          return html;
       }
       catch (Exception e)
@@ -314,6 +336,19 @@
       }
    }
 
+   private boolean hasChildPages(PortalObject portalObject)
+   {
+      for (Iterator i = portalObject.getChildren().iterator(); i.hasNext();)
+      {
+         PortalObject child = (PortalObject)i.next();
+         if (child.getType() == PortalObject.TYPE_PAGE)
+         {
+            return true;
+         }
+      }
+      return false;
+   }
+
    protected void sortTabs(List navElements)
    {
       Collections.sort(navElements, new Comparator()




More information about the jboss-svn-commits mailing list