You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by do...@apache.org on 2013/09/12 05:40:04 UTC

svn commit: r1522232 - in /james/hupa/trunk/client/src/main: java/org/apache/hupa/ java/org/apache/hupa/client/ java/org/apache/hupa/client/evo/ java/org/apache/hupa/client/ioc/ java/org/apache/hupa/client/ui/ webapp/

Author: dongxu
Date: Thu Sep 12 03:40:03 2013
New Revision: 1522232

URL: http://svn.apache.org/r1522232
Log:
move new theme ui from experiment to hupa evo

Added:
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayoutView.java
      - copied, changed from r1522230, james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayoutView.ui.xml
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/buttons.png
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/hupa_logo_49_transparent.png
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/linen_header.jpg
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/roundcube_logo.png
Modified:
    james/hupa/trunk/client/src/main/java/org/apache/hupa/Hupa.gwt.xml
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/Hupa.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/AppController.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinjector.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.java
    james/hupa/trunk/client/src/main/webapp/styles.css

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/Hupa.gwt.xml
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/Hupa.gwt.xml?rev=1522232&r1=1522231&r2=1522232&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/Hupa.gwt.xml (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/Hupa.gwt.xml Thu Sep 12 03:40:03 2013
@@ -114,6 +114,7 @@
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
   <entry-point class='org.apache.hupa.client.evo.HupaEvo'/>
 =======
   <entry-point class='org.apache.hupa.client.Hupa'/>
@@ -124,4 +125,7 @@
 =======
   <entry-point class='org.apache.hupa.client.evo.HupaEvo'/>
 >>>>>>> Make the evo more clear.
+=======
+  <entry-point class='org.apache.hupa.client.Hupa'/>
+>>>>>>> move new theme ui from experiment to hupa evo
 </module>

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/Hupa.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/Hupa.java?rev=1522232&r1=1522231&r2=1522232&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/Hupa.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/Hupa.java Thu Sep 12 03:40:03 2013
@@ -25,6 +25,9 @@ package org.apache.hupa.client;
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> move new theme ui from experiment to hupa evo
 import org.apache.hupa.client.ioc.AppGinjector;
 
 import com.google.gwt.core.client.EntryPoint;
@@ -42,7 +45,12 @@ public class Hupa implements EntryPoint 
 
 	private void initApp() {
 		replaceLoading();
+<<<<<<< HEAD
 		injector.getHupaController().start();
+=======
+		HupaController hupaController = injector.getHupaController();
+		hupaController.start();
+>>>>>>> move new theme ui from experiment to hupa evo
 	}
 
 	private void handleExceptionsAsync() {
@@ -59,6 +67,7 @@ public class Hupa implements EntryPoint 
 	}
 
 	private final AppGinjector injector = GWT.create(AppGinjector.class);
+<<<<<<< HEAD
 =======
 =======
 >>>>>>> Change to new mvp framework - first step
@@ -176,5 +185,7 @@ public class Hupa implements EntryPoint{
 =======
 	}
 >>>>>>> Change to new mvp framework - first step
+=======
+>>>>>>> move new theme ui from experiment to hupa evo
 
 }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java?rev=1522232&r1=1522231&r2=1522232&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java Thu Sep 12 03:40:03 2013
@@ -19,6 +19,7 @@
 
 package org.apache.hupa.client;
 
+<<<<<<< HEAD
 import org.apache.hupa.client.activity.NotificationActivity;
 import org.apache.hupa.client.activity.ToolBarActivity;
 import org.apache.hupa.client.activity.TopBarActivity;
@@ -43,12 +44,24 @@ import org.apache.hupa.shared.events.Log
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+=======
+import org.apache.hupa.client.bundles.HupaResources;
+import org.apache.hupa.client.evo.ActivityManagerInitializer;
+import org.apache.hupa.client.place.DefaultPlace;
+import org.apache.hupa.client.place.MailFolderPlace;
+import org.apache.hupa.client.rf.CheckSessionRequest;
+import org.apache.hupa.client.rf.HupaRequestFactory;
+import org.apache.hupa.client.ui.AppLayout;
+import org.apache.hupa.client.ui.HupaLayout;
+
+>>>>>>> move new theme ui from experiment to hupa evo
 import com.google.gwt.dom.client.StyleInjector;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.place.shared.Place;
 import com.google.gwt.place.shared.PlaceChangeEvent;
 import com.google.gwt.place.shared.PlaceController;
 import com.google.gwt.place.shared.PlaceHistoryHandler;
