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/08/21 16:08:29 UTC

svn commit: r1516164 [11/20] - in /james/hupa/trunk: ./ client/ client/src/main/java/com/ client/src/main/java/com/google/ client/src/main/java/com/google/web/ client/src/main/java/com/google/web/bindery/ client/src/main/java/com/google/web/bindery/req...

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlineComposePanel.java (from r1375909, james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ForwardMessage.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlineComposePanel.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlineComposePanel.java&p1=james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ForwardMessage.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ForwardMessage.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlineComposePanel.java Wed Aug 21 14:08:19 2013
@@ -17,55 +17,40 @@
  * under the License.                                           *
  ****************************************************************/
 
+package org.apache.hupa.client.ui;
 
-package org.apache.hupa.shared.rpc;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.AcceptsOneWidget;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.DockLayoutPanel;
+import com.google.gwt.user.client.ui.IsWidget;
+import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.user.client.ui.Widget;
 
-import org.apache.hupa.shared.data.IMAPFolder;
-import org.apache.hupa.shared.data.SMTPMessage;
+public class __OutlineComposePanel extends Composite {
 
-public class ForwardMessage extends SendMessage {
+	@UiField ScrollPanel contactListContainer;
 
-    private static final long serialVersionUID = 1L;
-    
-    private long uid;
-    private IMAPFolder folder;
-    private String inReplyTo;
-    private String references;
-
-    public ForwardMessage(SMTPMessage msg, IMAPFolder folder, long uid) {
-        super(msg);
-        this.folder = folder;
-        this.uid = uid;
-    }
-
-    public ForwardMessage setInReplyTo(String inReplyTo) {
-		this.inReplyTo = inReplyTo;
-		return this;
+	public __OutlineComposePanel() {
+		initWidget(binder.createAndBindUi(this));
 	}
-    
-    public ForwardMessage setReferences(String references) {
-		this.references = references;
-		return this;
-	}
-    
-    protected ForwardMessage() {
-    }
-
-    public long getReplyMessageUid() {
-        return uid;
-    }
-    
-    public IMAPFolder getFolder() {
-        return folder;
-    }
-    
-    @Override
-    public String getInReplyTo() {
-		return inReplyTo;
+
+	public AcceptsOneWidget getContactListView() {
+		return new AcceptsOneWidget() {
+			@Override
+			public void setWidget(IsWidget w) {
+				contactListContainer.setWidget(Widget.asWidgetOrNull(w));
+			}
+		};
 	}
 
-    @Override
-    public String getReferences() {
-		return references;
+	interface __OutlinePanelUiBinder extends
+			UiBinder<DockLayoutPanel, __OutlineComposePanel> {
 	}
+
+	private static __OutlinePanelUiBinder binder = GWT
+			.create(__OutlinePanelUiBinder.class);
+
 }

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlineComposePanel.ui.xml
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlineComposePanel.ui.xml?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlineComposePanel.ui.xml (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlineComposePanel.ui.xml Wed Aug 21 14:08:19 2013
@@ -0,0 +1,62 @@
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+	xmlns:g='urn:import:com.google.gwt.user.client.ui'>
+	<ui:style>
+		.box {
+			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;
+		}
+		
+		.folderList {
+			position: absolute;
+			top: 0;
+			left: 0;
+			width: 100%;
+			min-width: 144px;
+			bottom: 0;
+			overflow-x: hidden;
+			overflow-y: auto;
+		}
+		
+		.listBox {
+			background: #D9ECF4;
+			overflow: hidden;
+		}
+		
+		.box .boxFooter {
+			border-radius: 0 0 4px 4px;
+			border-top: 1px solid #ccdde4;
+			-webkit-box-shadow: inset 0 1px 0 0 #fff;
+			-moz-box-shadow: inset 0 1px 0 0 #fff;
+			box-shadow: inset 0 1px 0 0 #fff;
+			background: #d9ecf4;
+		}
+	</ui:style>
+	<g:DockLayoutPanel unit="PX" ui:field="thisPanel"
+		addStyleNames="{style.folderList}  {style.box}  {style.listBox}">
+		<g:center>
+			<g:ScrollPanel ui:field="contactListContainer" />
+		</g:center>
+		<g:south size="41">
+			<g:SimplePanel styleName="{style.boxFooter}">
+				<g:HTMLPanel tag="span"></g:HTMLPanel>
+			</g:SimplePanel>
+		</g:south>
+	</g:DockLayoutPanel>
+</ui:UiBinder>
\ No newline at end of file

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlinePanel.java (from r1375909, 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/ui/__OutlinePanel.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlinePanel.java&p1=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/Hupa.java&r1=1375909&r2=1516164&rev=1516164&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/ui/__OutlinePanel.java Wed Aug 21 14:08:19 2013
@@ -17,34 +17,40 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.client;
+package org.apache.hupa.client.ui;
 
-import net.customware.gwt.presenter.client.place.PlaceManager;
-
-import org.apache.hupa.client.gin.HupaGinjector;
-import org.apache.hupa.client.mvp.AppPresenter;
-
-import com.google.gwt.core.client.EntryPoint;
 import com.google.gwt.core.client.GWT;
-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.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.AcceptsOneWidget;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.DockLayoutPanel;
+import com.google.gwt.user.client.ui.IsWidget;
+import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class __OutlinePanel extends Composite {
+
+	@UiField ScrollPanel folderListContainer;
+
+	public __OutlinePanel() {
+		initWidget(binder.createAndBindUi(this));
+	}
+
+	public AcceptsOneWidget getFolderListView() {
+		return new AcceptsOneWidget() {
+			@Override
+			public void setWidget(IsWidget w) {
+				folderListContainer.setWidget(Widget.asWidgetOrNull(w));
+			}
+		};
+	}
+
+	interface __OutlinePanelUiBinder extends
+			UiBinder<DockLayoutPanel, __OutlinePanel> {
+	}
 
-public class Hupa implements EntryPoint{
-    private final HupaGinjector injector = GWT.create(HupaGinjector.class);
-    
-    public void onModuleLoad() {
-        // remove the loading message from the browser
-        com.google.gwt.user.client.Element loading = DOM.getElementById("loading");
-
-        DOM.removeChild(RootPanel.getBodyElement(), loading);
-
-        AppPresenter aPres = injector.getAppPresenter();
-        aPres.bind();
-       
-        RootPanel.get().add(aPres.getDisplay().asWidget());
-
-        PlaceManager placeManager = injector.getPlaceManager();
-        placeManager.fireCurrentPlace();
-    }
+	private static __OutlinePanelUiBinder binder = GWT
+			.create(__OutlinePanelUiBinder.class);
 
 }

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlinePanel.ui.xml
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlinePanel.ui.xml?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlinePanel.ui.xml (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__OutlinePanel.ui.xml Wed Aug 21 14:08:19 2013
@@ -0,0 +1,62 @@
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+	xmlns:g='urn:import:com.google.gwt.user.client.ui'>
+	<ui:style>
+		.box {
+			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;
+		}
+		
+		.folderList {
+			position: absolute;
+			top: 0;
+			left: 0;
+			width: 100%;
+			min-width: 144px;
+			bottom: 0;
+			overflow-x: hidden;
+			overflow-y: auto;
+		}
+		
+		.listBox {
+			background: #D9ECF4;
+			overflow: hidden;
+		}
+		
+		.box .boxFooter {
+			border-radius: 0 0 4px 4px;
+			border-top: 1px solid #ccdde4;
+			-webkit-box-shadow: inset 0 1px 0 0 #fff;
+			-moz-box-shadow: inset 0 1px 0 0 #fff;
+			box-shadow: inset 0 1px 0 0 #fff;
+			background: #d9ecf4;
+		}
+	</ui:style>
+	<g:DockLayoutPanel unit="PX" ui:field="thisPanel"
+		addStyleNames="{style.folderList}  {style.box}  {style.listBox}">
+		<g:center>
+			<g:ScrollPanel ui:field="folderListContainer" />
+		</g:center>
+		<g:south size="41">
+			<g:SimplePanel styleName="{style.boxFooter}">
+				<g:HTMLPanel tag="span"></g:HTMLPanel>
+			</g:SimplePanel>
+		</g:south>
+	</g:DockLayoutPanel>
+</ui:UiBinder>
\ No newline at end of file

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssFolderListView.css
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssFolderListView.css?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssFolderListView.css (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssFolderListView.css Wed Aug 21 14:08:19 2013
@@ -0,0 +1,94 @@
+.cellTreeWidget {
+	display: block;
+	margin: 0;
+	padding: 0;
+    min-width:144px;
+}
+
+.cellTreeEmptyMessage {
+	
+}
+
+.cellTreeItem {
+	cursor: default;
+}
+
+.cellTreeItemImage {
+	
+}
+
+.cellTreeItemImageValue {
+	
+}
+
+.cellTreeItemValue {
+	padding-left: 20px;
+	padding-right: 36px;
+    text-align: left;
+    text-decoration: none;
+    text-overflow: ellipsis;
+    text-shadow: rgb(255, 255, 255) 0px 1px 1px;
+    white-space: nowrap;
+}
+
+/*
+div:focus { outline: none; }
+*/
+.cellTreeKeyboardSelectedItem { /*  background-color: #ffff00; */
+	
+}
+
+.cellTreeOpenItem {
+	
+}
+
+.cellTreeTopItem {
+	font-weight: bold;
+	color: #4b4a4a;
+}
+
+.cellTreeTopItemImage {
+	
+}
+
+@sprite .cellTreeTopItemImageValue {
+	height: 17px;
+	width: auto;
+	overflow-x: hidden;
+	gwt-image: 'listicons';
+	background-position: 6px -213px;
+	padding: 6px 8px 2px 8px;
+	border-bottom-color: #bbd3da;
+	border-bottom-left-radius: 0px;
+	border-bottom-right-radius: 0px;
+	border-bottom-style: solid;
+	border-bottom-width: 1px;
+	border-top-color: #fff;
+	border-top-left-radius: 4px;
+	border-top-right-radius: 4px;
+	border-top-style: solid;
+	border-top-width: 1px;
+}
+
+:focus {
+	outline: 0;
+}
+
+.cellTreeSelectedItem {
+	background-color: #c7e3ef;
+	color: #004458;
+	height: auto;
+	overflow-x: hidden;
+}
+
+.cellTreeShowMoreButton {
+}
+
+.popup{
+	border:1px solid black;
+	background-color:rgba(250, 250, 250, 0.5);
+}
+
+.menuItem{
+	cursor: pointer;
+}
\ No newline at end of file

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssLabelListView.css
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssLabelListView.css?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssLabelListView.css (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssLabelListView.css Wed Aug 21 14:08:19 2013
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2010 Google Inc.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+.cellListWidget {
+	
+	cursor:default;
+	
+}
+
+.cellListEvenItem {
+	overflow: hidden;
+	overflow-x: hidden;
+	padding: 6px 8px 2px 8px;
+	border-bottom-color: #bbd3da;
+	border-bottom-left-radius: 0;
+	border-bottom-right-radius: 0;
+	border-bottom-style: solid;
+	border-bottom-width: 1px;
+	border-top-color: #fff;
+	border-top-left-radius: 4px;
+	border-top-right-radius: 4px;
+	border-top-style: solid;
+	border-top-width: 1px;
+}
+
+.cellListOddItem {
+	overflow: hidden;
+	overflow-x: hidden;
+	padding: 6px 8px 2px 8px;
+	border-bottom-color: #bbd3da;
+	border-bottom-left-radius: 0;
+	border-bottom-right-radius: 0;
+	border-bottom-style: solid;
+	border-bottom-width: 1px;
+	border-top-color: #fff;
+	border-top-left-radius: 4px;
+	border-top-right-radius: 4px;
+	border-top-style: solid;
+	border-top-width: 1px;
+}
+
+.cellListKeyboardSelectedItem {
+    background:  #c7e3ef;
+}
+
+.cellListSelectedItem {
+	background:  #c7e3ef;
+    background-color: #c7e3ef;
+    color: #004458;
+    height: auto;
+    overflow-x: hidden;
+}
\ No newline at end of file

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssLoginView.css
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssLoginView.css?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssLoginView.css (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssLoginView.css Wed Aug 21 14:08:19 2013
@@ -0,0 +1,135 @@
+/*** Login form ***/
+.loginForm {
+	position: relative;
+	width: 580px;
+	margin: 20ex auto 2ex auto;
+}
+/* images should be under project root, why jpg cannot use like png by relative path */
+.loginForm .boxInner {
+	background: url(images/linen_login.jpg) top left no-repeat #5c5c5c;
+    width: 430px;
+	margin: 0 50px;
+	padding: 10px 24px 24px 24px;
+	border: 1px solid #333;
+	border-radius: 5px;
+	box-shadow: inset 0 0 1px #ccc;
+	-o-box-shadow: inset 0 0 1px #ccc;
+	-webkit-box-shadow: inset 0 0 1px #ccc;
+	-moz-box-shadow: inset 0 0 1px #ccc;
+}
+
+.loginForm .boxBottom {
+	background: url(loginShadow.png) top center no-repeat;
+	margin-top: -3px;
+	padding-top: 10px;
+}
+
+.loginForm .tdInput {
+	width: 80%;
+	padding: 8px;
+}
+
+.loginForm input[type="text"],.loginForm input[type="password"] {
+	background-color: white;
+	width: 100%;
+	border-color: #666;
+}
+
+.loginForm input.button {
+	color: #444;
+	text-shadow: 0px 1px 1px #fff;
+	border-color: #f9f9f9;
+	background: #f9f9f9;
+	background: -moz-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9),
+		color-stop(100%, #e2e2e2) );
+	background: -o-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	background: -ms-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	background: linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	box-shadow: inset 0 1px 0 0 #fff;
+	-moz-box-shadow: inset 0 1px 0 0 #fff;
+	-webkit-box-shadow: inset 0 1px 0 0 #fff;
+	-o-box-shadow: inset 0 1px 0 0 #fff;
+}
+
+.loginForm input.button:hover,.loginForm input.button:focus {
+	box-shadow: 0 0 5px 2px rgba(71, 135, 177, 0.9), inset 0 1px 0 0 #fff;
+	-moz-box-shadow: 0 0 5px 2px rgba(71, 135, 177, 0.9), inset 0 1px 0 0
+		#fff;
+	-webkit-box-shadow: 0 0 5px 2px rgba(71, 135, 177, 0.9), inset 0 1px 0 0
+		#fff;
+	-o-box-shadow: 0 0 5px 2px rgba(71, 135, 177, 0.9), inset 0 1px 0 0 #fff;
+}
+
+.loginForm input.button:active {
+	color: #333;
+	background: -moz-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #dcdcdc),
+		color-stop(100%, #f9f9f9) );
+	background: -o-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+	background: -ms-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+	background: linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+}
+
+.loginForm form table {
+	width: 98%;
+}
+
+.loginForm .tdTitle {
+	white-space: nowrap;
+	color: #cecece;
+	text-shadow: 0px 1px 1px black;
+	text-align: right;
+	padding-right: 1em;
+}
+
+.loginForm .pFormbuttons {
+	margin-top: 2em;
+	text-align: center;
+	border-radius: 5px;
+}
+
+.loginForm .submitButton {
+	background-color: white;
+	font-size: 110%;
+	font-weight: bold;
+	padding: 4px 12px;
+	color: #000;
+	text-decoration: hand;
+	border: 1px solid #DDD;
+	text-align: center;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+	-o-border-radius: 5px;
+	border-radius: 5px;
+}
+
+.loginForm .submitButton:hover {
+	box-shadow: 0 0 5px 2px rgba(71, 135, 177, 0.9), inset 0 1px 0 0 #fff;
+	-moz-box-shadow: 0 0 5px 2px rgba(71, 135, 177, 0.9), inset 0 1px 0 0
+		#fff;
+	-webkit-box-shadow: 0 0 5px 2px rgba(71, 135, 177, 0.9), inset 0 1px 0 0
+		#fff;
+	-o-box-shadow: 0 0 5px 2px rgba(71, 135, 177, 0.9), inset 0 1px 0 0 #fff;
+}
+
+.loginForm #logo {
+	margin-bottom: 20px;
+}
+
+.loginForm .messagebox {
+	min-height: 40px;
+	padding: 5px 25px;
+	text-align: center;
+}
+
+.loginForm .messageBox div {
+	display: inline-block;
+	padding-right: 0;
+}
+
+.bottomLine {
+	font-size: 90%;
+	text-align: center;
+	margin-top: 2em;
+}
\ No newline at end of file

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssMessagesCellTable.css
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssMessagesCellTable.css?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssMessagesCellTable.css (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssMessagesCellTable.css Wed Aug 21 14:08:19 2013
@@ -0,0 +1,160 @@
+@def selectionBorderWidth 2px;
+.dataGridWidget {
+	table-layout: fixed;
+}
+
+.dataGridFirstColumn {
+	
+}
+
+.dataGridLastColumn {
+	
+}
+
+.dataGridFooter {
+	border-top: 2px solid #6f7277;
+	padding: 3px 15px;
+	text-align: left;
+	color: #4b4a4a;
+	text-shadow: #ddf 1px 1px 0;
+	overflow: hidden;
+	white-space: nowrap;
+}
+
+.dataGridHeader {
+	color: #69939e;
+	font-size: 11px;
+	font-weight: bold;
+	background: #d6eaf3;
+	background: -moz-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
+	background: -webkit-gradient(linear, left top, right top, color-stop(0, #e3f2f6),
+		color-stop(8%, #d6eaf3), color-stop(100%, #d6eaf3) );
+	background: -o-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
+	background: -ms-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
+	background: linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
+	border-left: 1px solid #bbd3da;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	height: 23px;
+	padding: 2px 7px;
+	text-align: left;
+}
+
+.dataGridCell {
+	cursor: pointer;
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	display: table-cell;
+	vertical-align: inherit;
+	padding: 2px 7px;
+/* 	border-left: 1px dotted #bbd3da;
+	border-bottom: 1px solid #111; */
+}
+
+.dataGridFirstColumnFooter {
+	
+}
+
+.dataGridFirstColumnHeader {
+	
+}
+
+.dataGridLastColumnFooter {
+	
+}
+
+.dataGridLastColumnHeader {
+	
+}
+
+.dataGridSortableHeader {
+	cursor: pointer;
+	cursor: hand;
+}
+
+.dataGridSortableHeader:hover {
+	color: #6c6b6b;
+}
+
+.dataGridSortedHeaderAscending {
+	
+}
+
+.dataGridSortedHeaderDescending {
+	
+}
+
+.dataGridEvenRow {
+	background: #ffffff;
+}
+
+.dataGridEvenRowCell {
+/* 	border-left: 1px dotted #bbd3da; */
+	border-bottom: 1px solid #E5E5E5;
+}
+
+.dataGridOddRow {
+	background: #f3f7fb;
+}
+
+.dataGridOddRowCell {
+/* 	border-left: 1px dotted #bbd3da; */
+	border-bottom: 1px solid #E5E5E5;
+}
+
+.dataGridHoveredRow {
+	background: #eee;
+}
+
+.dataGridHoveredRowCell {
+/* 	border-left: 1px dotted #bbd3da; */
+	border-bottom: 1px solid #E5E5E5;
+}
+
+.dataGridKeyboardSelectedRow {
+	background: #ffc;
+}
+
+.dataGridKeyboardSelectedRowCell {
+	
+}
+
+.dataGridSelectedRow {
+	color: #333333;
+	height: auto;
+	overflow: auto;
+	background: #059ec6;
+	background: -moz-linear-gradient(top, #FFFCCE 0%, #FFFCCE 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #FFFCCE),
+		color-stop(100%, #FFFCCE) );
+	background: -o-linear-gradient(top, #FFFCCE 0%, #FFFCCE 100%);
+	background: -ms-linear-gradient(top, #FFFCCE 0%, #FFFCCE 100%);
+	background: linear-gradient(top, #FFFCCE 0%, #FFFCCE 100%);
+    /*background: linear-gradient(top, #019bc6 0%, #017cb4 100%);*/
+}
+
+
+.dataGridSelectedRow td{
+    border-bottom: 1px dotted #E5E5E5;
+}
+
+.dataGridSelectedRowCell {
+	/* border-left: 1px dotted #628cd5; */
+	border-bottom: 0px solid #628cd5;
+}
+
+/**
+ * The keyboard selected cell is visible over selection.
+ */
+.dataGridKeyboardSelectedCell {
+	border: selectionBorderWidth solid #d7dde8;
+}
+
+.fontBold {
+	font-weight: bold;
+}
+
+.fontNormal {
+	font-weight: normal;
+}
\ No newline at end of file

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssSplitLayoutPanel.css
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssSplitLayoutPanel.css?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssSplitLayoutPanel.css (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssSplitLayoutPanel.css Wed Aug 21 14:08:19 2013
@@ -0,0 +1,52 @@
+.splitLayoutPanel {
+	
+}
+
+.splitLayoutPanel .gwt-SplitLayoutPanel-HDragger {
+	user-select: none;
+	-moz-user-select: none;
+	-khtml-user-select: none;
+	position: absolute;
+	background: url(images/splitter.png) center no-repeat;
+	width: 10px;
+	height: 100%;
+	cursor: e-resize;
+	cursor: col-resize;
+	background-position: 0 center;
+}
+
+.splitLayoutPanel .gwt-SplitLayoutPanel-VDragger {
+	user-select: none;
+	-moz-user-select: none;
+	-khtml-user-select: none;
+	position: absolute;
+	background: url(images/splitter.png) center no-repeat;
+	height: 10px;
+	width: 100%;
+	cursor: n-resize;
+	cursor: row-resize;
+	background-position: center 0;
+}
+
+@external .gwt-SplitLayoutPanel-HDragger;
+@external .gwt-SplitLayoutPanel-VDragger;
+.statusbar {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	height: 27px;
+	padding-left: 8px;
+	border-top: 1px solid #ddd;
+	border-radius: 0 0 4px 4px;
+	background: #eaeaea;
+	background: -moz-linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eaeaea),
+		color-stop(100%, #c8c8c8) );
+	background: -o-linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
+	background: -ms-linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
+	background: linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
\ No newline at end of file

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/ajaxloader.gif
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/ajaxloader.gif?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/ajaxloader.gif (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/ajaxloader.gif Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/buttons.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/buttons.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/buttons.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/buttons.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa-logo-64-transparent.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa-logo-64-transparent.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa-logo-64-transparent.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa-logo-64-transparent.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa-logo-original-transparent.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa-logo-original-transparent.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa-logo-original-transparent.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa-logo-original-transparent.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa_logo_49_transparent.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa_logo_49_transparent.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa_logo_49_transparent.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/hupa_logo_49_transparent.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/linen_header.jpg
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/linen_header.jpg?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/linen_header.jpg (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/linen_header.jpg Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/listicons.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/listicons.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/listicons.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/listicons.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/loginBack.jpg
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/loginBack.jpg?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/loginBack.jpg (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/loginBack.jpg Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/loginShadow.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/loginShadow.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/loginShadow.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/loginShadow.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/messages.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/messages.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/messages.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/messages.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/splitter.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/splitter.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/splitter.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/splitter.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/styles.css
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/styles.css?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/styles.css (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/styles.css Wed Aug 21 14:08:19 2013
@@ -0,0 +1,2047 @@
+/**
+ * Roundcube webmail styles for skin "Larry"
+ *
+ * Copyright (c) 2012, The Roundcube Dev Team
+ * Screendesign by FLINT / Büro für Gestaltung, bueroflint.com
+ *
+ * The contents are subject to the Creative Commons Attribution-ShareAlike
+ * License. It is allowed to copy, distribute, transmit and to adapt the work
+ * by keeping credits to the original autors in the README file.
+ * See http://creativecommons.org/licenses/by-sa/3.0/ for details.
+ *
+ * $Id$
+ */
+
+body {
+	font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px;
+	color: #333;
+	background: url(images/linen.jpg) repeat #d1d5d8;
+	margin: 0;
+}
+
+body.noscroll {
+	/* also avoids bounce effect in Chrome and Safari */
+	overflow: hidden;
+}
+
+a {
+	color: #0069a6;
+}
+
+a:visited {
+	color: #0186ba;
+}
+
+img {
+  border: 0;
+}
+
+input[type="text"],
+input[type="password"],
+textarea {
+	margin: 0; /* Safari by default adds a margin */
+	padding: 4px;
+	border: 1px solid #b2b2b2;
+	border-radius: 4px;
+	box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1);
+	-moz-box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1);
+	-webkit-box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1);
+	-o-box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1);
+}
+
+input[type="text"]:focus,
+input[type="password"]:focus,
+input.button:focus,
+textarea:focus {
+	border-color: #4787b1;
+	box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
+	-moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
+	-webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
+	-o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
+	outline: none;
+}
+
+input.placeholder,
+textarea.placeholder {
+	color: #aaa;
+}
+
+.bold {
+	font-weight: bold;
+}
+
+/*** buttons ***/
+
+input.button {
+	display: inline-block;
+	margin: 0 2px;
+	padding: 2px 5px;
+	color: #525252;
+	text-shadow: 0px 1px 1px #fff;
+	border: 1px solid #c0c0c0;
+	border-radius: 4px;
+	background: #f7f7f7;
+	background: -moz-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#e6e6e6));
+	background: -o-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
+	background: -ms-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
+	background: linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
+	box-shadow: 0 1px 1px 0 rgba(140, 140, 140, 0.3);
+	-o-box-shadow: 0 1px 1px 0 rgba(140, 140, 140, 0.3);
+	-webkit-box-shadow: 0 1px 1px 0 rgba(140, 140, 140, 0.3);
+	-moz-box-shadow: 0 1px 1px 0 rgba(140, 140, 140, 0.3);
+	text-decoration: none;
+	outline: none;
+}
+
+.formbuttons input.button {
+	color: #ddd;
+	font-size: 110%;
+	text-shadow: 0px 1px 1px #333;
+	padding: 4px 12px;
+	border-color: #465864;
+	border-radius: 5px;
+	background: #7a7b7d;
+	background: -moz-linear-gradient(top, #7b7b7b 0%, #606060 100%); /* FF3.6+ */
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#7b7b7b), color-stop(100%,#606060)); /* Chrome,Safari4+ */
+	background: -o-linear-gradient(top, #7b7b7b 0%, #606060 100%); /* Opera 11.10+ */
+	background: -ms-linear-gradient(top, #7b7b7b 0%, #606060 100%); /* IE10+ */
+	background: linear-gradient(top, #7b7b7b 0%, #606060 100%); /* W3C */
+	box-shadow: 0 1px 1px 0 #ccc, inset 0 1px 0 0 #888;
+	-o-box-shadow: 0 1px 1px 0 #ccc, inset 0 1px 0 0 #888;
+	-webkit-box-shadow: 0 1px 1px 0 #ccc, inset 0 1px 0 0 #888;
+	-moz-box-shadow: 0 1px 1px 0 #ccc, inset 0 1px 0 0 #888;
+}
+
+.formbuttons input.button:hover,
+.formbuttons input.button:focus,
+input.button.mainaction:hover,
+input.button.mainaction:focus {
+	color: #f2f2f2;
+	border-color: #465864;
+	box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #888;
+	-moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #888;
+	-webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #888;
+	-o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #888;
+}
+
+.formbuttons input.button:active {
+	color: #fff;
+	background: -moz-linear-gradient(top, #5c5c5c 0%, #7b7b7b 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#5c5c5c), color-stop(100%,#7b7b7b));
+	background: -o-linear-gradient(top, #5c5c5c 0%, #7b7b7b 100%);
+	background: -ms-linear-gradient(top, #5c5c5c 0%, #7b7b7b 100%);
+	background: linear-gradient(top, #5c5c5c 0%, #7b7b7b 100%);
+}
+
+input.button.mainaction {
+	color: #ededed;
+	text-shadow: 0px 1px 1px #333;
+	border-color: #1f262c;
+	background: #505050;
+	background: -moz-linear-gradient(top, #505050 0%, #2a2e31 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#505050), color-stop(100%,#2a2e31));
+	background: -o-linear-gradient(top, #505050 0%, #2a2e31 100%);
+	background: -ms-linear-gradient(top, #505050 0%, #2a2e31 100%);
+	background: linear-gradient(top, #505050 0%, #2a2e31 100%);
+	box-shadow: inset 0 1px 0 0 #777;
+	-moz-box-shadow: inset 0 1px 0 0 #777;
+	-webkit-box-shadow: inset 0 1px 0 0 #777;
+	-o-box-shadow: inset 0 1px 0 0 #777;
+}
+
+input.button.mainaction:active {
+	color: #fff;
+	background: #515151;
+	background: -moz-linear-gradient(top, #2a2e31 0%, #505050 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2a2e31), color-stop(100%,#505050));
+	background: -o-linear-gradient(top, #2a2e31 0%, #505050 100%);
+	background: -ms-linear-gradient(top, #2a2e31 0%, #505050 100%);
+	background: linear-gradient(top, #2a2e31 0%, #505050 100%);
+}
+
+input.button[disabled],
+input.button[disabled]:hover,
+input.button.mainaction[disabled] {
+	color: #aaa !important;
+}
+
+input.mainaction {
+	font-weight: bold;
+}
+
+/** link buttons **/
+
+a.button {
+	display: inline-block;
+	margin: 0 2px;
+	padding: 2px 5px;
+	color: #525252;
+	text-shadow: 0px 1px 1px #fff;
+	border: 1px solid #c6c6c6;
+	border-radius: 4px;
+	background: #f7f7f7;
+	background: -moz-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#e6e6e6));
+	background: -o-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
+	background: -ms-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
+	background: linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
+	box-shadow: 0 1px 1px 0 rgba(140, 140, 140, 0.3);
+	-o-box-shadow: 0 1px 1px 0 rgba(140, 140, 140, 0.3);
+	-webkit-box-shadow: 0 1px 1px 0 rgba(140, 140, 140, 0.3);
+	-moz-box-shadow: 0 1px 1px 0 rgba(140, 140, 140, 0.3);
+	text-decoration: none;
+}
+
+a.button:focus,
+input.button:focus {
+	border-color: #4fadd5;
+	box-shadow: 0 0 2px 1px rgba(71,135,177, 0.6);
+	-moz-box-shadow: 0 0 2px 1px rgba(71,135,177, 0.6);
+	-webkit-box-shadow: 0 0 2px 1px rgba(71,135,177, 0.6);
+	-o-box-shadow: 0 0 2px 1px rgba(71,135,177, 0.6);
+	outline: none;
+}
+
+label.disabled,
+a.button.disabled {
+	color: #999;
+}
+
+a.button.disabled,
+input.button.disabled,
+input.button[disabled],
+a.button.disabled:hover,
+input.button.disabled:hover,
+input.button[disabled]:hover {
+	border-color: #c6c6c6;
+	box-shadow: 0 1px 1px 0 rgba(160, 160, 160, 0.4);
+	-o-box-shadow: 0 1px 1px 0 rgba(160, 160, 160, 0.4);
+	-webkit-box-shadow: 0 1px 1px 0 rgba(160, 160, 160, 0.4);
+	-moz-box-shadow: 0 1px 1px 0 rgba(160, 160, 160, 0.4);
+}
+
+a.button.disabled span.inner {
+	opacity: 0.4;
+	filter: alpha(opacity=40);
+}
+
+a.button.pressed,
+a.button:active,
+input.button:active {
+	background: #e6e6e6;
+	background: -moz-linear-gradient(top, #e6e6e6 0%, #f9f9f9 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e6e6e6), color-stop(100%,#f9f9f9));
+	background: -o-linear-gradient(top, #e6e6e6 0%, #f9f9f9 100%);
+	background: -ms-linear-gradient(top, #e6e6e6 0%, #f9f9f9 100%);
+	background: linear-gradient(top, #e6e6e6 0%, #f9f9f9 100%);
+}
+
+.pagenav.dark a.button {
+	font-weight: bold;
+	border-color: #e6e6e6;
+	background: #d8d8d8;
+	background: -moz-linear-gradient(top, #d8d8d8 0%, #bababa 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#d8d8d8), color-stop(100%,#bababa));
+	background: -o-linear-gradient(top, #d8d8d8 0%, #bababa 100%);
+	background: -ms-linear-gradient(top, #d8d8d8 0%, #bababa 100%);
+	background: linear-gradient(top, #d8d8d8 0%, #bababa 100%);
+	box-shadow: 0 1px 1px 0 #999;
+	-o-box-shadow: 0 1px 1px 0 #999;
+	-webkit-box-shadow: 0 1px 1px 0 #999;
+	-moz-box-shadow: 0 1px 1px 0 #999;
+}
+
+.pagenav.dark a.button.pressed {
+	background: #bababa;
+	background: -moz-linear-gradient(top, #bababa 0%, #d8d8d8 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#bababa), color-stop(100%,#d8d8d8));
+	background: -o-linear-gradient(top, #bababa 0%, #d8d8d8 100%);
+	background: -ms-linear-gradient(top, #bababa 0%, #d8d8d8 100%);
+	background: linear-gradient(top, #bababa 0%, #d8d8d8 100%);
+}
+
+.pagenav a.button {
+	padding: 1px 3px;
+	height: 16px;
+	vertical-align: middle;
+	margin-bottom: 1px;
+}
+
+.pagenav a.button span.inner {
+	display: inline-block;
+	width: 16px;
+	height: 13px;
+	text-indent: 1000px;
+	overflow: hidden;
+	background: url(images/buttons.png) -6px -211px no-repeat;
+}
+
+.pagenav a.prevpage span.inner {
+	background-position: -7px -226px;
+}
+
+.pagenav a.nextpage span.inner {
+	background-position: -28px -226px;
+}
+
+.pagenav a.lastpage span.inner {
+	background-position: -28px -211px;
+}
+
+.pagenav a.pageup span.inner {
+	background-position: -7px -241px;
+}
+
+.pagenav a.pagedown span.inner {
+	background-position: -29px -241px;
+}
+
+.pagenav a.reply span.inner {
+	background-position: -7px -256px;
+}
+
+.pagenav a.forward span.inner {
+	background-position: -29px -256px;
+}
+
+.pagenav a.replyall span.inner {
+	background-position: -7px -271px;
+}
+
+.pagenav a.extwin span.inner {
+	background-position: -29px -271px;
+}
+
+.pagenav .countdisplay {
+	display: inline-block;
+	padding: 3px 1em 0 1em;
+	text-shadow: 0px 1px 1px #fff;
+	min-width: 16em;
+}
+
+.pagenavbuttons {
+	position: relative;
+	top: -2px;
+}
+
+a.iconbutton {
+	display: inline-block;
+	width: 24px;
+	height: 18px;
+	text-decoration: none;
+	text-indent: -5000px;
+	background: url(images/buttons.png) -1000px 0 no-repeat;
+}
+
+a.iconbutton.disabled {
+	opacity: 0.4;
+	filter: alpha(opacity=40);
+	cursor: default;
+}
+
+a.iconbutton.searchoptions {
+	background-position: -2px -317px;
+}
+
+a.iconbutton.reset {
+	background-position: -25px -317px;
+}
+
+a.iconbutton.cancel {
+	background-position: -7px -377px;
+}
+
+a.iconlink {
+	display: inline-block;
+	color: #888;
+	text-decoration: none;
+	white-space: nowrap;
+	padding: 2px 8px 2px 20px;
+	background: url(images/buttons.png) -1000px 0 no-repeat;
+}
+
+a.iconlink:hover {
+	text-decoration: underline;
+}
+
+a.iconlink.delete {
+	background-position: -7px -337px;
+}
+
+a.iconlink.add {
+	background-position: -7px -357px;
+}
+
+a.iconlink.remove {
+	background-position: -7px -378px;
+}
+
+a.iconlink.cancel {
+	background-position: -7px -397px;
+}
+
+a.iconlink.edit {
+	background-position: -7px -417px;
+}
+
+a.iconlink.upload {
+	background-position: -6px -437px;
+}
+
+
+/*** message bar ***/
+
+#message div.loading,
+#message div.warning,
+#message div.error,
+#message div.notice,
+#message div.confirmation,
+#message-objects div.notice {
+	color: #555;
+	font-weight: bold;
+	padding: 6px 30px 6px 25px;
+	display: inline-block;
+	white-space: nowrap;
+	background: url(images/messages.png) 0 5px no-repeat;
+	cursor: default;
+}
+
+#message div.warning {
+	color: #960;
+	background-position: 0 -86px;
+}
+
+#message div.error {
+	color: #cf2734;
+	background-position: 0 -55px;
+}
+
+#message div.confirmation {
+	color: #093;
+	background-position: 0 -25px;
+}
+
+#message div.loading {
+	background: url(images/ajaxloader.gif) 2px 6px no-repeat;
+}
+
+#message div a,
+#message div span {
+	padding-right: 0.5em;
+	text-decoration: none;
+}
+
+#message div a:hover {
+	text-decoration: underline;
+	cursor: pointer;
+}
+
+#message.statusbar {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	height: 27px;
+	padding-left: 8px;
+	border-top: 1px solid #ddd;
+	border-radius: 0 0 4px 4px;
+	background: #eaeaea;
+	background: -moz-linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eaeaea), color-stop(100%,#c8c8c8));
+	background: -o-linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
+	background: -ms-linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
+	background: linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+.ui-dialog.error .ui-dialog-title,
+.ui-dialog.warning .ui-dialog-title,
+.ui-dialog.confirmation .ui-dialog-title {
+	padding-left: 25px;
+	background: url(images/messages.png) 0 5px no-repeat;
+	text-shadow: 0 1px 1px #fff;
+}
+
+.ui-dialog.warning .ui-dialog-title {
+	color: #960;
+	background-position: 0 -90px;
+}
+
+.ui-dialog.error .ui-dialog-title {
+	color: #cf2734;
+	background-position: 0 -60px;
+}
+
+.ui-dialog.confirmation .ui-dialog-title {
+	color: #093;
+	background-position: 0 -30px;
+}
+
+.ui-dialog.popupmessage .ui-dialog-titlebar {
+	padding: 8px 1em 4px 1em;
+	background: #e3e3e3;
+	background: -moz-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e3e3e3), color-stop(100%,#cfcfcf));
+	background: -o-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+	background: -ms-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+	background: linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+}
+
+.ui-dialog.popupmessage .ui-widget-content {
+	font-size: 12px;
+	background: #eee;
+	background: -moz-linear-gradient(top, #eee 0%, #dcdcdc 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eee), color-stop(100%,#dcdcdc));
+	background: -o-linear-gradient(top, #eee 0%, #dcdcdc 100%);
+	background: -ms-linear-gradient(top, #eee 0%, #dcdcdc 100%);
+	background: linear-gradient(top, #eee 0%, #dcdcdc 100%);
+}
+
+
+/*** basic page layout ***/
+
+#topline {
+	height: 18px;
+	background: url(images/linen_header.jpg) repeat #666;
+	border-bottom: 1px solid #4f4f4f;
+	padding: 2px 0 2px 10px;
+	color: #aaa;
+}
+
+#topnav {
+	height: 46px;
+	margin-bottom: 10px;
+	padding: 0 0 0 10px;
+	background: #111;
+	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%);
+}
+
+#topline a,
+#topnav a {
+	color: #eee;
+	text-decoration: none;
+}
+
+#topline a:hover {
+	text-decoration: underline;
+}
+
+#toplogo {
+	padding-top: 2px;
+}
+
+.topleft {
+	float: left;
+}
+
+.topright {
+	float: right;
+}
+
+.closelink {
+	display: inline-block;
+	padding: 2px 10px 2px 20px;
+}
+
+#topline span.username {
+	padding-right: 1em;
+}
+
+#topline .topleft a {
+	display: inline-block;
+	padding: 2px 0.8em 0 0;
+	color: #aaa;
+}
+
+#topline a.button-logout {
+	display: inline-block;
+	padding: 2px 10px 2px 20px;
+	background: url(images/buttons.png) -6px -193px no-repeat;
+	color: #fff;
+}
+
+
+/*** taskbar ***/
+
+#taskbar a {
+	display: inline-block;
+	height: 34px;
+	padding: 12px 10px 0 6px;
+}
+
+#taskbar a span.button-inner {
+	display: inline-block;
+	font-size: 110%;
+	font-weight: normal;
+	text-shadow: 0px 1px 1px black;
+	padding: 5px 0 0 34px;
+	height: 19px;
+	background: url(images/buttons.png) -1000px 0 no-repeat;
+}
+
+#taskbar a.button-selected {
+	color: #3cf;
+	background-color: #2c2c2c;
+}
+
+#taskbar a.button-mail span.button-inner {
+	background-position: 0 2px;
+}
+
+#taskbar a.button-mail:hover span.button-inner,
+#taskbar a.button-mail.button-selected span.button-inner {
+	background-position: 0 -22px;
+}
+
+#taskbar a.button-addressbook span.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 a.button-settings span.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;
+}
+
+#mainscreen {
+	position: absolute;
+	top: 88px;
+	left: 10px;
+	right: 10px;
+	bottom: 20px;
+}
+
+#mainscreen.offset {
+	top: 130px;
+}
+
+#mainscreen .offset {
+	margin-top: 42px;
+}
+
+.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: #fff;
+}
+
+.minwidth {
+	position: absolute;
+	top: 0;
+	left: 0;
+	bottom: 0;
+	width: 100%;
+	min-width: 1150px;
+}
+
+.scroller {
+	overflow: auto;
+}
+
+.readtext {
+	width: 42em;
+	padding: 12px;
+	font-size: 12px;
+}
+
+.readtext > h1,
+.readtext > h2,
+.readtext > h3 {
+	margin-top: 0;
+}
+
+.watermark {
+	background-image: url(images/watermark.jpg);
+	background-position: center;
+	background-repeat: no-repeat;
+}
+
+/*** lists ***/
+
+.listbox {
+	background: #d9ecf4;
+	overflow: hidden;
+}
+
+.listbox .scroller {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 100%;
+	bottom: 0;
+	overflow-x: hidden;
+	overflow-y: auto;
+}
+
+.listbox .scroller.withfooter {
+	bottom: 42px;
+}
+
+.listbox .boxtitle + .scroller {
+	top: 34px;
+}
+
+.boxtitle,
+.uibox .listing thead td {
+	font-size: 12px;
+	font-weight: bold;
+	padding: 10px 8px 3px 8px;
+	height: 20px;  /* doesn't affect table-cells in FF */
+	margin: 0;
+	text-shadow: 0px 1px 1px #fff;
+	border-bottom: 1px solid #bbd3da;
+	white-space: nowrap;
+}
+
+.uibox .listing thead td {
+	padding-bottom: 8px;
+	height: auto;
+}
+
+.uibox .boxtitle,
+.uibox .listing thead td {
+	background: #b0ccd7;
+	color: #004458;
+	border-radius: 4px 4px 0 0;
+}
+
+.listbox .listitem,
+.listbox .tablink,
+.listing tbody td,
+.listing li {
+	display: block;
+	border-top: 1px solid #fff;
+	border-bottom: 1px solid #bbd3da;
+	cursor: default;
+	font-weight: normal;
+}
+
+.listbox .listitem a,
+.listbox .tablink a,
+.listing tbody td,
+.listing li a {
+	display: block;
+	color: #376572;
+	text-shadow: 0px 1px 1px #fff;
+	text-decoration: none;
+	cursor: default;
+	padding: 6px 8px 2px 8px;
+	height: 17px; /* doesn't affect table-cells in FF */
+	white-space: nowrap;
+}
+
+.listing tbody td {
+	display: table-cell;
+	padding-bottom: 5px;
+	height: auto;
+	min-height: 14px;
+}
+
+.webkit .listing tbody td {
+	height: 14px;
+}
+
+.listbox .listitem.selected,
+.listbox .tablink.selected,
+.listbox .listitem.selected > a,
+.listbox .tablink.selected > a,
+.listing tbody tr.unfocused td,
+.listing tbody tr.selected td,
+.listing li.selected,
+.listing li.selected > a {
+	color: #004458;
+	font-weight: bold;
+	background-color: #c7e3ef;
+}
+
+ul.listing {
+	display: block;
+	list-style: none;
+	margin: 0;
+	padding: 0;
+}
+
+ul.listing li {
+	background-color: #d9ecf4;
+}
+
+ul.listing li.droptarget,
+table.listing tr.droptarget td {
+	background-color: #e8e798;
+}
+
+table.listing,
+table.layout {
+	border: 0;
+	width: 100%;
+	border-spacing: 0;
+}
+
+table.layout td {
+	vertical-align: top;
+}
+
+.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 #fff;
+	-moz-box-shadow: inset 0 1px 0 0 #fff;
+	box-shadow: inset 0 1px 0 0 #fff;
+	white-space: nowrap;
+	overflow: hidden;
+}
+
+.uibox .boxfooter {
+	border-radius: 0 0 4px 4px;
+}
+
+.boxfooter .listbutton {
+	display: inline-block;
+	text-decoration: none;
+	width: 48px;
+	border-right: 1px solid #fff;
+	background: #c7e3ef;
+	padding: 3px 0;
+	margin-top: 1px;
+}
+
+.uibox .boxfooter .listbutton:first-child {
+	border-radius: 0 0 0 4px;
+}
+
+.boxfooter .listbutton .inner {
+	display: inline-block;
+	width: 48px;
+	height: 35px;
+	text-indent: -5000px;
+	background: url(images/buttons.png) -1000px 0 no-repeat;
+}
+
+.boxfooter .listbutton.add .inner {
+	background-position: 10px -1301px;
+}
+
+.boxfooter .listbutton.delete .inner {
+	background-position: 10px -1342px;
+}
+
+.boxfooter .listbutton.groupactions .inner {
+	background-position: 5px -1382px;
+}
+
+.boxfooter .listbutton.addto .inner {
+	background-position: 5px -1422px;
+}
+
+.boxfooter .listbutton.addcc .inner {
+	background-position: 5px -1462px;
+}
+
+.boxfooter .listbutton.addbcc {
+	width: 54px;
+}
+
+.boxfooter .listbutton.addbcc .inner {
+	width: 54px;
+	background-position: 2px -1502px;
+}
+
+.boxfooter .listbutton.removegroup .inner {
+	background-position: 5px -1540px;
+}
+
+.boxfooter .listbutton.disabled .inner {
+	opacity: 0.4;
+	filter: alpha(opacity=40);
+}
+
+.boxfooter .countdisplay {
+	display: inline-block;
+	position: relative;
+	top: 10px;
+	color: #69929e;
+	padding: 3px 6px;
+}
+
+.boxpagenav {
+	position: absolute;
+	top: 10px;
+	right: 6px;
+	width: auto;
+}
+
+.boxpagenav a.icon {
+	display: inline-block;
+	padding: 1px 3px;
+	height: 13px;
+	width: 14px;
+	text-indent: 1000px;
+	vertical-align: bottom;
+	overflow: hidden;
+	background: url(images/buttons.png) -4px -286px no-repeat;
+}
+
+.boxpagenav a.icon.prevpage {
+	background-position: -4px -301px;
+}
+
+.boxpagenav a.icon.nextpage {
+	background-position: -28px -301px;
+}
+
+.boxpagenav a.icon.lastpage {
+	background-position: -28px -286px;
+}
+
+.boxpagenav a.icon.disabled {
+	opacity: 0.4;
+	filter: alpha(opacity=40);
+}
+
+.centerbox {
+	width: 40em;
+	margin: 16px auto;
+}
+
+.errorbox {
+	width: 40em;
+	padding: 20px;
+}
+
+.errorbox h3 {
+	font-size: 16px;
+	margin-top: 0;
+}
+
+
+/*** Records table ***/
+
+table.records-table {
+	display: table;
+	width: 100%;
+	table-layout: fixed;
+	border-collapse: collapse;
+	border-spacing: 0;
+	border: 1px solid #bbd3da;
+}
+
+.boxlistcontent .records-table {
+	border: 0;
+}
+
+.records-table thead td {
+	color: #69939e;
+	font-size: 11px;
+	font-weight: bold;
+	background: #d6eaf3;
+	background: -moz-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
+	background: -webkit-gradient(linear, left top, right top, color-stop(0,#e3f2f6), color-stop(8%,#d6eaf3), color-stop(100%,#d6eaf3));
+	background: -o-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
+	background: -ms-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px ,#d6eaf3 100%);
+	background: linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
+	border-left: 1px solid #bbd3da;
+	padding: 8px 7px;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+.records-table.sortheader thead td {
+	padding: 0;
+}
+
+.records-table thead td a,
+.records-table thead td span {
+	display: block;
+	padding: 7px 7px;
+	color: #69939e;
+	text-decoration: none;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+.records-table tbody td {
+	padding: 2px 7px;
+	border-bottom: 1px solid #ddd;
+	border-left: 1px dotted #bbd3da;
+	white-space: nowrap;
+	cursor: default;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	background-color: #fff;
+}
+
+.records-table thead tr td:first-child,
+.records-table tbody tr td:first-child {
+	border-left: 0;
+}
+
+.records-table tr.selected td {
+	color: #fff !important;
+	background: #019bc6;
+	background: -moz-linear-gradient(top, #019bc6 0%, #017cb4 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#019bc6), color-stop(100%,#017cb4));
+	background: -o-linear-gradient(top, #019bc6 0%, #017cb4 100%);
+	background: -ms-linear-gradient(top, #019bc6 0%, #017cb4 100%);
+	background: linear-gradient(top, #019bc6 0%, #017cb4 100%);
+}
+
+.records-table tr.selected td a,
+.records-table tr.selected td span {
+	color: #fff !important;
+}
+
+.records-table tr.unfocused td {
+	color: #fff !important;
+	background: #4db0d2 !important;
+}
+
+.records-table tr.unfocused td a,
+.records-table tr.unfocused td span {
+	color: #fff !important;
+}
+
+.records-table tr.deleted td,
+.records-table tr.deleted td a {
+	color: #ccc !important;
+}
+
+
+/*** iFrames ***/
+
+#aboutframe {
+	width: 97%;
+	height: 100%;
+	border: 0;
+	padding: 0;
+}
+
+body.iframe {
+	background: #fff;
+	margin: 38px 0 10px 0;
+}
+
+body.iframe.floatingbuttons {
+	margin-bottom: 40px;
+}
+
+body.iframe.fullheight {
+	margin: 0;
+}
+
+.contentbox .boxtitle,
+body.iframe .boxtitle {
+	color: #777;
+	background: #eee;
+	background: -moz-linear-gradient(top, #eee 0%, #dfdfdf 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eee), color-stop(100%,#dfdfdf));
+	background: -o-linear-gradient(top, #eee 0%, #dfdfdf 100%);
+	background: -ms-linear-gradient(top, #eee 0%, #dfdfdf 100%);
+	background: linear-gradient(top, #eee 0%, #dfdfdf 100%);
+	border-bottom: 1px solid #ccc;
+}
+
+body.iframe .boxtitle {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	z-index: 100;
+}
+
+body.iframe .footerleft.floating {
+	position: fixed;
+	left: 0;
+	bottom: 0;
+	width: 100%;
+	z-index: 110;
+	background: #fff;
+	padding-top: 8px;
+	padding-bottom: 12px;
+}
+
+body.iframe .footerleft.floating:before {
+	content: " ";
+	position: absolute;
+	top: -6px;
+	left: 0;
+	width: 100%;
+	height: 6px;
+	background: url(images/overflowshadow.png) top center no-repeat;
+}
+
+.boxcontent {
+	padding: 10px;
+}
+
+.contentbox .scroller {
+	position: absolute;
+	top: 34px;
+	left: 0;
+	right: 0;
+	bottom: 28px;
+	overflow: auto;
+}
+
+.iframebox {
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 28px;
+}
+
+.footerleft {
+	padding: 0 12px 4px 12px;
+}
+
+.propform fieldset {
+	margin-bottom: 20px;
+	border: 0;
+	padding: 0;
+}
+
+.propform fieldset legend {
+	display: block;
+	font-size: 14px;
+	font-weight: bold;
+	padding-bottom: 10px;
+	margin-bottom: 0;
+}
+
+.propform fieldset fieldset legend {
+	color: #666;
+	font-size: 12px;
+}
+
+fieldset.floating {
+	float: left;
+	margin-right: 10px;
+	margin-bottom: 10px;
+}
+
+table.propform {
+	width: 100%;
+	border-spacing: 0;
+	border-collapse: collapse;
+}
+
+ul.proplist li,
+table.propform td {
+	width: 80%;
+	padding: 4px 10px;
+	background: #eee;
+	border-bottom: 2px solid #fff;
+}
+
+table.propform td.title {
+	width: 20%;
+	color: #333;
+	padding-right: 20px;
+	white-space: nowrap;
+}
+
+table.propform .mceLayout td {
+	padding: 0;
+	border-bottom: 0;
+}
+
+ul.proplist {
+	list-style: none;
+	margin: 0;
+	padding: 0;
+}
+
+ul.proplist li {
+	width: auto;
+}
+
+#pluginbody {
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+}
+
+
+/*** Login form ***/
+
+#login-form {
+	position: relative;
+	width: 580px;
+	margin: 20ex auto 2ex auto;
+}
+
+#login-form .box-inner {
+	width: 430px;
+	background: url(images/linen_login.jpg) top left no-repeat #5c5c5c;
+	margin: 0 50px;
+	padding: 10px 24px 24px 24px;
+	border: 1px solid #333;
+	border-radius: 5px;
+	box-shadow: inset 0 0 1px #ccc;
+	-o-box-shadow: inset 0 0 1px #ccc;
+	-webkit-box-shadow: inset 0 0 1px #ccc;
+	-moz-box-shadow: inset 0 0 1px #ccc;
+}
+
+#login-form .box-bottom {
+	background: url(images/login_shadow.png) top center no-repeat;
+	margin-top: -3px;
+	padding-top: 10px;
+}
+
+#login-form td.input {
+	width: 80%;
+	padding: 8px;
+}
+
+#login-form input[type="text"],
+#login-form input[type="password"] {
+	width: 100%;
+	border-color: #666;
+}
+
+#login-form input.button {
+	color: #444;
+	text-shadow: 0px 1px 1px #fff;
+	border-color: #f9f9f9;
+	background: #f9f9f9;
+	background: -moz-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#e2e2e2));
+	background: -o-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	background: -ms-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	background: linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	box-shadow: inset 0 1px 0 0 #fff;
+	-moz-box-shadow: inset 0 1px 0 0 #fff;
+	-webkit-box-shadow: inset 0 1px 0 0 #fff;
+	-o-box-shadow: inset 0 1px 0 0 #fff;
+}
+
+#login-form input.button:hover,
+#login-form input.button:focus {
+	box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9), inset 0 1px 0 0 #fff;
+	-moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9), inset 0 1px 0 0 #fff;
+	-webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9), inset 0 1px 0 0 #fff;
+	-o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9), inset 0 1px 0 0 #fff;
+}
+
+#login-form input.button:active {
+	color: #333;
+	background: -moz-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dcdcdc), color-stop(100%,#f9f9f9));
+	background: -o-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+	background: -ms-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+	background: linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+}
+
+#login-form form table {
+	width: 98%;
+}
+
+#login-form td.title {
+	width: 20%;
+	white-space: nowrap;
+	color: #cecece;
+	text-shadow: 0px 1px 1px black;
+	text-align: right;
+	padding-right: 1em;
+}
+
+#login-form p.formbuttons {
+	margin-top: 2em;
+	text-align: center;
+}
+
+#login-form #logo {
+	margin-bottom: 20px;
+}
+
+#login-form #message {
+	min-height: 40px;
+	padding: 5px 25px;
+	text-align: center;
+}
+
+#login-form #message div {
+	display: inline-block;
+	padding-right: 0;
+}
+
+#bottomline {
+	font-size: 90%;
+	text-align: center;
+	margin-top: 2em;
+}
+
+
+
+/*** quicksearch **/
+
+#quicksearchbar {
+	position: absolute;
+	right: 1px;
+	top: 0;
+	width: 240px;
+}
+
+#quicksearchbar input {
+	width: 176px;
+	margin: 0;
+	margin-top: 7px;
+	padding: 3px 30px 3px 34px;
+	height: 18px;
+	background: #f1f1f1;
+	border-color: #ababab;
+	font-weight: bold;
+	font-size: 11px;
+}
+
+#quicksearchbar #searchmenulink {
+	position: absolute;
+	top: 12px;
+	left: 6px;
+}
+
+#quicksearchbar #searchreset {
+	position: absolute;
+	top: 11px;
+	right: 1px;
+}
+
+
+/*** toolbar ***/
+
+.toolbar .spacer {
+	display: inline-block;
+	width: 24px;
+	height: 40px;
+	padding: 0;
+}
+
+.toolbar a.button {
+	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: 28px 2px 0 2px;
+	text-shadow: 0px 1px 1px #eee;
+	box-shadow: none;
+	-moz-box-shadow: none;
+	-webkit-box-shadow: none;
+	-o-box-shadow: none;
+	background: url(images/buttons.png) -100px 0 no-repeat transparent;
+	border: 0;
+}
+
+.toolbar a.button.disabled {
+	opacity: 0.4;
+	filter: alpha(opacity=40);
+}
+
+.dropbutton {
+	display: inline-block;
+	position: relative;
+}
+
+.dropbutton .dropbuttontip {
+	display: block;
+	position: absolute;
+	right: 0;
+	top: 0;
+	height: 42px;
+	width: 18px;
+	background: url(images/buttons.png) 0 -1255px no-repeat;
+	cursor: pointer;
+}
+
+.dropbutton .dropbuttontip:hover {
+	background-position: -26px -1255px;
+}
+
+.dropbutton a.button.disabled + .dropbuttontip {
+	opacity: 0.5;
+	filter: alpha(opacity=50);
+}
+
+.dropbutton a.button.disabled + .dropbuttontip:hover {
+	background-position: 0 -1255px;
+}
+
+.dropbutton a.button {
+    margin-left: 0;
+    padding-left: 0;
+    margin-right: 0;
+    padding-right: 0;
+}
+
+.toolbar a.button.back {
+	background-position: 0 -1216px;
+}
+
+.toolbar a.button.checkmail {
+	background-position: center -1176px;
+}
+
+.toolbar a.button.compose {
+	background-position: center -530px;
+}
+
+.toolbar a.button.reply {
+	background-position: center -570px;
+}
+
+.toolbar a.button.reply-all {
+	min-width: 64px;
+	background-position: left -610px;
+}
+
+.toolbar a.button.forward {
+	min-width: 64px;
+	background-position: left -650px;
+}
+
+.toolbar a.button.delete {
+	background-position: center -690px;
+}
+
+.toolbar a.button.archive {
+	background-position: center -730px;
+}
+
+.toolbar a.button.junk {
+	background-position: center -770px;
+}
+
+.toolbar a.button.print {
+	background-position: center -810px;
+}
+
+.toolbar a.button.markmessage {
+	background-position: center -1094px;
+}
+
+.toolbar a.button.more {
+	background-position: center -850px;
+}
+
+.toolbar a.button.attach {
+	background-position: center -890px;
+}
+
+.toolbar a.button.spellcheck {
+	min-width: 64px;
+	background-position: left -930px;
+}
+
+.toolbar a.button.spellcheck.selected {
+	background-position: left -1580px;
+	color: #1978a1;
+}
+
+.toolbar a.button.insertsig {
+	background-position: center -1135px;
+}
+
+.toolbar a.button.search {
+	background-position: center -970px;
+}
+
+.toolbar a.button.import {
+	background-position: center -1012px;
+}
+
+.toolbar a.button.export {
+	background-position: center -1054px;
+}
+
+a.menuselector {
+	display: inline-block;
+	border: 1px solid #ababab;
+	border-radius: 4px;
+	background: #f8f8f8;
+	background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd));
+	background: -o-linear-gradient(top, #f8f8f8 0%, #dddddd 100%);
+	background: -ms-linear-gradient(top, #f9f9f9 0%, #dddddd 100%);
+	background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%);
+	text-decoration: none;
+	color: #333;
+	cursor: pointer;
+	white-space: nowrap;
+}
+
+a.menuselector .handle {
+	display: inline-block;
+	padding: 0 32px 0 6px;
+	height: 20px;
+	line-height: 19px;
+	text-shadow: 0px 1px 1px #fff;
+	background: url(images/selector.png) right center no-repeat;
+	border-radius: 4px;
+}
+
+a.menuselector:active {
+	background: #dddddd;
+	background: -moz-linear-gradient(top, #dddddd 0%, #f8f8f8 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dddddd), color-stop(100%,#f8f8f8));
+	background: -o-linear-gradient(top, #dddddd 0%, #f8f8f8 100%);
+	background: -ms-linear-gradient(top, #dddddd 0%, #f8f8f8 100%);
+	background: linear-gradient(top, #dddddd 0%, #f8f8f8 100%);
+	text-decoration: none;
+}
+
+select.decorated {
+	position: relative;
+	z-index: 10;
+	opacity: 0;
+	height: 22px;
+	cursor: pointer;
+	filter: alpha(opacity=0);
+	-khtml-appearance: none;
+	-webkit-appearance: none;
+}
+
+html.opera select.decorated {
+	opacity: 1;
+}
+
+select.decorated option {
+	color: #fff;
+	background: #444;
+	border: 0;
+	border-top: 1px solid #5a5a5a;
+	border-bottom: 1px solid #333;
+	text-shadow: 0px 1px 1px #333;
+	padding: 4px 6px;
+	outline: none;
+}
+
+
+/*** quota indicator ***/
+
+#quotadisplay {
+	left: 6px;
+	font-size: 12px;
+	font-weight: bold;
+	text-shadow: 0px 1px 1px #fff;
+	padding-left: 30px;
+	height: 18px;
+	background: url(images/quota.png) -100px 0 no-repeat;
+}
+
+/*** popup menus ***/
+
+.popupmenu,
+#rcmKSearchpane {
+	display: none;
+	position: absolute;
+	top: 32px;
+	left: 90px;
+	width: auto;
+	background: #444;
+	border: 1px solid #999;
+	z-index: 240;
+	border-radius: 4px;
+	box-shadow: 0 2px 6px 0 #333;
+	-moz-box-shadow: 0 2px 6px 0 #333;
+	-webkit-box-shadow: 0 2px 6px 0 #333;
+	-o-box-shadow: 0 2px 6px 0 #333;
+}
+
+.popupmenu.dropdown {
+	border-radius: 0 0 4px 4px;
+	border-top: 0;
+}
+
+ul.toolbarmenu,
+#rcmKSearchpane ul {
+	margin: 0;
+	padding: 0;
+	list-style: none;
+}
+
+.googie_list td,
+ul.toolbarmenu li,
+#rcmKSearchpane ul li {
+	color: #fff;
+	white-space: nowrap;
+	min-width: 130px;
+	margin: 0;
+	border-top: 1px solid #5a5a5a;
+	border-bottom: 1px solid #333;
+}
+
+.googie_list tr:first-child td,
+ul.toolbarmenu li:first-child,
+select.decorated option:first-child {
+	border-top: 0;
+}
+
+.googie_list tr:last-child td,
+ul.toolbarmenu li:last-child,
+select.decorated option:last-child {
+	border-bottom: 0;
+}
+
+.googie_list td span,
+ul.toolbarmenu li a {
+	display: block;
+	color: #666;
+	text-shadow: 0px 1px 1px #333;
+	text-decoration: none;
+	min-height: 14px;
+	padding: 6px 10px 6px 10px;
+}
+
+.googie_list td span {
+	padding: 3px 10px;
+}
+
+.googie_list td span,
+ul.toolbarmenu li a.active {
+	color: #fff;
+	cursor: default;
+}
+
+.googie_list td.googie_list_onhover,
+ul.toolbarmenu li a.active:hover,
+#rcmKSearchpane ul li.selected,
+select.decorated option:hover,
+select.decorated option[selected='selected'] {
+	background-color: #00aad6;
+	background: -moz-linear-gradient(top, #00aad6 0%, #008fc9 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#00aad6), color-stop(100%,#008fc9));
+	background: -o-linear-gradient(top, #00aad6 0%, #008fc9 100%);
+	background: -ms-linear-gradient(top, #00aad6 0%, #008fc9 100%);
+	background: linear-gradient(top, #00aad6 0%, #008fc9 100%);
+}
+
+ul.toolbarmenu.iconized li a,
+ul.toolbarmenu.selectable li a {
+	padding-left: 30px;
+}
+
+ul.toolbarmenu.selectable li a.selected {
+	background: url(images/messages.png) 4px -27px no-repeat;
+}
+
+ul.toolbarmenu li label {
+	display: block;
+	color: #fff;
+	padding: 4px 8px;
+	text-shadow: 0px 1px 1px #333;
+}
+
+ul.toolbarmenu li a.icon {
+	color: #eee;
+	padding: 2px 6px;
+}
+
+ul.toolbarmenu li span.icon {
+	display: block;
+	min-height: 14px;
+	padding: 4px 4px 1px 24px;
+	height: 17px;
+	background-image: url(images/listicons.png);
+	background-position: -100px 0;
+	background-repeat: no-repeat;
+	opacity: 0.2;
+	filter: alpha(opacity=20);
+}
+
+ul.toolbarmenu li a.active span.icon {
+	opacity: 0.99;
+	filter: alpha(opacity=100);
+}
+
+ul.toolbarmenu li span.read {
+	background-position: 0 -1220px;
+}
+
+ul.toolbarmenu li span.unread {
+	background-position: 0 -1196px;
+}
+
+ul.toolbarmenu li span.flagged {
+	background-position: 0 -1244px;
+}
+
+ul.toolbarmenu li span.unflagged {
+	background-position: 0 -1268px;
+}
+
+ul.toolbarmenu li span.mail {
+	background-position: 0 -1293px;
+}
+
+ul.toolbarmenu li span.list {
+	background-position: 0 -1317px;
+}
+
+ul.toolbarmenu li span.invert {
+	background-position: 0 -1340px;
+}
+
+ul.toolbarmenu li span.cross {
+	background-position: 0 -1365px;
+}
+
+ul.toolbarmenu li span.print {
+	background-position: 0 -1436px;
+}
+
+ul.toolbarmenu li span.download {
+	background-position: 0 -1412px;
+}
+
+ul.toolbarmenu li span.edit {
+	background-position: 0 -1388px;
+}
+
+ul.toolbarmenu li span.viewsource {
+	background-position: 0 -1460px;
+}
+
+ul.toolbarmenu li span.extwin {
+	background-position: 0 -1484px;
+}
+
+ul.toolbarmenu li span.conversation {
+	background-position: 0 -1532px;
+}
+
+#rcmKSearchpane {
+	border-radius: 0 0 4px 4px;
+	border-top: 0;
+}
+
+#rcmKSearchpane ul li {
+	text-shadow: 0px 1px 1px #333;
+	text-decoration: none;
+	min-height: 14px;
+	padding: 6px 10px 6px 10px;
+	border: 0;
+	cursor: default;
+}
+
+.popupdialog {
+	display: none;
+	padding: 10px;
+}
+
+.popupdialog .formbuttons {
+	margin: 20px 0 4px 0;
+}
+
+.ui-dialog .prompt input {
+	display: block;
+	margin: 8px 0;
+}
+
+.hint {
+	margin: 4px 0;
+	color: #999;
+	text-shadow: 0px 1px 1px #fff;
+}
+
+.splitter {
+	user-select: none;
+	-moz-user-select: none;
+	-khtml-user-select: none;
+	position: absolute;
+	background: url(images/splitter.png) center no-repeat;
+}
+
+.splitter-h {
+	height: 10px;
+	width: 100%;
+	cursor: n-resize;
+	cursor: row-resize;
+	background-position: center 0;
+}
+
+.splitter-v {
+	width: 10px;
+	height: 100%;
+	cursor: e-resize;
+	cursor: col-resize;
+	background-position: 0 center;
+}
+
+#rcmdraglayer {
+	min-width: 260px;
+	width: auto !important;
+	width: 260px;
+	padding: 6px 8px;
+	background: #444;
+	border: 1px solid #555;
+	border-radius: 4px;
+	box-shadow: 0 2px 6px 0 #333;
+	-moz-box-shadow: 0 2px 6px 0 #333;
+	-webkit-box-shadow: 0 2px 6px 0 #333;
+	-o-box-shadow: 0 2px 6px 0 #333;
+	z-index: 250;
+	color: #ccc;
+	white-space: nowrap;
+	opacity: 0.92;
+	filter: alpha(opacity=92);
+	text-shadow: 0px 1px 1px #333;
+}
+
+#rcmdraglayer:after {
+	content: "";
+	position: absolute;
+	top: 6px;
+	left: -6px;
+	border-style: solid;
+	border-width: 6px 6px 6px 0;
+	border-color: transparent #444;
+	/* reduce the damage in FF3.0 */
+	display: block; 
+	width: 0;
+	z-index: 251;
+}
+
+.draglayercopy:before {
+	position: absolute;
+	bottom: -6px;
+	left: -6px;
+	content: " ";
+	width: 16px;
+	height: 16px;
+	background: url(images/buttons.png) -7px -358px no-repeat;
+	z-index: 255;
+}
+
+
+/*** attachment list ***/
+
+.attachmentslist {
+	list-style: none;
+	margin: 0;
+	padding: 0;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+.attachmentslist li {
+	display: block;
+	position: relative;
+	background: url(images/filetypes.png) 0 0 no-repeat;
+	margin-bottom: 1px;
+}
+
+.attachmentslist li.pdf {
+	background-position: 0 -26px;
+}
+
+.attachmentslist li.doc,
+.attachmentslist li.docx,
+.attachmentslist li.msword {
+	background-position: 0 -52px;
+}
+
+.attachmentslist li.odt {
+	background-position: 0 -78px;
+}
+
+.attachmentslist li.xls,
+.attachmentslist li.xlsx,
+.attachmentslist li.msexcel {
+	background-position: 0 -104px;
+}
+
+.attachmentslist li.ods {
+	background-position: 0 -130px;
+}
+
+.attachmentslist li.zip,
+.attachmentslist li.gz {
+	background-position: 0 -156px;
+}
+
+.attachmentslist li.rar {
+	background-position: 0 -182px;
+}
+
+.attachmentslist li.image {
+	background-position: 0 -208px;
+}
+
+.attachmentslist li.jpg,
+.attachmentslist li.jpeg {
+	background-position: 0 -234px;
+}
+
+.attachmentslist li.png {
+	background-position: 0 -260px;
+}
+
+.attachmentslist li.m4p {
+	background-position: 0 -286px;
+}
+
+.attachmentslist li.mp3,
+.attachmentslist li.audio {
+	background-position: 0 -312px;
+}
+
+.attachmentslist li.video {
+	background-position: 0 -338px;
+}
+
+.attachmentslist li.txt,
+.attachmentslist li.text {
+	background-position: 0 -416px;
+}
+
+.attachmentslist li.ics,
+.attachmentslist li.calendar {
+	background-position: 0 -364px;
+}
+
+.attachmentslist li.vcard {
+	background-position: 0 -390px;
+}
+
+.attachmentslist li.html {
+	background-position: 0 -442px;
+}
+
+.attachmentslist li a,
+#compose-attachments ul li {
+	display: block;
+	color: #333;
+	font-weight: bold;
+	padding: 8px 4px 3px 30px;
+	text-shadow: 0px 1px 1px #fff;
+	text-decoration: none;
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+#compose-attachments ul li {
+	padding-right: 28px;
+}
+
+.attachmentslist li a:hover {
+	text-decoration: underline;
+}
+
+.attachmentslist li.uploading {
+	background: url(images/ajaxloader.gif) 2px 6px no-repeat;
+}
+
+.attachmentslist li a.delete,
+.attachmentslist li a.cancelupload {
+	position: absolute;
+	top: 6px;
+	right: 0;
+	width: 24px;
+	height: 18px;
+	padding: 0;
+	text-decoration: none;
+	text-indent: -5000px;
+	background: url(images/buttons.png) -7px -337px no-repeat;
+}
+
+.attachmentslist li a.cancelupload {
+	background-position: -7px -377px;
+}
+
+
+/*** fieldset tabs ***/
+
+.tabsbar {
+	margin-bottom: 12px;
+	padding-top: 15px;
+	height: 27px;
+	white-space: nowrap;
+}
+
+.tabsbar .tablink {
+	padding: 15px 1px 15px 0;
+	background: #f8f8f8;
+	background: -moz-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(50%,#d3d3d3), color-stop(100%,#f8f8f8));
+	background: -webkit-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%);
+	background: -o-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%);
+	background: -ms-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%);
+	background: linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%);
+}
+
+.tabsbar .tablink:last-child {
+	background: none;
+}
+
+.tabsbar .tablink:last-child a {
+	border-right: 0;
+}
+
+.tabsbar .tablink a {
+	padding: 15px;
+	color: #999;
+	font-size: 12px;
+	font-weight: bold;
+	text-decoration: none;
+	background: #fff;
+	border-right: 1px solid #fafafa;
+}
+
+.tabsbar .tablink.selected a {
+	color: #004458;
+	background: #f6f6f6;
+	background: -moz-linear-gradient(top, #fff 40%, #efefef 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(40%,#fff), color-stop(100%,#efefef));
+	background: -o-linear-gradient(top, #fff 40%, #efefef 100%);
+	background: -ms-linear-gradient(top, #fff 40%, #efefef 100%);
+	background: linear-gradient(top, #fff 40%, #efefef 100%);
+}
+
+fieldset.tab {
+	border: 0;
+	padding: 0;
+	margin-left: 0;
+}

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/validation/EmailListValidator.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/validation/EmailListValidator.java?rev=1516164&r1=1516163&r2=1516164&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/validation/EmailListValidator.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/validation/EmailListValidator.java Wed Aug 21 14:08:19 2013
@@ -19,7 +19,6 @@
 
 package org.apache.hupa.client.validation;
 
-import com.google.gwt.regexp.shared.RegExp;
 import com.google.gwt.user.client.ui.HasText;
 
 import eu.maydu.gwt.validation.client.ValidationAction;

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java?rev=1516164&r1=1516163&r2=1516164&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java Wed Aug 21 14:08:19 2013
@@ -19,154 +19,155 @@
 
 package org.apache.hupa.client.widgets;
 
-import org.apache.hupa.shared.data.IMAPFolder;
+import org.apache.hupa.shared.domain.ImapFolder;
 import org.apache.hupa.widgets.event.EditEvent;
 import org.apache.hupa.widgets.ui.EditableTreeItem;
 
-public class IMAPTreeItem extends EditableTreeItem {    
-    protected String oldFullName;
-    protected String oldName;
-
-    public IMAPTreeItem(IMAPFolder folder) {
-        setUserObject(folder);
-        setFolderText(folder);    
-    }
-
-    @Override
-    public void setSelected(boolean selected) {
-        super.setSelected(selected);
-        if (isSelected()) {
-            getWidget().addStyleName("hupa-IMAPFolder-selected");
-        } else {
-            getWidget().removeStyleName("hupa-IMAPFolder-selected");
-        }
-    }
-    
-    /**
-     * Decrease the unseen messagecount of this folder
-     */
-    public void decreaseUnseenMessageCount() {
-        descreaseUnseenMessageCount(1);
-    }
-    
-    public void setUnseenMessageCount(int cound) {
-        IMAPFolder folder = (IMAPFolder) getUserObject();
-        int count = folder.getUnseeMessageCount();
-        folder.setUnseenMessageCount(count);
-        setFolderText(folder);
-        
-    }
-    
-    
-    /**
-     * Decrease the unseen messagecount of this folder
-     */
-    public void descreaseUnseenMessageCount(int decreaseCount) {
-        IMAPFolder folder = (IMAPFolder) getUserObject();
-        int count = folder.getUnseeMessageCount();
-        if (count > 0) { 
-            count = count - decreaseCount;
-            if (count < 0) {
-                count = 0;
-            }
-            folder.setUnseenMessageCount(count);
-            setFolderText(folder);
-        } 
-    }
-    /**
-     * Increase the unseen messagecount of this folder
-     */
-    public void increaseUnseenMessageCount() {
-        increaseUnseenMessageCount(1);
-    }
-    
-    /**
-     * Increase the unseen messagecount of this folder
-     */
-    public void increaseUnseenMessageCount( int increaseCount) {
-        IMAPFolder folder = (IMAPFolder) getUserObject();
-        int count = folder.getUnseeMessageCount(); 
-        count = count+ increaseCount;
-        folder.setUnseenMessageCount(count);
-        setFolderText(folder);
-    }
-    
-    private void setFolderText(IMAPFolder folder) {
-        setText(getFolderName(folder));
-        setUnseenMessageCountStyle(folder);
-    }
-    
-    private void setUnseenMessageCountStyle(IMAPFolder folder) {
-        boolean containsUnseen = (folder.getUnseeMessageCount() > 0);
-        for (IMAPFolder fold : folder.getChildIMAPFolders()) {
-            if (fold.getUnseeMessageCount() > 0) {
-                containsUnseen = true;
-                break;
-            }
-        }
-        if (containsUnseen) {
-            getWidget().addStyleName("hupa-IMAPFolder-unseen");
-        } else {
-            getWidget().removeStyleName("hupa-IMAPFolder-unseen");
-        }
-    }
-    
-    /**
-     * Return the folder name to display in the TreeItem for the given IMAPFolder
-     * 
-     * @param folder
-     * @return name
-     */
-    private String getFolderName(IMAPFolder folder) {
-        if (folder.getUnseeMessageCount() > 0) {
-            return folder.getName() + " ("+folder.getUnseeMessageCount()+")";
-        }
-        return folder.getName();
-    }
-    
-    @Override
-    public void setUserObject(Object obj) {
-        if ((obj instanceof IMAPFolder) == false) {
-            throw new IllegalArgumentException("UserObject needs to be an instance of IMAPFolder");
-        }        
-        setFolderText((IMAPFolder)obj);
-
-        super.setUserObject(obj);
-    }
-
-    @Override
-    public void startEdit() {
-        IMAPFolder folder = (IMAPFolder) getUserObject();
-        oldFullName = folder.getFullName();
-        oldName = folder.getName();
-        showEditBox(oldName);
-        manager.fireEvent(new EditEvent(EditEvent.EventType.Start,oldFullName,null));
-    }
-    
-    @Override
-    public void cancelEdit() {
-        IMAPFolder folder = ((IMAPFolder) getUserObject());
-        folder.setFullName(oldFullName);
-        showItem(getFolderName(folder));
-
-        manager.fireEvent(new EditEvent(EditEvent.EventType.Cancel,oldFullName,null));
-
-    }
-    
-    @Override
-    public void stopEdit() {
-        if (editBox.getText().length() < 1) {
-            // Empty folder name is not allowed!
-            cancelEdit();
-        } else {
-            String newFolderName = editBox.getText();
-            String newFullFolderName = oldFullName.substring(0, oldFullName.length() - oldName.length())  + newFolderName; 
-            IMAPFolder folder = ((IMAPFolder) getUserObject());
-            folder.setFullName(newFullFolderName);
-            showItem(getFolderName(folder));
+public class IMAPTreeItem extends EditableTreeItem {
+	protected String oldFullName;
+	protected String oldName;
+
+	public IMAPTreeItem(ImapFolder folder) {
+		setUserObject(folder);
+		setFolderText(folder);
+	}
+
+	@Override
+	public void setSelected(boolean selected) {
+		super.setSelected(selected);
+		if (isSelected()) {
+			getWidget().addStyleName("hupa-IMAPFolder-selected");
+		} else {
+			getWidget().removeStyleName("hupa-IMAPFolder-selected");
+		}
+	}
+
+	/**
+	 * Decrease the unseen messagecount of this folder
+	 */
+	public void decreaseUnseenMessageCount() {
+		descreaseUnseenMessageCount(1);
+	}
+
+	public void setUnseenMessageCount(int cound) {
+		ImapFolder folder = (ImapFolder) getUserObject();
+		int count = folder.getUnseenMessageCount();
+		folder.setUnseenMessageCount(count);
+		setFolderText(folder);
+
+	}
+
+	/**
+	 * Decrease the unseen messagecount of this folder
+	 */
+	public void descreaseUnseenMessageCount(int decreaseCount) {
+		ImapFolder folder = (ImapFolder) getUserObject();
+		int count = folder.getUnseenMessageCount();
+		if (count > 0) {
+			count = count - decreaseCount;
+			if (count < 0) {
+				count = 0;
+			}
+			folder.setUnseenMessageCount(count);
+			setFolderText(folder);
+		}
+	}
+	/**
+	 * Increase the unseen messagecount of this folder
+	 */
+	public void increaseUnseenMessageCount() {
+		increaseUnseenMessageCount(1);
+	}
+
+	/**
+	 * Increase the unseen messagecount of this folder
+	 */
+	public void increaseUnseenMessageCount(int increaseCount) {
+		ImapFolder folder = (ImapFolder) getUserObject();
+		int count = folder.getUnseenMessageCount();
+		count = count + increaseCount;
+		folder.setUnseenMessageCount(count);
+		setFolderText(folder);
+	}
+
+	private void setFolderText(ImapFolder folder) {
+		setText(getFolderName(folder));
+		setUnseenMessageCountStyle(folder);
+	}
+
+	private void setUnseenMessageCountStyle(ImapFolder folder) {
+		boolean containsUnseen = (folder.getUnseenMessageCount() > 0);
+		for (ImapFolder fold : folder.getChildren()) {
+			if (fold.getUnseenMessageCount() > 0) {
+				containsUnseen = true;
+				break;
+			}
+		}
+		if (containsUnseen) {
+			getWidget().addStyleName("hupa-IMAPFolder-unseen");
+		} else {
+			getWidget().removeStyleName("hupa-IMAPFolder-unseen");
+		}
+	}
+
+	/**
+	 * Return the folder name to display in the TreeItem for the given
+	 * IMAPFolder
+	 * 
+	 * @param folder
+	 * @return name
+	 */
+	private String getFolderName(ImapFolder folder) {
+		if (folder.getUnseenMessageCount() > 0) {
+			return folder.getName() + " (" + folder.getUnseenMessageCount() + ")";
+		}
+		return folder.getName();
+	}
+
+	@Override
+	public void setUserObject(Object obj) {
+		if ((obj instanceof ImapFolder) == false) {
+			throw new IllegalArgumentException("UserObject needs to be an instance of IMAPFolder");
+		}
+		setFolderText((ImapFolder) obj);
+
+		super.setUserObject(obj);
+	}
+
+	@Override
+	public void startEdit() {
+		ImapFolder folder = (ImapFolder) getUserObject();
+		oldFullName = folder.getFullName();
+		oldName = folder.getName();
+		showEditBox(oldName);
+		manager.fireEvent(new EditEvent(EditEvent.EventType.Start, oldFullName, null));
+	}
+
+	@Override
+	public void cancelEdit() {
+		ImapFolder folder = ((ImapFolder) getUserObject());
+		folder.setFullName(oldFullName);
+		showItem(getFolderName(folder));
+
+		manager.fireEvent(new EditEvent(EditEvent.EventType.Cancel, oldFullName, null));
+
+	}
+
+	@Override
+	public void stopEdit() {
+		if (editBox.getText().length() < 1) {
+			// Empty folder name is not allowed!
+			cancelEdit();
+		} else {
+			String newFolderName = editBox.getText();
+			String newFullFolderName = oldFullName.substring(0, oldFullName.length() - oldName.length())
+					+ newFolderName;
+			ImapFolder folder = ((ImapFolder) getUserObject());
+			folder.setFullName(newFullFolderName);
+			showItem(getFolderName(folder));
 
-            manager.fireEvent(new EditEvent(EditEvent.EventType.Stop,oldFullName,newFullFolderName));
-        }
+			manager.fireEvent(new EditEvent(EditEvent.EventType.Stop, oldFullName, newFullFolderName));
+		}
 
-    }
+	}
 }



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