Merge branch 'uiMods' into develop

This commit is contained in:
Robin Eklund 2011-08-02 13:35:17 +02:00
commit 658cf09e9a
17 changed files with 94 additions and 547 deletions

@ -0,0 +1,16 @@
package se.su.dsv.scipro.basepanels;
import org.apache.wicket.Page;
import se.su.dsv.scipro.components.AbstractMenuPanel;
public abstract class AbstractBaseMenuPanel extends AbstractMenuPanel {
private static final long serialVersionUID = 3738086567246191811L;
public AbstractBaseMenuPanel(final String id,final Class<? extends Page> menuContainerCommonSuperClass, final Class<? extends Page> containerClass) {
super(id,menuContainerCommonSuperClass,containerClass);
}
@Override
protected MenuType getMenuType() {
return MenuType.TAB;
}
}

@ -1,12 +1,18 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<html
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:panel>
<header id="main-header" class="span-24">
<div class="prepend-1 span-5">
<h1 id="logo"><a href="#" wicket:id="homeLink" title="SciPro">SciPro</a></h1>
<h1 id="logo">
<a href="#" wicket:id="homeLink" title="SciPro">SciPro</a>
</h1>
</div>
<div wicket:id="mainMenuPanel"></div>
<div class="prepend-2 span-15 last user-links"
wicket:id="userLinksPanel"></div>
<div wicket:id="mainMenuPanel" class="main-menu prepend-6"></div>
<div wicket:id="serviceMenuPanel" class="service-menu"></div>
</header>
</wicket:panel>
</body>

@ -1,9 +1,7 @@
package se.su.dsv.scipro.basepanels;
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.panel.EmptyPanel;
import org.apache.wicket.markup.html.panel.Panel;
import se.su.dsv.scipro.SciProApplication;
@ -14,17 +12,13 @@ import se.su.dsv.scipro.SciProApplication;
*
*/
public class HeaderPanel extends Panel {
private static final long serialVersionUID = 1L;
public HeaderPanel(String id, Class<? extends Page> containerClass) {
super(id);
add(new BookmarkablePageLink<Void>("homeLink", SciProApplication.get().getHomePage()));
MainMenuPanel mainMenuPanel = new MainMenuPanel("mainMenuPanel", containerClass);
add(mainMenuPanel);
add(new MainMenuPanel("mainMenuPanel", containerClass));
add(new ServiceMenuPanel("serviceMenuPanel", containerClass));
add(new UserLinksPanel("userLinksPanel"));
}
}

@ -1,23 +0,0 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:panel>
<nav id="main-nav">
<div class="span-18 last">
<div class="prepend-2 span-15 last" id="user-links" wicket:id="userLinksPanel"></div>
<div class="span-18 last">
<ul id="nav-list">
<li class="nav-list-item" id="home-menu-item" wicket:id="homeMenuItem"></li>
<li class="nav-list-item" id="messages-menu-item" wicket:id="messagesMenuItem"></li>
<li class="nav-list-item" id="project-menu-item" wicket:id="projectMenuItem"></li>
<li class="nav-list-item" id="supervisor-menu-item" wicket:id="supervisorMenuItem"></li>
<li class="nav-list-item" id="resources-menu-item" wicket:id="resourcesMenuItem"></li>
<li class="nav-list-item" id="admin-menu-item" wicket:id="adminMenuItem"></li>
</ul>
</div>
</div>
</nav>
</wicket:panel>
</body>
</html>