+<<<<<<< HEAD
 import com.google.gwt.user.client.Timer;
 import com.google.gwt.user.client.ui.RootLayoutPanel;
 import com.google.inject.Inject;
@@ -76,10 +89,27 @@ public class HupaController {
 		this.placeController = placeController;
 		this.placeHistoryHandler = placeHistoryHandler;
 		this.eventBus = eventBus;
+=======
+import com.google.gwt.user.client.ui.RootLayoutPanel;
+import com.google.inject.Inject;
+import com.google.web.bindery.requestfactory.shared.Receiver;
+
+public class HupaController {
+
+	@Inject private PlaceHistoryHandler placeHistoryHandler;
+	@Inject private HupaLayout hupaLayout;
+	@Inject private PlaceController placeController;
+	@Inject private HupaRequestFactory requestFactory;
+	private Place currentPlace;
+
+	@Inject
+	public HupaController(EventBus eventBus) {
+>>>>>>> move new theme ui from experiment to hupa evo
 		eventBus.addHandler(PlaceChangeEvent.TYPE, new PlaceChangHandler());
 	}
 
 	public void start() {
+<<<<<<< HEAD
 		bindCss();
 		placeHistoryHandler.handleCurrentHistory();
 	}
@@ -198,4 +228,59 @@ public class HupaController {
 			}
 		}
 	}
+=======
+		StyleInjector.inject(HupaResources.INSTANCE.stylesheet().getText());// TODO
+																			// need
+																			// this?
+		RootLayoutPanel.get().add(hupaLayout.get());
+		placeHistoryHandler.handleCurrentHistory();
+	}
+
+	private final class PlaceChangHandler implements PlaceChangeEvent.Handler {
+		@Override
+		public void onPlaceChange(PlaceChangeEvent event) {
+			if (placeChange(event)) {
+				checkSession();
+			}
+			refreshActivities(event);
+		}
+
+		private void refreshActivities(PlaceChangeEvent event) {
+			Place newPlace = event.getNewPlace();
+			if (newPlace != currentPlace) {
+				if (isAuth(newPlace, currentPlace)) {
+					// appPanelView.setDefaultLayout();
+				} else if (newPlace instanceof DefaultPlace) {
+					// appPanelView.setLoginLayout();
+				}
+				currentPlace = newPlace;
+			}
+		}
+
+		private void checkSession() {
+			CheckSessionRequest checkSession = requestFactory.sessionRequest();
+			checkSession.isValid().fire(new Receiver<Boolean>() {
+				@Override
+				public void onSuccess(Boolean sessionValid) {
+					if (!sessionValid) {
+						HupaController.this.placeController
+								.goTo(new DefaultPlace());
+					}
+				}
+			});
+		}
+
+		private boolean placeChange(PlaceChangeEvent event) {
+			return currentPlace != null
+					&& !(currentPlace instanceof DefaultPlace)
+					&& event.getNewPlace() != currentPlace;
+		}
+
+		private boolean isAuth(Place newPlace, Place currentPlace) {
+			return (newPlace instanceof MailFolderPlace)
+					&& !(currentPlace instanceof MailFolderPlace);
+		}
+	}
+
+>>>>>>> move new theme ui from experiment to hupa evo
 }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/AppController.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/AppController.java?rev=1522232&r1=1522231&r2=1522232&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/AppController.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/AppController.java Thu Sep 12 03:40:03 2013
@@ -19,12 +19,14 @@
 
 package org.apache.hupa.client.evo;
 
+import org.apache.hupa.client.bundles.HupaResources;
 import org.apache.hupa.client.place.DefaultPlace;
 import org.apache.hupa.client.place.MailFolderPlace;
 import org.apache.hupa.client.rf.CheckSessionRequest;
 import org.apache.hupa.client.rf.HupaRequestFactory;
 import org.apache.hupa.client.ui.AppLayout;
 
+import com.google.gwt.dom.client.StyleInjector;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.place.shared.Place;
 import com.google.gwt.place.shared.PlaceChangeEvent;
@@ -48,6 +50,7 @@ public class AppController {
 	}
 
 	public void start() {
+	    StyleInjector.inject(HupaResources.INSTANCE.stylesheet().getText());
 		RootLayoutPanel.get().add(appPanelView.getAppLayoutPanel());
 		placeHistoryHandler.handleCurrentHistory();
 	}

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java?rev=1522232&r1=1522231&r2=1522232&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java Thu Sep 12 03:40:03 2013
@@ -19,13 +19,11 @@
 
 package org.apache.hupa.client.evo;
 
-import org.apache.hupa.client.bundles.HupaResources;
 import org.apache.hupa.client.ioc.AppGinjector;
 
 import com.google.gwt.core.client.EntryPoint;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
-import com.google.gwt.dom.client.StyleInjector;
 import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.ui.RootPanel;
 
@@ -35,7 +33,6 @@ public class HupaEvo implements EntryPoi
 		handleExceptionsAsync();
 		replaceLoading();
 	    AppController appController = injector.getAppController();
-	    StyleInjector.inject(HupaResources.INSTANCE.stylesheet().getText());
 	    appController.start();
 	}
 	

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java?rev=1522232&r1=1522231&r2=1522232&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java Thu Sep 12 03:40:03 2013
@@ -36,6 +36,7 @@ import java.util.logging.Logger;
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 import org.apache.hupa.client.HupaController;
 import org.apache.hupa.client.activity.ComposeActivity;
 import org.apache.hupa.client.activity.ComposeToolBarActivity;
@@ -115,6 +116,9 @@ import net.customware.gwt.dispatch.clien
 <<<<<<< HEAD
 <<<<<<< HEAD
 import org.apache.hupa.client.CachingDispatchAsync;
+=======
+import org.apache.hupa.client.HupaController;
+>>>>>>> move new theme ui from experiment to hupa evo
 import org.apache.hupa.client.activity.IMAPMessageActivity;
 import org.apache.hupa.client.activity.IMAPMessageListActivity;
 import org.apache.hupa.client.activity.LoginActivity;
@@ -165,6 +169,8 @@ import org.apache.hupa.client.rf.HupaReq
 import org.apache.hupa.client.ui.AppLayout;
 import org.apache.hupa.client.ui.AppLayoutImpl;
 import org.apache.hupa.client.ui.FoldersTreeViewModel;
+import org.apache.hupa.client.ui.HupaLayout;
+import org.apache.hupa.client.ui.HupaLayoutView;
 import org.apache.hupa.client.ui.IMAPMessageListView;
 <<<<<<< HEAD
 <<<<<<< HEAD
@@ -230,6 +236,7 @@ public class AppGinModule extends Abstra
 		// Views
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 		bind(HupaLayoutable.class).to(HupaLayout.class).in(Singleton.class);
 		bind(LoginLayoutable.class).to(LoginLayout.class).in(Singleton.class);
 
@@ -389,6 +396,9 @@ public class AppGinModule extends Abstra
 =======
 >>>>>>> Change to new mvp framework - first step
 		bind(AppLayout.class).to(AppLayoutImpl.class).in(Singleton.class);
+=======
+		bind(HupaLayout.class).to(HupaLayoutView.class).in(Singleton.class);
+>>>>>>> move new theme ui from experiment to hupa evo
 
 		// Activities
 		bind(LoginActivity.Displayable.class).to(LoginView.class);
@@ -446,6 +456,7 @@ public class AppGinModule extends Abstra
 		bind(EventBus.class).to(SimpleEventBus.class).in(Singleton.class);
 
 		// Application Controller
+<<<<<<< HEAD
 		bind(AppController.class).in(Singleton.class);
 <<<<<<< HEAD
 		
@@ -456,6 +467,10 @@ public class AppGinModule extends Abstra
 
 =======
 >>>>>>> Make chechsession and login work with RF, with refactoring fetch folders.