@ -4,123 +4,25 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.Page;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.panel.Panel;
import org.odlabs.wiquery.core.commons.IWiQueryPlugin;
import org.odlabs.wiquery.core.commons.WiQueryResourceManager;
import org.odlabs.wiquery.core.javascript.JsStatement;
import se.su.dsv.scipro.HomePage;
import se.su.dsv.scipro.SciProApplication;
import se.su.dsv.scipro.admin.pages.AdminScheduleTemplatesPage;
import se.su.dsv.scipro.admin.pages.AdminStartPage;
import se.su.dsv.scipro.admin.pages.ProjectManagementPage;
import se.su.dsv.scipro.admin.pages.SystemMaintenancePage;
import se.su.dsv.scipro.basepages.MenuPage;
import se.su.dsv.scipro.basepanels.mainmenu.MainMenuItem;
import se.su.dsv.scipro.basepanels.mainmenu.MenuItem;
import se.su.dsv.scipro.knol.resource.page.ResourcePage;
import se.su.dsv.scipro.message.pages.PrivateMessagesPage;
import se.su.dsv.scipro.peer.pages.PeerReviewTemplatePage;
import se.su.dsv.scipro.project.pages.FinalSeminarProjectListPage;
import se.su.dsv.scipro.project.pages.ProjectOppositionPage;
import se.su.dsv.scipro.project.pages.ProjectPartnerPage;
import se.su.dsv.scipro.project.pages.ProjectStartPage;
import se.su.dsv.scipro.project.pages.ProjectChecklistPage;
import se.su.dsv.scipro.security.auth.MetaDataActionStrategy;
import se.su.dsv.scipro.security.auth.roles.Roles;
import se.su.dsv.scipro.supervisor.pages.SupervisorProjectsFinalSeminarPage;
import se.su.dsv.scipro.supervisor.pages.SupervisorStartPage;
import se.su.dsv.scipro.wiquery.mainmenu.MainMenuJavascriptResourceReference;
public class MainMenuPanel extends Panel implements IWiQueryPlugin {
public class MainMenuPanel extends AbstractBaseMenuPanel {
private static final long serialVersionUID = 3738086567246191811L;
public MainMenuPanel(String id, Class<? extends Page> containerClass) {
super(id);
add(new MainMenuItem("homeMenuItem", HomePage.MAIN_MENU_LABEL, HomePage.class, containerClass, null));
/*
* Messages
*/
MainMenuItem messagesMenuItem = new MainMenuItem("messagesMenuItem", PrivateMessagesPage.MAIN_MENU_LABEL, PrivateMessagesPage.class, containerClass, null);
MetaDataActionStrategy.authorize(messagesMenuItem, Roles.SYSADMIN); // TODO: Hidden for initial deployment
add(messagesMenuItem);
/*
* Project/Author
*/
List<MenuItem> projectMenuSubItems = new ArrayList<MenuItem>();
projectMenuSubItems.add(new MenuItem(ProjectStartPage.MAIN_MENU_LABEL, ProjectStartPage.class));
projectMenuSubItems.add(new MenuItem(ProjectOppositionPage.MAIN_MENU_LABEL, ProjectOppositionPage.class));
projectMenuSubItems.add(new MenuItem(FinalSeminarProjectListPage.MAIN_MENU_LABEL, FinalSeminarProjectListPage.class));
MainMenuItem projectMenuItem = new MainMenuItem("projectMenuItem", ProjectStartPage.MAIN_MENU_LABEL, ProjectStartPage.class, containerClass, projectMenuSubItems);
add(projectMenuItem);
/*
* Supervisor
*/
List<MenuItem> supervisorMenuSubItems = new ArrayList<MenuItem>();
//supervisorMenuSubItems.add(new MenuItem("Schedule Templates", SupervisorProjectsFinalSeminarPage.class));
supervisorMenuSubItems.add(new MenuItem(SupervisorStartPage.MAIN_MENU_LABEL, SupervisorStartPage.class));
supervisorMenuSubItems.add(new MenuItem(SupervisorProjectsFinalSeminarPage.MAIN_MENU_LABEL, SupervisorProjectsFinalSeminarPage.class));
MainMenuItem supervisorMenuItem = new MainMenuItem("supervisorMenuItem", SupervisorStartPage.MAIN_MENU_LABEL, SupervisorStartPage.class, containerClass, supervisorMenuSubItems);
MetaDataActionStrategy.authorize(supervisorMenuItem, new Roles[]{Roles.EXTERNAL, Roles.EMPLOYEE});
add(supervisorMenuItem);
/*
* Resource
*/
MainMenuItem resourcesMenuItem = new MainMenuItem("resourcesMenuItem", ResourcePage.MAIN_MENU_LABEL, ResourcePage.class, containerClass, null);
MetaDataActionStrategy.authorize(resourcesMenuItem, Roles.SYSADMIN ); // TODO: Hidden for initial deployment
add(resourcesMenuItem);
/*
* Admin
*/
List<MenuItem> adminMenuSubItems = new ArrayList<MenuItem>();
adminMenuSubItems.add(new MenuItem(AdminScheduleTemplatesPage.MAIN_MENU_LABEL, AdminScheduleTemplatesPage.class));
adminMenuSubItems.add(new MenuItem(SystemMaintenancePage.MAIN_MENU_LABEL, SystemMaintenancePage.class));
adminMenuSubItems.add(new MenuItem(ProjectManagementPage.MAIN_MENU_LABEL, ProjectManagementPage.class));
adminMenuSubItems.add(new MenuItem(PeerReviewTemplatePage.MAIN_MENU_LABEL, PeerReviewTemplatePage.class));
MainMenuItem adminMenuItem = new MainMenuItem("adminMenuItem", AdminStartPage.MAIN_MENU_LABEL, AdminStartPage.class, containerClass, adminMenuSubItems);
MetaDataActionStrategy.authorize(adminMenuItem, Roles.ADMIN);
add(adminMenuItem);
UserLinksPanel userLinksPanel = new UserLinksPanel("userLinksPanel");
add(userLinksPanel);
super(id,HomePage.class,containerClass);
}
@Override
public void contribute(WiQueryResourceManager wiQueryResourceManager) {
wiQueryResourceManager.addJavaScriptResource(MainMenuJavascriptResourceReference.get());
protected List<MenuItem> getItemList(){
List<MenuItem> list = new ArrayList<MenuItem>();
list.add(new MenuItem(ProjectStartPage.MAIN_MENU_LABEL,ProjectStartPage.class));
list.add(new MenuItem(SupervisorStartPage.MAIN_MENU_LABEL,SupervisorStartPage.class));
list.add(new MenuItem(AdminStartPage.MAIN_MENU_LABEL,AdminStartPage.class));
return list;
}
@Override
public JsStatement statement() {
return null;
}
/**
* @deprecated see {@link se.su.dsv.scipro.basepanels.mainmenu.AbstractMainMenuItem#getMenuLink(String)}
*/
@SuppressWarnings("unused")
private BookmarkablePageLink<Void> getMenuLink(String id, final Class<? extends Page> targetPageClass, final Class<? extends Page> containerClass){
return getMenuLink(id, targetPageClass, null, containerClass);
}
/**
* @deprecated see {@link se.su.dsv.scipro.basepanels.mainmenu.AbstractMainMenuItem#getMenuLink(String, PageParameters)}
*/
private BookmarkablePageLink<Void> getMenuLink(String id, final Class<? extends Page> targetPageClass, final PageParameters pp, final Class<? extends Page> containerClass){
BookmarkablePageLink<Void> result = new BookmarkablePageLink<Void>(id, targetPageClass, pp);
result.setOutputMarkupId(true);
if(targetPageClass == containerClass || (targetPageClass.getSuperclass().isAssignableFrom(containerClass) && targetPageClass.getSuperclass() != MenuPage.class) ){
result.setMarkupId("current");
}
return result;
}
}

@ -0,0 +1,24 @@
package se.su.dsv.scipro.basepanels;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.Page;
import se.su.dsv.scipro.basepages.MenuPage;
import se.su.dsv.scipro.knol.resource.page.ResourcePage;
import se.su.dsv.scipro.message.pages.PrivateMessagesPage;
public class ServiceMenuPanel extends AbstractBaseMenuPanel {
private static final long serialVersionUID = 3738086567246191811L;
public ServiceMenuPanel(String id, Class<? extends Page> containerClass) {
super(id,MenuPage.class,containerClass);
}
@Override
protected List<MenuItem> getItemList(){
List<MenuItem> list = new ArrayList<MenuItem>();
list.add(new MenuItem(ResourcePage.MAIN_MENU_LABEL,ResourcePage.class));
list.add(new MenuItem(PrivateMessagesPage.MAIN_MENU_LABEL,PrivateMessagesPage.class));
return list;
}
}

@ -1,62 +0,0 @@
package se.su.dsv.scipro.basepanels.mainmenu;
import org.apache.wicket.Page;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.panel.Panel;
import se.su.dsv.scipro.basepages.MenuPage;
/**
* Abstract Class for Main Menu Items
*
* @author patrick
*
*/
public abstract class AbstractMainMenuItem extends Panel {
private static final long serialVersionUID = 2849283400267381932L;
protected Class<? extends Page> targetPageClass;
protected Class<? extends Page> containerPageClass;
private String menuLabel;
protected BookmarkablePageLink<Void> menuItemLink;
public AbstractMainMenuItem(String id, String label, Class<? extends Page> targetPageClass, Class<? extends Page> containerPageClass) {
super(id);
this.menuLabel = label;
this.targetPageClass = targetPageClass;
this.containerPageClass = containerPageClass;
}
public String getMenuLabel() {
return menuLabel;
}
/**
* {@link #getMenuLink(String, PageParameters)}
*/
protected BookmarkablePageLink<Void> getMenuLink(String id) {
return getMenuLink(id, null);
}
/**
* Creates a bookmarkable page link for the main menu.
*
* @param id
* @param pp
* @return
* @author Martin Peters
*/
protected BookmarkablePageLink<Void> getMenuLink(String id, final PageParameters pp) {
BookmarkablePageLink<Void> result = new BookmarkablePageLink<Void>(id, targetPageClass, pp);
result.setOutputMarkupId(true);
if(targetPageClass == containerPageClass || (targetPageClass.getSuperclass().isAssignableFrom(containerPageClass) && targetPageClass.getSuperclass() != MenuPage.class) ){
//TODO Should prefereably be replaced with the line below because repeating id's aren't valid html. I couldn't get the CSS to work though //mpeters
result.setMarkupId("current");
//result.add(new AttributeAppender("class", new Model<String>("current"), " "));
}
return result;
}
}

@ -1,12 +0,0 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:panel>
<span class="menu-item">
<a wicket:id="mainMenuItemLink"><span wicket:id="mainMenuItemLabel"></span></a>
<img class="nav-arrow" wicket:id="mainMenuItemArrow" />
</span>
<div class="submenu rounded-bl rounded-br"><span wicket:id="mainMenuListItemSubMenu"><span wicket:id="subMenuItem"></span></span></div>
</wicket:panel>
</body>
</html>

@ -1,79 +0,0 @@
package se.su.dsv.scipro.basepanels.mainmenu;
import java.util.List;
import org.apache.wicket.Page;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.image.ContextImage;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.Model;
/**
* Main Menu Item, the upper level of the main menu hierarchy.
*
* @author patrick
*
*/
public class MainMenuItem extends AbstractMainMenuItem {
private static final long serialVersionUID = 6103131868992599100L;
@SuppressWarnings("unused")
private List<MenuItem> subItems;
public MainMenuItem(String id, String label, final Class<? extends Page> targetPageClass, final Class<? extends Page> containerClass, final List<MenuItem> subItems) {
super(id, label, targetPageClass, containerClass);
this.subItems = subItems;
if (subItems != null)
this.add(new AttributeAppender("class", true, new Model<String>("parent"), " "));
menuItemLink = getMenuLink("mainMenuItemLink");
menuItemLink.add(new Label("mainMenuItemLabel", getMenuLabel()));
add(menuItemLink);
ContextImage mainMenuItemArrow = new ContextImage("mainMenuItemArrow", "images/site_nav_arrow2.png") {
private static final long serialVersionUID = 1793336840409311960L;
/* (non-Javadoc)
* @see org.apache.wicket.Component#isVisible()
*/
@Override
public boolean isVisible() {
return subItems != null;
}
};
mainMenuItemArrow.setOutputMarkupPlaceholderTag(true);
add(mainMenuItemArrow);
ListView<MenuItem> subItemListView = new ListView<MenuItem>("mainMenuListItemSubMenu", subItems) {
private static final long serialVersionUID = -1444218885819118389L;
@Override
protected void populateItem(ListItem<MenuItem> item) {
MenuItem obj = item.getModelObject();
item.add(obj.createSubItem("subMenuItem", containerClass));
add(item);
}
/* (non-Javadoc)
* @see org.apache.wicket.Component#isVisible()
*/
@Override
public boolean isVisible() {
return subItems != null;
}
};
subItemListView.setOutputMarkupPlaceholderTag(true);
add(subItemListView);
}
}

@ -1,8 +0,0 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:panel>
<a href="#" wicket:id="mainMenuSubItemLink"><span wicket:id="mainMenuSubItemLabel">[Link]</span></a>
</wicket:panel>
</body>
</html>

@ -1,27 +0,0 @@
package se.su.dsv.scipro.basepanels.mainmenu;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.basic.Label;
/**
* Main Menu Sub Items
*
* @author patrick
*
*/
public class MainMenuSubItem extends AbstractMainMenuItem {
private static final long serialVersionUID = 8903203088965767242L;
public MainMenuSubItem(String id, String label, Class<? extends Page> targetPageClass,
Class<? extends Page> containerPageClass) {
super(id, label, targetPageClass, containerPageClass);
menuItemLink = getMenuLink("mainMenuSubItemLink");
menuItemLink.add(new Label("mainMenuSubItemLabel", getMenuLabel()));
add(menuItemLink);
}
}

@ -1,47 +0,0 @@
package se.su.dsv.scipro.basepanels.mainmenu;
import java.util.List;
import org.apache.wicket.IClusterable;
import org.apache.wicket.Page;
/**
* Helper Class for preparing the creation of main menu items
* @author patrick
*
*/
public class MenuItem implements IClusterable {
private static final long serialVersionUID = -5341715569517881163L;
private String menuLabel;
private Class<? extends Page> targetPageClass;
public MenuItem(String menuLabel, Class<? extends Page> targetPageClass) {
this.menuLabel = menuLabel;
this.targetPageClass = targetPageClass;
}
/**
* Creates a Main Menu Sub Item
*
* @param id
* @param containerPageClass
* @return
*/
public MainMenuSubItem createSubItem(String id, Class<? extends Page> containerPageClass) {
return new MainMenuSubItem(id, menuLabel, targetPageClass, containerPageClass);
}
/**
* Creates a Main Menu Item
*
* @param id
* @param containerPageClass
* @param subItems
* @return
*/
public MainMenuItem createMenuItem(String id, Class<? extends Page> containerPageClass, List<MenuItem> subItems) {
return new MainMenuItem(id, menuLabel, targetPageClass, containerPageClass, subItems);
}
}

@ -18,6 +18,11 @@ import org.apache.wicket.model.Model;
import se.su.dsv.scipro.icons.ImageIcon;
/**
* ABC-class for menu's of different types.
* Subclasses should implement their own data feed mechanics via <code>getItemList</code> and provide a menu type via <code>getMenuType</code>
* The returned menu-type is used to provide CSS-class mappings for the menu structure, see the MenuType enum for alternatives.
*/
public abstract class AbstractMenuPanel extends Panel {
private static final long serialVersionUID = 1L;
@ -33,6 +38,9 @@ public abstract class AbstractMenuPanel extends Panel {
}
};
/**
* Enumeration of supported menu types.
*/
public enum MenuType {
NONE,
TAB,
@ -41,7 +49,12 @@ public abstract class AbstractMenuPanel extends Panel {
VERTICAL
}
/**
* Superclass constructor, arguments
* @param id Wicket identifier for the component
* @param menuContainerCommonSuperClass [Needs documentation]
* @param containerClass [Needs documentation]
*/
public AbstractMenuPanel(final String id, final Class<? extends Page> menuContainerCommonSuperClass,final Class<? extends Page> containerClass) {
super(id);
@ -104,7 +117,10 @@ public abstract class AbstractMenuPanel extends Panel {
* @return
*/
protected abstract List<MenuItem> getItemList();
/**
* Implement in subclass to return the wanted MenuType.
* @return
*/
protected abstract MenuType getMenuType();
/**

@ -58,7 +58,7 @@ public class ProjectTabMenuPanel extends AbstractMenuPanel {
@Override
protected MenuType getMenuType() {
return MenuType.TAB;
return MenuType.TAB_MULTIPLE_ROWS;
}
}

@ -1,20 +0,0 @@
package se.su.dsv.scipro.wiquery.mainmenu;
import org.apache.wicket.markup.html.resources.JavascriptResourceReference;
public class MainMenuJavascriptResourceReference extends
JavascriptResourceReference {
private static final long serialVersionUID = -5062441830192125794L;
private static MainMenuJavascriptResourceReference INSTANCE =
new MainMenuJavascriptResourceReference();
private MainMenuJavascriptResourceReference() {
super(MainMenuJavascriptResourceReference.class, "jquery.mainmenu.js");
}
public static MainMenuJavascriptResourceReference get() {
return INSTANCE;
}
}

@ -1,49 +0,0 @@
$(document).ready(function() {
$("img.nav-arrow").click(function() {
var parent = $(this).parents(".parent");
if (parent != null)
showMenu(parent);
})
.mouseover(function() {
//$(this).attr("src", "./images/site_nav_arrow_hover.png");
})
.mouseout(function() {
//$(this).attr("src", "./images/site_nav_arrow.png");
});
$(document).click(function(e) {
if ($(e.target).parents("#nav-list").length == 0) {
closeMenus(null);
}
});
$(document).mouseover(function(e) {
if ($(e.target).parents("#main-nav").length == 0) {
closeMenus(null);
}
});
addCurrentClassToIdentifier = function(identifier) {
var t = $("#nav-list").find(identifier).parents(".nav-list-item").get(0);
$(t).addClass("current");
};
closeMenus = function(node) {
$("#nav-list .parent").children(".over").each(function() {
if (this != node || node == null) {
$(this).removeClass("over");
}
});
};
showMenu = function(node) {
var thisMenu = $(node);
var isActive = $(node).find("div.submenu").hasClass("over");
closeMenus(thisMenu);
if (!isActive) {
thisMenu.find("div.submenu").toggleClass("over");
}
};
addCurrentClassToIdentifier("#current");
});

@ -1,98 +1,14 @@
#main-nav {
}
#nav-list {
margin-top: 4px;
z-index: 8001;
}
#nav-list li.nav-list-item {
float: left;
display: inline;
margin: 5px 8px 0 8px;
position: relative;
}
#nav-list li.nav-list-item .menu-item {
display: block;
height: 23px;
padding: 4px 2px 3px 2px;
}
#nav-list li.nav-list-item .menu-item a {
color: #fff;
font: 1.1em/1.5 arial, sans-serif;
font-weight: bold;
text-decoration: none;
padding: 0px 4px;
}
#nav-list li.nav-list-item .menu-item > a#current {
/* padding: 0 10px 7px 10px;
border-bottom: 5px solid #ccc; */
}
.menu-item img.nav-arrow {
vertical-align: middle;
width: 23px;
height: 23px;
margin-left: 4px;
margin-right: -3px;
}
#nav-list a#current {
/* Feel free to replace with something nicer */
/* padding-bottom: 7px; */
/* border-bottom: 5px solid #ccc; */
}
#nav-list li.current .menu-item,
#nav-list li.nav-list-item:hover .menu-item {
background-color: #fff;
-webkit-border-top-left-radius: 4px;
-moz-border-radius-topleft: 4px;
border-top-left-radius: 4px;
-webkit-border-top-right-radius: 4px;
-moz-border-radius-topright: 4px;
border-top-right-radius: 4px;
text-decoration: none;
}
#nav-list li.current .menu-item a,
#nav-list li.nav-list-item:hover .menu-item a {
color: #002f5f;
}
#nav-list li.nav-list-item.parent .submenu {
position: absolute;
top: 30px;
left: -1px;
width: 140px;
background: #fff;
padding: 5px;
display: none;
border-bottom: 1px solid #ccc;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
z-index: 8000;
}
#nav-list li.nav-list-item.parent .over {
display: block;
}
#nav-list li.nav-list-item.parent .submenu {
font-size: 0.9em;
}
#nav-list li.nav-list-item.parent .submenu a:link,
#nav-list li.nav-list-item.parent .submenu a:visited,
#nav-list li.nav-list-item.parent .submenu a:hover {
display: block;
padding: 4px;
text-decoration: none;
}
#main-nav #user-links {
.user-links{
margin-top:5px;
font-size: 0.9em;
text-align: right;
}
#main-nav #user-links a {
.user-links a{
color: #99acbf;
}
.main-menu{
float:left;
}
.service-menu{
float: right;
}