+=======
+//		bind(AppController.class).in(Singleton.class);
+		bind(HupaController.class).in(Singleton.class);
+>>>>>>> move new theme ui from experiment to hupa evo
 
 		// bind(ExceptionHandler.class).to(DefaultExceptionHandler.class);
 	}

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinjector.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinjector.java?rev=1522232&r1=1522231&r2=1522232&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinjector.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinjector.java Thu Sep 12 03:40:03 2013
@@ -26,6 +26,7 @@
 package org.apache.hupa.client.ioc;
 
 import org.apache.hupa.client.HupaController;
+<<<<<<< HEAD
 =======
 =======
 >>>>>>> remove both of gwt-representer and gwt-dispatch dependencies, add license headers to all new files
@@ -44,6 +45,8 @@ package org.apache.hupa.client.ioc;
 import org.apache.hupa.client.AppController;
 >>>>>>> Change to new mvp framework - first step
 =======
+=======
+>>>>>>> move new theme ui from experiment to hupa evo
 import org.apache.hupa.client.evo.AppController;
 >>>>>>> Make the evo more clear.
 
@@ -66,5 +69,9 @@ public interface AppGinjector extends Gi
 >>>>>>> Change to new mvp framework - first step
 =======
   AppController getAppController();
+<<<<<<< HEAD
 >>>>>>> Change to new mvp framework - first step
+=======
+  HupaController getHupaController();
+>>>>>>> move new theme ui from experiment to hupa evo
 }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.java?rev=1522232&r1=1522231&r2=1522232&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.java Thu Sep 12 03:40:03 2013
@@ -19,6 +19,7 @@
 
 package org.apache.hupa.client.ui;
 
+<<<<<<< HEAD
 import org.apache.hupa.client.place.SettingPlace;
 
 import com.google.gwt.core.client.GWT;
@@ -222,4 +223,10 @@ public class HupaLayout implements HupaL
 	private static HupaLayoutUiBinder binder = GWT.create(HupaLayoutUiBinder.class);
 
 
+=======
+import com.google.gwt.user.client.ui.LayoutPanel;
+
+public interface HupaLayout {
+	LayoutPanel get();
+>>>>>>> move new theme ui from experiment to hupa evo
 }

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayoutView.java (from r1522230, james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayoutView.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayoutView.java&p1=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java&r1=1522230&r2=1522232&rev=1522232&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayoutView.java Thu Sep 12 03:40:03 2013
@@ -17,40 +17,23 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.client.evo;
+package org.apache.hupa.client.ui;
 
-import org.apache.hupa.client.bundles.HupaResources;
-import org.apache.hupa.client.ioc.AppGinjector;
-
-import com.google.gwt.core.client.EntryPoint;
 import com.google.gwt.core.client.GWT;
-import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
-import com.google.gwt.dom.client.StyleInjector;
-import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.user.client.ui.LayoutPanel;
+
+public class HupaLayoutView implements HupaLayout {
 
-public class HupaEvo implements EntryPoint {
 	@Override
-	public void onModuleLoad() {
-		handleExceptionsAsync();
-		replaceLoading();
-	    AppController appController = injector.getAppController();
-	    StyleInjector.inject(HupaResources.INSTANCE.stylesheet().getText());
-	    appController.start();
-	}
-	
-	private void handleExceptionsAsync(){
-		GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
-            public void onUncaughtException(Throwable e) {
-                e.printStackTrace();
-            }
-        });
+	public LayoutPanel get() {
+		return binder.createAndBindUi(this);
 	}
 
-	private void replaceLoading() {
-		DOM.removeChild(RootPanel.getBodyElement(), DOM.getElementById("loading"));
+	interface HupaLayoutUiBinder extends UiBinder<LayoutPanel, HupaLayoutView> {
 	}
 
-	private final AppGinjector injector = GWT.create(AppGinjector.class);
+	private static HupaLayoutUiBinder binder = GWT
+			.create(HupaLayoutUiBinder.class);
 
 }

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayoutView.ui.xml
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayoutView.ui.xml?rev=1522232&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayoutView.ui.xml (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayoutView.ui.xml Thu Sep 12 03:40:03 2013
@@ -0,0 +1,468 @@
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+	xmlns:g='urn:import:com.google.gwt.user.client.ui'>
+	<ui:image field="linen_header" />
+	<ui:image field="roundcube_logo" />
+	<ui:image field="buttons" />
+	<ui:image field="hupa_logo_49_transparent"></ui:image>
+	<ui:style>
+		.minWidth {
+			min-width: 1150px;
+		}
+		
+		@sprite .topBar {
+			gwt-image: 'linen_header';
+			width: 100%;
+			height: 100%;
+			background-repeat: repeat-x;
+			text-decoration: none;
+			border-bottom: 1px solid #4F4F4F;
+			padding: 2px 0 2px 10px;
+			color: #AAA;
+			height: 18px;
+		}
+		
+		.topLeft {
+			float: left;
+		}
+		
+		.about-link {
+			display: inline-block;
+			padding: 4px 0.8em 0 10px;
+			color: #AAA;
+			text-decoration: none;
+			cursor: pointer;
+		}
+		
+		.topNav {
+			height: 46px;
+			margin-bottom: 10px;
+			padding: 0 0 0 10px;
+			background: -moz-linear-gradient(top, #404040 0%, #060606 100%);
+			background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #404040),
+				color-stop(100%, #060606) );
+			background: -o-linear-gradient(top, #404040 0%, #060606 100%);
+			background: -ms-linear-gradient(top, #404040 0%, #060606 100%);
+			background: linear-gradient(top, #404040 0%, #060606 100%);
+		}
+		
+		.main {
+			
+		}
+		
+		.right {
+			float: right;
+		}
+		
+		.topRight {
+			float: right;
+		}
+		
+		@sprite .button-logout {
+			gwt-image: 'buttons';
+			display: inline-block;
+			padding: 4px 8px 2px 20px;
+			color: white;
+			background-position: -4px -191px;
+			cursor: pointer;
+		}
+		
+		.username {
+			padding-top: 4px;
+			padding-right: 1em;
+		}
+		
+		.eastPanel {
+			border-radius: 4px;
+			background-color: #F60;
+		}
+		
+		.westPanel {
+			border-radius: 4px;
+			background-color: #EEE;
+		}
+		
+		.northPanel {
+			border-radius: 4px;
+			background-color: #39F;
+		}
+		
+		.southPanel {
+			border-radius: 4px;
+			background-color: #99C;
+		}
+		
+		.centerPanel {
+			border-radius: 4px;
+			background-color: #FFC;
+		}
+		
+		/*** taskbar ***/
+		.taskbar {
+			display: inline-block;
+			height: 34px;
+			padding: 12px 10px 0 6px;
+		}
+		
+		@sprite .taskbar .button-inner {
+			gwt-image: 'buttons';
+			display: inline-block;
+			font-size: 110%;
+			font-weight: normal;
+			text-shadow: 0px 1px 1px black;
+			padding: 5px 0 0 34px;
+			height: 19px;
+			cursor: pointer;
+			color: #eee;
+		}
+		
+		.button-selected {
+			background-color: #2c2c2c;
+		}
+		
+		.taskbar .button-mail-button-inner {
+			background-position: 0 -22px;
+			color: #3cf;
+			/*background-position: 0 2px;*/
+		}
+		
+		.taskbar button-mail-button-inner:hover,.taskbar .button-mail-button-inner.button-selected
+			{
+			background-position: 0 -22px;
+		}
+		
+		.taskbar .button-addressbook-button-inner {
+			background-position: 0 -48px;
+		}
+		
+		.taskbar a.button-addressbook:hover span.button-inner,.taskbar a.button-addressbook.button-selected span.button-inner
+			{
+			background-position: 0 -72px;
+		}
+		
+		.taskbar .button-settings-button-inner {
+			background-position: 0 -96px;
+		}
+		
+		.taskbar a.button-settings:hover span.button-inner,.taskbar a.button-settings.button-selected span.button-inner
+			{
+			background-position: 0 -120px;
+		}
+		
+		.taskbar a.button-calendar span.button-inner {
+			background-position: 0 -144px;
+		}
+		
+		.taskbar a.button-calendar:hover span.button-inner,.taskbar a.button-calendar.button-selected span.button-inner
+			{
+			background-position: 0 -168px;
+		}
+		
+		.topLogo {
+			padding-top: 2px;
+		}
+		
+		.toolsBar {
+			position: absolute;
+			top: -6px;
+			right: 390px;
+			left: 0;
+			height: 40px;
+			white-space: nowrap;
+			z-index: 10;
+		}
+		
+		@sprite .toolsBarButton {
+			gwt-image: 'buttons';
+			text-align: center;
+			font-size: 10px;
+			color: #555;
+			min-width: 50px;
+			max-width: 75px;
+			height: 13px;
+			overflow: hidden;
+			text-overflow: ellipsis;
+			white-space: nowrap;
+			padding: 24px 2px 0 2px;
+			text-shadow: 0px 1px 1px #EEE;
+			box-shadow: none;
+			-webkit-box-shadow: none;
+			background-position: -100px 0;
+			border: 0;
+			display: inline-block;
+			margin: 0 2px;
+			border-radius: 4px;
+			text-decoration: none;
+			cursor: pointer;
+		}
+		
+		.checkMail {
+			background-position: center -1180px;
+		}
+		
+		.compose {
+			background-position: center -534px;
+		}
+		
+		.spacer {
+			display: inline-block;
+			width: 24px;
+			height: 36px;
+			padding: 0;
+		}
+		
+		.reply {
+			background-position: center -574px;
+		}
+		
+		.dropButton {
+			display: inline-block;
+			position: relative;
+		}
+		
+		.dropButton .toolsBarButton {
+			margin-left: 0;
+			padding-left: 0;
+			margin-right: 0;
+			padding-right: 0;
+		}
+		
+		.replyAll {
+			min-width: 64px;
+			background-position: left -614px;
+		}
+		
+		@sprite .dropButton .dropButtonTip {
+			gwt-image: 'buttons';
+			display: block;
+			position: absolute;
+			right: 0;
+			top: 0;
+			height: 42px;
+			width: 18px;
+			background-position: 0 -1259px;
+			cursor: pointer;
+		}
+		
+		.forward {
+			min-width: 64px;
+			background-position: left -654px;
+		}
+		
+		.delete {
+			background-position: center -694px;
+		}
+		
+		.mark {
+			background-position: center -1098px;
+		}
+		
+		.more {
+			background-position: center -854px;
+		}
+		
+		.folderList {
+			position: absolute;
+			top: 0;
+			left: 0;
+			width: 100%;
+			bottom: 0;
+			overflow-x: hidden;
+			overflow-y: auto;
+		}
+		
+		.uibox {
+			border: 1px solid #A3A3A3;
+			border-radius: 4px;
+			overflow: hidden;
+			box-shadow: 0 0 2px #999;
+			-o-box-shadow: 0 0 2px #999;
+			-webkit-box-shadow: 0 0 2px #999;
+			-moz-box-shadow: 0 0 2px #999;
+			background: white;
+		}
+		
+		.listbox {
+			background: #D9ECF4;
+			overflow: hidden;
+		}
+		
+		.uibox .boxfooter {
+			border-radius: 0 0 4px 4px;
+		}
+		
+		.listbox .boxfooter {
+			position: absolute;
+			bottom: 0;
+			left: 0;
+			width: 100%;
+			height: 42px;
+			border-top: 1px solid #CCDDE4;
+			background: #D9ECF4;
+			-webkit-box-shadow: inset 0 1px 0 0 white;
+			-moz-box-shadow: inset 0 1px 0 0 #fff;
+			box-shadow: inset 0 1px 0 0 white;
+			white-space: nowrap;
+			overflow: hidden;
+		}
+		
+	</ui:style>
+	<g:LayoutPanel addStyleNames="{style.minWidth}">
+		<g:layer left='0' right='0' top='0' height='92px'>
+			<g:DockLayoutPanel unit="PX">
+				<g:north size="23">
+					<g:DockLayoutPanel unit="PX" addStyleNames="{style.topBar}">
+						<g:west size="60">
+							<g:SimplePanel addStyleNames="{style.topLeft}">
+								<g:Anchor styleName="{style.about-link}">About</g:Anchor>
+							</g:SimplePanel>
+						</g:west>
+						<g:center>
+							<g:FlowPanel>
+								<g:Anchor addStyleNames="{style.topRight} {style.button-logout}">Logout</g:Anchor>
+								<g:HTMLPanel tag="span" addStyleNames="{style.topRight} {style.username}">echowdx@gmail.com
+								</g:HTMLPanel>
+							</g:FlowPanel>
+
+						</g:center>
+					</g:DockLayoutPanel>
+
+
+				</g:north>
+				<g:center>
+					<g:LayoutPanel addStyleNames="{style.topNav}">
+						<g:layer width="177px" left="10px">
+							<!-- <g:Image resource='{roundcube_logo}' /> -->
+							<g:SimplePanel>
+								<g:Image resource='{hupa_logo_49_transparent}' />
+							</g:SimplePanel>
+
+						</g:layer>
+						<g:layer width="301px" right="0">
+							<g:DockLayoutPanel unit="PX">
+								<g:west size="74">
+									<g:SimplePanel addStyleNames="{style.taskbar} {style.button-selected}">
+										<g:Anchor
+											addStyleNames=" 
+                                {style.button-mail-button-inner} {style.button-inner}">
+											Mail
+										</g:Anchor>
+									</g:SimplePanel>
+								</g:west>
+								<g:center>
+									<g:SimplePanel addStyleNames="{style.taskbar}">
+										<g:Anchor
+											addStyleNames="
+                                {style.button-addressbook-button-inner} {style.button-inner}">
+											Contacts
+										</g:Anchor>
+									</g:SimplePanel>
+								</g:center>
+								<g:east size="97">
+									<g:SimplePanel addStyleNames="{style.taskbar}">
+										<g:Anchor
+											addStyleNames="
+                                {style.button-settings-button-inner} {style.button-inner}">
+											Settings
+										</g:Anchor>
+									</g:SimplePanel>
+								</g:east>
+							</g:DockLayoutPanel>
+						</g:layer>
+					</g:LayoutPanel>
+				</g:center>
+			</g:DockLayoutPanel>
+		</g:layer>
+		<g:layer left='10px' right='10px' top='88px' bottom="20px">
+			<g:DockLayoutPanel ui:field="mainSplitLayoutPanel">
+				<g:north size="40">
+					<g:FlowPanel addStyleNames="{style.toolsBar}">
+						<g:Anchor addStyleNames="{style.toolsBarButton} {style.checkMail}">Refresh</g:Anchor>
+						<g:Anchor addStyleNames="{style.toolsBarButton} {style.compose}">Compose</g:Anchor>
+						<g:HTMLPanel tag="span" addStyleNames="{style.spacer}"></g:HTMLPanel>
+						<g:Anchor addStyleNames="{style.toolsBarButton} {style.reply}">Reply</g:Anchor>
+						<g:HTMLPanel tag="span" addStyleNames="{style.dropButton}">
+							<g:Anchor addStyleNames="{style.toolsBarButton} {style.replyAll}">Reply all</g:Anchor>
+							<g:HTMLPanel tag="span" addStyleNames="{style.dropButtonTip}"></g:HTMLPanel>
+						</g:HTMLPanel>
+						<g:HTMLPanel tag="span" addStyleNames="{style.dropButton}">
+							<g:Anchor addStyleNames="{style.toolsBarButton} {style.forward}">Forward</g:Anchor>
+							<g:HTMLPanel tag="span" addStyleNames="{style.dropButtonTip}"></g:HTMLPanel>
+						</g:HTMLPanel>
+						<g:Anchor addStyleNames="{style.toolsBarButton} {style.delete}">Delete</g:Anchor>
+						<g:Anchor addStyleNames="{style.toolsBarButton} {style.mark}">Mark</g:Anchor>
+						<g:Anchor addStyleNames="{style.toolsBarButton} {style.more}">More</g:Anchor>
+					</g:FlowPanel>
+				</g:north>
+				<g:center>
+					<g:SplitLayoutPanel>
+						<g:west size="373">
+							<g:LayoutPanel
+								addStyleNames="{style.folderList}  {style.uibox}  {style.listbox}">
+								<g:layer top="0" height="100%">
+									<g:SimplePanel>
+										<g:HTMLPanel></g:HTMLPanel>
+									</g:SimplePanel>
+								</g:layer>
+								<g:layer bottom="0" height="41px">
+									<g:SimplePanel styleName="{style.boxfooter}">
+										<g:HTMLPanel tag="span"></g:HTMLPanel>
+									</g:SimplePanel>
+								</g:layer>
+							</g:LayoutPanel>
+
+						</g:west>
+						<g:center>
+							<g:DockLayoutPanel unit="PCT">
+								<g:west size="100"><!-- dynamic layout -->
+									<g:SplitLayoutPanel>
+										<g:north size="200">
+											<g:LayoutPanel addStyleNames="{style.uibox}">
+												<g:layer>
+													<g:HTMLPanel styleName="{style.southPanel}">MessageList
+													</g:HTMLPanel>
+												</g:layer>
+												<g:layer bottom="0" height="25px">
+													<g:HTMLPanel>MessageListFooter
+													</g:HTMLPanel>
+												</g:layer>
+											</g:LayoutPanel>
+										</g:north>
+										<g:center>
+											<g:LayoutPanel addStyleNames="{style.uibox}">
+												<g:layer>
+													<g:HTMLPanel>MessageContent</g:HTMLPanel>
+												</g:layer>
+												<g:layer bottom="0" height="25px">
+													<g:HTMLPanel styleName="{style.centerPanel}">StatusBar</g:HTMLPanel>
+												</g:layer>
+											</g:LayoutPanel>
+										</g:center>
+									</g:SplitLayoutPanel>
+								</g:west>
+								<g:center size="0"><!-- dynamic layout -->
+									<g:SplitLayoutPanel>
+										<g:west size="150">
+											<g:HTMLPanel addStyleNames="{style.uibox}">Address</g:HTMLPanel>
+										</g:west>
+										<g:center size="100">
+											<g:LayoutPanel addStyleNames="{style.uibox}">
+												<g:layer>
+													<g:HTMLPanel styleName="{style.southPanel}">MessageContent
+													</g:HTMLPanel>
+												</g:layer>
+												<g:layer bottom="0" height="25px">
+													<g:HTMLPanel styleName="{style.centerPanel}">StatusBar</g:HTMLPanel>
+												</g:layer>
+											</g:LayoutPanel>
+										</g:center>
+									</g:SplitLayoutPanel>
+								</g:center>
+							</g:DockLayoutPanel>
+						</g:center>
+
+					</g:SplitLayoutPanel>
+				</g:center>
+			</g:DockLayoutPanel>
+		</g:layer>
+	</g:LayoutPanel>
+</ui:UiBinder>

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/buttons.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/buttons.png?rev=1522232&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/buttons.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/buttons.png Thu Sep 12 03:40:03 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/hupa_logo_49_transparent.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/hupa_logo_49_transparent.png?rev=1522232&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/hupa_logo_49_transparent.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/hupa_logo_49_transparent.png Thu Sep 12 03:40:03 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/linen_header.jpg
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/linen_header.jpg?rev=1522232&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/linen_header.jpg (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/linen_header.jpg Thu Sep 12 03:40:03 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/roundcube_logo.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/roundcube_logo.png?rev=1522232&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/roundcube_logo.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/roundcube_logo.png Thu Sep 12 03:40:03 2013 differ

Modified: james/hupa/trunk/client/src/main/webapp/styles.css
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/webapp/styles.css?rev=1522232&r1=1522231&r2=1522232&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/webapp/styles.css (original)
+++ james/hupa/trunk/client/src/main/webapp/styles.css Thu Sep 12 03:40:03 2013
@@ -4522,3 +4522,16 @@ fieldset.tab {
     margin-left: 0;
 >>>>>>> refactoring theme 1 - login page
 }
+.gwt-SplitLayoutPanel-HDragger {
+    cursor: col-resize;
+    position: absolute;
+    background: url(images/splitter.png) center no-repeat;
+    background-position: 0 center;
+}
+
+.gwt-SplitLayoutPanel-VDragger {
+    cursor: row-resize;
+    position: absolute;
+    background: url(images/splitter.png) center no-repeat;
+    background-position: center 0;
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org