You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by no...@apache.org on 2009/06/26 22:43:14 UTC
svn commit: r788864 [2/3] - in /labs/hupa: ./ .settings/ src/ src/main/
src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/hupa/ src/main/java/org/apache/hupa/client/
src/main/java/org/apache/hupa/client/bundles/ src/m...
Added: labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPHeader.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPHeader.java?rev=788864&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPHeader.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPHeader.java Fri Jun 26 20:43:11 2009
@@ -0,0 +1,93 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+
+package org.apache.hupa.common.data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class IMAPHeader implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -5929451689355452678L;
+ private String raw;
+ private String from;
+ private String subject;
+ private String to;
+ private String cc;
+ private Date rDate;
+
+ public void setRawHeader(String raw) {
+ this.raw = raw;
+ }
+
+ public String getRawHeader() {
+ return raw;
+ }
+
+ public void setFrom(String from) {
+ this.from = from;
+ }
+
+ public String getFrom() {
+ return convertNull(from);
+ }
+
+ public void setCc(String cc) {
+ this.cc = cc;
+ }
+
+ public String getCc() {
+ return convertNull(cc);
+ }
+
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ public String getSubject() {
+ return convertNull(subject);
+ }
+
+ public String getTo() {
+ return convertNull(to);
+ }
+
+ public void setTo(String to) {
+ this.to = to;
+ }
+
+ private String convertNull(String raw) {
+ if (raw == null) {
+ return "";
+ }
+ return raw;
+ }
+
+ public void setReceivedDate(Date rDate) {
+ this.rDate = rDate;
+ }
+
+ public Date getReceivedDate() {
+ return rDate;
+ }
+
+}
Added: labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessage.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessage.java?rev=788864&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessage.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessage.java Fri Jun 26 20:43:11 2009
@@ -0,0 +1,82 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+
+package org.apache.hupa.common.data;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class IMAPMessage implements Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7331361994526216161L;
+ private IMAPHeader header;
+ private int uid;
+ private IMAPMessageContent content;
+ private List<IMAPFlag> flags;
+
+ public enum IMAPFlag {
+ SEEN, DELETED, RECENT
+ }
+
+ public void setIMAPFlags(List<IMAPFlag> flags) {
+ this.flags = flags;
+ }
+
+ public List<IMAPFlag> getIMAPFlags() {
+ return flags;
+ }
+
+ public void setIMAPHeader(IMAPHeader header) {
+ this.header = header;
+ }
+
+ public IMAPHeader getIMAPHeader() {
+ return header;
+ }
+
+ public int getUid() {
+ return uid;
+ }
+
+ public void setUid(int uid) {
+ this.uid = uid;
+ }
+
+ public void setIMAPMessageContent(IMAPMessageContent content) {
+ this.content = content;
+ }
+
+ public IMAPMessageContent getIMAPMessageContent() {
+ return content;
+ }
+
+ public boolean isExposed() {
+ if (getIMAPHeader() != null && getIMAPMessageContent() != null) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public String toString() {
+ return String.valueOf(getUid());
+ }
+}
Added: labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessageAttachment.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessageAttachment.java?rev=788864&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessageAttachment.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessageAttachment.java Fri Jun 26 20:43:11 2009
@@ -0,0 +1,41 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+
+package org.apache.hupa.common.data;
+
+import java.io.Serializable;
+
+public class IMAPMessageAttachment implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -6896197131104882424L;
+ private String name;
+
+ public void setName(String name) {
+ this.name = name;
+ ;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+}
Added: labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessageContent.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessageContent.java?rev=788864&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessageContent.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPMessageContent.java Fri Jun 26 20:43:11 2009
@@ -0,0 +1,58 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+
+package org.apache.hupa.common.data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class IMAPMessageContent implements Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7611536915564919521L;
+ private boolean isHTML;
+ private String text;
+ private List<IMAPMessageAttachment> aList = new ArrayList<IMAPMessageAttachment>();
+
+ public void setIsHTML(boolean isHTML) {
+ this.isHTML = isHTML;
+ }
+
+ public boolean isHTML() {
+ return isHTML;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setIMAPMessageAttachments(List<IMAPMessageAttachment> aList) {
+ this.aList = aList;
+ }
+
+ public List<IMAPMessageAttachment> getIMAPMessageAttachments() {
+ return aList;
+ }
+}
Added: labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPUser.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPUser.java?rev=788864&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPUser.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/common/data/IMAPUser.java Fri Jun 26 20:43:11 2009
@@ -0,0 +1,71 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+
+package org.apache.hupa.common.data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class IMAPUser implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -1650646176887124796L;
+ private String name;
+ private String password;
+ private Date loginDate;
+ private boolean auth;
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public Date getLoginDate() {
+ return loginDate;
+ }
+
+ public void setLoginDate(Date loginDate) {
+ this.loginDate = loginDate;
+ }
+
+ public void setAuthenticated(boolean auth) {
+ this.auth = auth;
+ }
+
+ public boolean getAuthenticated() {
+ return auth;
+ }
+
+ public String toString() {
+ return getName();
+ }
+}
Added: labs/hupa/src/main/java/org/apache/hupa/common/data/ResultList.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/common/data/ResultList.java?rev=788864&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/common/data/ResultList.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/common/data/ResultList.java Fri Jun 26 20:43:11 2009
@@ -0,0 +1,40 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+
+package org.apache.hupa.common.data;
+
+import java.util.ArrayList;
+
+public class ResultList<E> extends ArrayList<E> {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7698490725218285776L;
+ private int realSize;
+
+ public void setRealSize(int realSize) {
+ this.realSize = realSize;
+ }
+
+ public int getRealSize() {
+ return realSize;
+ }
+
+}
Added: labs/hupa/src/main/java/org/apache/hupa/common/data/Session.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/common/data/Session.java?rev=788864&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/common/data/Session.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/common/data/Session.java Fri Jun 26 20:43:11 2009
@@ -0,0 +1,56 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+package org.apache.hupa.common.data;
+
+import java.io.Serializable;
+
+public class Session implements Serializable{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -6517729329379946512L;
+ private IMAPUser user;
+ private IMAPFolder folder;
+ private IMAPMessage message;
+
+ public void setIMAPUser(IMAPUser user) {
+ this.user = user;
+ }
+
+ public IMAPUser getIMAPUser() {
+ return user;
+ }
+
+ public void setSelectedIMAPFolder(IMAPFolder folder) {
+ this.folder = folder;
+ }
+
+ public IMAPFolder getSelectedIMAPFolder() {
+ return folder;
+ }
+
+ public IMAPMessage getSelectedIMAPMessage() {
+ return message;
+ }
+
+ public void setSelectedIMAPMessage(IMAPMessage message) {
+ this.message = message;
+ }
+}
Added: labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java?rev=788864&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java Fri Jun 26 20:43:11 2009
@@ -0,0 +1,358 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+
+package org.apache.hupa.server;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import org.columba.ristretto.coder.Base64DecoderInputStream;
+import org.columba.ristretto.coder.QuotedPrintableDecoderInputStream;
+import org.columba.ristretto.coder.CharsetDecoderInputStream;
+import org.columba.ristretto.imap.IMAPException;
+import org.columba.ristretto.imap.IMAPFlags;
+import org.columba.ristretto.imap.IMAPProtocol;
+import org.columba.ristretto.imap.ListInfo;
+import org.columba.ristretto.imap.SequenceSet;
+import org.columba.ristretto.io.StreamUtils;
+import org.columba.ristretto.message.Header;
+import org.columba.ristretto.message.MailboxInfo;
+import org.columba.ristretto.message.MimeHeader;
+import org.columba.ristretto.message.MimePart;
+import org.columba.ristretto.message.MimeTree;
+import org.columba.ristretto.parser.DateParser;
+import org.columba.ristretto.parser.ParserException;
+
+import org.apache.hupa.client.services.IMAPService;
+import org.apache.hupa.client.services.IMAPServiceException;
+import org.apache.hupa.common.data.IMAPFolder;
+import org.apache.hupa.common.data.IMAPHeader;
+import org.apache.hupa.common.data.IMAPMessage;
+import org.apache.hupa.common.data.IMAPMessageContent;
+import org.apache.hupa.common.data.IMAPUser;
+import org.apache.hupa.common.data.ResultList;
+import org.apache.hupa.common.data.Session;
+import org.apache.hupa.common.data.IMAPMessage.IMAPFlag;
+import com.google.gwt.user.server.rpc.RemoteServiceServlet;
+
+import org.apache.commons.lang.StringEscapeUtils;
+
+public class IMAPServiceImpl extends RemoteServiceServlet implements
+ IMAPService {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -1853475303345399549L;
+
+ public Session login(String username, String password)
+ throws IMAPServiceException {
+
+ try {
+ IMAPUser user = new IMAPUser();
+ user.setName(username);
+ user.setPassword(password);
+ IMAPProtocol protocol = getProtocol(user);
+ protocol.openPort();
+ protocol.login(username, password.toCharArray());
+
+ if (protocol.getState() == IMAPProtocol.AUTHENTICATED) {
+ user.setLoginDate(new Date());
+ user.setAuthenticated(true);
+ Session session = new Session();
+ session.setIMAPUser(user);
+ return session;
+ }
+ } catch (IOException e) {
+ throw new IMAPServiceException(e.getMessage());
+ } catch (IMAPException e) {
+ throw new IMAPServiceException(e.getMessage());
+ }
+
+ return null;
+
+ }
+
+ private IMAPProtocol getProtocol(IMAPUser user) throws IOException,
+ IMAPException {
+ IMAPProtocol protocol = new IMAPProtocol("myblog.kicks-ass.org",
+ IMAPProtocol.DEFAULT_PORT);
+ protocol.openPort();
+ protocol.login(user.getName(), user.getPassword().toCharArray());
+
+ return protocol;
+
+ }
+
+ public ResultList<IMAPMessage> getMessages(Session session, int start, int end) throws IMAPServiceException {
+ ResultList<IMAPMessage> mList = new ResultList<IMAPMessage>();
+
+ IMAPProtocol proto = null;
+ try {
+ proto = getProtocol(session.getIMAPUser());
+ MailboxInfo mInfo = proto.select(session.getSelectedIMAPFolder().getFullName());
+
+ int exists = mInfo.getExists();
+ mList.setRealSize(exists);
+
+ if (exists == 0) {
+ return mList;
+ }
+
+ if (end > exists) {
+ end = 0;
+ }
+
+ SequenceSet sSet = new SequenceSet(exists - end, exists - start);
+ org.columba.ristretto.imap.IMAPHeader[] headers = proto
+ .fetchHeader(sSet);
+ IMAPFlags[] flags = proto.fetchFlags(sSet);
+ Integer[] uids = proto.fetchUid(sSet);
+ for (int i = 0; i < headers.length; i++) {
+ Header header = headers[i].getHeader();
+
+ IMAPHeader newHeader = new IMAPHeader();
+ newHeader.setRawHeader(header.toString());
+ newHeader.setFrom(header.get("From"));
+ newHeader.setTo(header.get("To"));
+ newHeader.setSubject(header.get("Subject"));
+ newHeader.setCc(header.get("CC"));
+ try {
+ newHeader.setReceivedDate(DateParser.parse(header
+ .get("Date")));
+ } catch (ParserException e) {
+ newHeader.setReceivedDate(new Date());
+ }
+
+ List<IMAPFlag> iFlags = new ArrayList<IMAPFlag>();
+ IMAPFlags imapFlags = flags[i];
+ if (imapFlags.getDeleted()) {
+ iFlags.add(IMAPMessage.IMAPFlag.DELETED);
+ }
+ if (imapFlags.getSeen()) {
+ iFlags.add(IMAPFlag.SEEN);
+ }
+ if (imapFlags.getRecent()) {
+ iFlags.add(IMAPFlag.RECENT);
+ }
+ IMAPMessage msg = new IMAPMessage();
+ msg.setIMAPHeader(newHeader);
+ msg.setUid(uids[i]);
+ msg.setIMAPFlags(iFlags);
+ mList.add(0, msg);
+ }
+ return mList;
+ } catch (IOException e) {
+ throw new IMAPServiceException(
+ "Error while fetching headers for user " + session.getIMAPUser().getName()
+ + ": " + e.getMessage());
+ } catch (IMAPException e) {
+ throw new IMAPServiceException(
+ "Error while fetching headers for user " + session.getIMAPUser().getName()
+ + ": " + e.getMessage());
+ } finally {
+ if (proto != null) {
+ try {
+ proto.close();
+ } catch (Exception e) {
+ // Ignore on close
+ }
+ }
+ }
+ }
+
+
+ public IMAPMessage exposeMessage(Session session) throws IMAPServiceException {
+ IMAPMessage msg = session.getSelectedIMAPMessage();
+ if (msg.isExposed()) {
+ return msg;
+ }
+ IMAPProtocol proto = null;
+ try {
+ proto = getProtocol(session.getIMAPUser());
+ proto.select(session.getSelectedIMAPFolder().getName());
+
+ IMAPMessageContent content = new IMAPMessageContent();
+
+ MimeTree mTree = proto.uidFetchBodystructure(msg.getUid());
+
+ MimePart textPart = mTree.getFirstTextPart("plain");
+
+ if (textPart != null) {
+ InputStream body = proto.uidFetchBody(msg.getUid(), textPart
+ .getAddress());
+ MimeHeader textHeader = textPart.getHeader();
+
+ if (textHeader.getContentTransferEncoding() == MimeHeader.QUOTED_PRINTABLE) {
+ body = new QuotedPrintableDecoderInputStream(body);
+ } else if (textHeader.getContentTransferEncoding() == MimeHeader.BASE64) {
+ body = new Base64DecoderInputStream(body);
+ }
+
+ String charsetName = textHeader.getContentParameter("charset");
+ if (charsetName == null) {
+ charsetName = System.getProperty("file.encoding");
+ }
+
+ body = new CharsetDecoderInputStream(body, Charset
+ .forName(charsetName));
+
+ if (textHeader.getContentType().equalsIgnoreCase("plain/text")) {
+ String plainContent = StreamUtils.readInString(body)
+ .toString();
+ content.setText(StringEscapeUtils.escapeHtml(plainContent)
+ .replaceAll("\n", "<br>"));
+ } else {
+ String plainContent = StreamUtils.readInString(body)
+ .toString();
+ content.setText(StringEscapeUtils.escapeHtml(plainContent)
+ .replaceAll("\n", "<br>"));
+ }
+ }
+
+ if (mTree.count() > 1 || textPart == null) {
+ System.out.println("message has attachments");
+ System.out.println("---");
+ }
+
+ msg.setIMAPMessageContent(content);
+
+ return msg;
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new IMAPServiceException("Unable to expose msg for uid "
+ + msg.getUid());
+ } catch (IMAPException e) {
+ e.printStackTrace();
+ throw new IMAPServiceException("Unable to expose msg for uid "
+ + msg.getUid());
+
+ } finally {
+ if (proto != null) {
+ try {
+ proto.close();
+ } catch (Exception e) {
+ // Ignore on close
+ }
+ }
+ }
+ }
+
+
+ public List<IMAPFolder> getFolders(Session session)
+ throws IMAPServiceException {
+ List<IMAPFolder> fList = new ArrayList<IMAPFolder>();
+ IMAPProtocol protocol = null;
+ try {
+ protocol = getProtocol(session.getIMAPUser());
+ ListInfo[] infos = protocol.list("", "*");
+ for (int i = 0; i < infos.length; i++) {
+ ListInfo info = infos[i];
+ String fullName = info.getName();
+ String delimiter = info.getDelimiter();
+ // MailboxInfo mInfo= protocol.select(info.getName());
+
+ IMAPFolder iFolder = new IMAPFolder(info.getName());
+ iFolder.setDelimiter(delimiter);
+ // iFolder.setMessageCount(mInfo.getExists());
+ // iFolder.setUnseenMessageCount(mInfo.);
+
+ int index = fullName.lastIndexOf(delimiter);
+ if (index > -1) {
+ String parentFullName = fullName.substring(0, index);
+ handleIMAPFolderTree(fList, iFolder, parentFullName);
+ } else {
+ fList.add(iFolder);
+ }
+ }
+ return fList;
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new IMAPServiceException("Unable to get folders for User "
+ + session.getIMAPUser());
+ } catch (IMAPException e) {
+ e.printStackTrace();
+ throw new IMAPServiceException("Unable to get folders for User "
+ + session.getIMAPUser());
+ } finally {
+ if (protocol != null) {
+ try {
+ protocol.close();
+ } catch (Exception e) {
+ // Ignore on close
+ }
+ }
+ }
+ }
+
+ private void handleIMAPFolderTree(List<IMAPFolder> fList,
+ IMAPFolder iFolder, String parentFullName) {
+ for (int a = 0; a < fList.size(); a++) {
+ IMAPFolder tmpFolder = fList.get(a);
+ if (tmpFolder.getFullName().equals(parentFullName)) {
+ tmpFolder.getChildIMAPFolders().add(iFolder);
+ } else {
+ List<IMAPFolder> childFolders = tmpFolder.getChildIMAPFolders();
+ if (childFolders != null && childFolders.isEmpty() == false) {
+ handleIMAPFolderTree(childFolders, iFolder, parentFullName);
+ }
+ }
+ }
+ }
+
+ public void addFolder(Session session, IMAPFolder folder)
+ throws IMAPServiceException {
+ try {
+ IMAPProtocol protocol = getProtocol(session.getIMAPUser());
+ protocol.create(folder.getFullName());
+ protocol.subscribe(folder.getFullName());
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new IMAPServiceException("Error while removing folder "
+ + folder + " for user " + session.getIMAPUser() + ": " + e.toString());
+ } catch (IMAPException e) {
+ e.printStackTrace();
+ throw new IMAPServiceException("Error while removing folder "
+ + folder + " for user " + session.getIMAPUser() + ": " + e.toString());
+
+ }
+ }
+
+ public void removeFolder(Session session, IMAPFolder folder)
+ throws IMAPServiceException {
+ try {
+ IMAPProtocol protocol = getProtocol(session.getIMAPUser());
+ protocol.unsubscribe(folder.getFullName());
+ protocol.delete(folder.getFullName());
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new IMAPServiceException("Error while removing folder "
+ + folder + " for user " + session.getIMAPUser() + ": " + e.toString());
+ } catch (IMAPException e) {
+ e.printStackTrace();
+ throw new IMAPServiceException("Error while removing folder "
+ + folder + " for user " + session.getIMAPUser() + ": " + e.toString());
+
+ }
+ }
+
+}
Added: labs/hupa/war/Hupa.css
URL: http://svn.apache.org/viewvc/labs/hupa/war/Hupa.css?rev=788864&view=auto
==============================================================================
--- labs/hupa/war/Hupa.css (added)
+++ labs/hupa/war/Hupa.css Fri Jun 26 20:43:11 2009
@@ -0,0 +1,77 @@
+/** Add css rules here for your application. */
+
+
+/** Example rules used by the template application (remove for your app) */
+
+h1 {
+ font-size: 2em;
+ font-weight: bold;
+ color: #777777;
+ margin: 40px 0px 70px;
+ text-align: center;
+}
+
+
+.cbg-RP {
+ background-color: #E6E6FA;
+}
+
+.hupa-LoginWidgetHeader {
+ border-top: 1pt solid grey;
+ border-bottom: 1pt solid grey;
+ text-align: left;
+ padding-left: 5px;
+ background-color: #E6E6FA;
+}
+
+.hupa-IMAPMessageWidget-Header {
+ border: 1pt solid grey;
+ text-align: left;
+ background-color: #E6E6FA;
+}
+
+.hupa-IMAPMessageWidget-ButtonBar {
+ border-bottom: 1pt solid grey;
+ padding-left: 5px;
+ padding-bottom: 5px;
+}
+
+.hupa-Northpanel {
+ border-top: 1pt solid grey;
+ border-bottom: 1pt solid grey;
+
+ background-color: #E6E6FA;
+}
+
+.hupa-Mailtable-Header {
+ background-color: #E6E6FA;
+ text-align: center;
+}
+
+.hupa-Mailtable-row-notseen {
+ font-weight: bold;
+}
+
+.hupa-Mailtable-row-selected {
+ background-color: #F0E68C;
+ text-align: left;
+ vertical-align: top;
+ margin: 0px 5px 0px 5px;
+ font-size: 80%;
+}
+.hupa-Mailtable-row1 {
+ background-color: #FFFFFF;
+ text-align: left;
+ vertical-align: top;
+ margin: 0px 5px 0px 5px;
+ font-size: 80%;
+
+}
+
+.hupa-Mailtable-row2 {
+ background-color: #F5F5F5;
+ text-align: left;
+ vertical-align: top;
+ margin: 0px 5px 0px 5px;
+ font-size: 80%;
+}
Added: labs/hupa/war/Hupa.html
URL: http://svn.apache.org/viewvc/labs/hupa/war/Hupa.html?rev=788864&view=auto
==============================================================================
--- labs/hupa/war/Hupa.html (added)
+++ labs/hupa/war/Hupa.html Fri Jun 26 20:43:11 2009
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!-- The HTML 4.01 Transitional DOCTYPE declaration-->
+<!-- above set at the top of the file will set -->
+<!-- the browser's rendering engine into -->
+<!-- "Quirks Mode". Replacing this declaration -->
+<!-- with a "Standards Mode" doctype is supported, -->
+<!-- but may lead to some differences in layout. -->
+
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+
+ <!-- -->
+ <!-- Consider inlining CSS to reduce the number of requested files -->
+ <!-- -->
+ <link type="text/css" rel="stylesheet" href="Hupa.css">
+
+ <!-- -->
+ <!-- Any title is fine -->
+ <!-- -->
+ <title>GWTMail</title>
+
+ <!-- -->
+ <!-- This script loads your compiled module. -->
+ <!-- If you add any GWT meta tags, they must -->
+ <!-- be added before this line. -->
+ <!-- -->
+ <script type="text/javascript" language="javascript" src="hupa/hupa.nocache.js"></script>
+ </head>
+
+ <!-- -->
+ <!-- The body can have arbitrary html, or -->
+ <!-- you can leave the body empty if you want -->
+ <!-- to create a completely dynamic UI. -->
+ <!-- -->
+ <body>
+
+ <!-- OPTIONAL: include this if you want history support -->
+ <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
+ </body>
+</html>
Added: labs/hupa/war/WEB-INF/lib/gwt-servlet.jar
URL: http://svn.apache.org/viewvc/labs/hupa/war/WEB-INF/lib/gwt-servlet.jar?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/WEB-INF/lib/gwt-servlet.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/labs/hupa/war/WEB-INF/web.xml?rev=788864&view=auto
==============================================================================
--- labs/hupa/war/WEB-INF/web.xml (added)
+++ labs/hupa/war/WEB-INF/web.xml Fri Jun 26 20:43:11 2009
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE web-app
+ PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+
+ <!-- Default page to serve -->
+ <welcome-file-list>
+ <welcome-file>Hupa.html</welcome-file>
+ </welcome-file-list>
+
+ <!-- Servlets -->
+ <servlet>
+ <servlet-name>imapServlet</servlet-name>
+ <servlet-class>org.apache.hupa.server.IMAPServiceImpl</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>imapServlet</servlet-name>
+ <url-pattern>/hupa/imap</url-pattern>
+ </servlet-mapping>
+
+
+</web-app>
Added: labs/hupa/war/hupa/3B185B9ADE10EE20F5A5913D7AAD27A0.gwt.rpc
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/3B185B9ADE10EE20F5A5913D7AAD27A0.gwt.rpc?rev=788864&view=auto
==============================================================================
--- labs/hupa/war/hupa/3B185B9ADE10EE20F5A5913D7AAD27A0.gwt.rpc (added)
+++ labs/hupa/war/hupa/3B185B9ADE10EE20F5A5913D7AAD27A0.gwt.rpc Fri Jun 26 20:43:11 2009
@@ -0,0 +1,28 @@
+com.google.gwt.i18n.client.impl.DateRecord, true
+com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException, true
+java.lang.Exception, false
+java.lang.RuntimeException, false
+java.lang.String, true
+java.lang.Throwable, false
+java.sql.Date, true
+java.sql.Time, true
+java.sql.Timestamp, true
+java.util.ArrayList, true
+java.util.Arrays$ArrayList, true
+java.util.Date, true
+java.util.LinkedList, true
+java.util.Stack, true
+java.util.Vector, true
+org.apache.hupa.client.services.IMAPServiceException, true
+org.apache.hupa.common.data.IMAPFolder, true
+[Lorg.apache.hupa.common.data.IMAPFolder;, true
+org.apache.hupa.common.data.IMAPHeader, true
+org.apache.hupa.common.data.IMAPMessage, true
+org.apache.hupa.common.data.IMAPMessage$IMAPFlag, true
+[Lorg.apache.hupa.common.data.IMAPMessage$IMAPFlag;, true
+org.apache.hupa.common.data.IMAPMessageAttachment, true
+[Lorg.apache.hupa.common.data.IMAPMessageAttachment;, true
+org.apache.hupa.common.data.IMAPMessageContent, true
+org.apache.hupa.common.data.IMAPUser, true
+org.apache.hupa.common.data.ResultList, true
+org.apache.hupa.common.data.Session, true
Added: labs/hupa/war/hupa/7060248520A1B3E97C76CABA13154B94.gwt.rpc
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/7060248520A1B3E97C76CABA13154B94.gwt.rpc?rev=788864&view=auto
==============================================================================
--- labs/hupa/war/hupa/7060248520A1B3E97C76CABA13154B94.gwt.rpc (added)
+++ labs/hupa/war/hupa/7060248520A1B3E97C76CABA13154B94.gwt.rpc Fri Jun 26 20:43:11 2009
@@ -0,0 +1,27 @@
+com.google.gwt.i18n.client.impl.DateRecord, true
+com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException, true
+java.lang.Exception, false
+java.lang.RuntimeException, false
+java.lang.String, true
+java.lang.Throwable, false
+java.sql.Date, true
+java.sql.Time, true
+java.sql.Timestamp, true
+java.util.ArrayList, true
+java.util.Arrays$ArrayList, true
+java.util.Date, true
+java.util.LinkedList, true
+java.util.Stack, true
+java.util.Vector, true
+org.apache.hupa.client.services.IMAPServiceException, true
+org.apache.hupa.common.data.IMAPFolder, true
+[Lorg.apache.hupa.common.data.IMAPFolder;, true
+org.apache.hupa.common.data.IMAPHeader, true
+org.apache.hupa.common.data.IMAPMessage, true
+org.apache.hupa.common.data.IMAPMessage$IMAPFlag, true
+[Lorg.apache.hupa.common.data.IMAPMessage$IMAPFlag;, true
+org.apache.hupa.common.data.IMAPMessageAttachment, true
+[Lorg.apache.hupa.common.data.IMAPMessageAttachment;, true
+org.apache.hupa.common.data.IMAPMessageContent, true
+org.apache.hupa.common.data.IMAPUser, true
+org.apache.hupa.common.data.ResultList, true
Added: labs/hupa/war/hupa/E559B6073B872D90039FC7E6F45571E6.cache.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/E559B6073B872D90039FC7E6F45571E6.cache.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/E559B6073B872D90039FC7E6F45571E6.cache.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/cbg-star.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/cbg-star.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/cbg-star.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/cbg-stardeselected.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/cbg-stardeselected.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/cbg-stardeselected.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/cbg-starhover.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/cbg-starhover.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/cbg-starhover.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/cbg_button.css
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/cbg_button.css?rev=788864&view=auto
==============================================================================
--- labs/hupa/war/hupa/cbg_button.css (added)
+++ labs/hupa/war/hupa/cbg_button.css Fri Jun 26 20:43:11 2009
@@ -0,0 +1,78 @@
+/* Button Style */
+
+/* specific for Opera */
+.cbg-ButtonContent::selection {
+ background-color:transparent;
+}
+
+.cbg-Button {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 70%; /*relative to inherit 16px font-size*/
+}
+
+.cbg-Button .cbg-ButtonOuter {
+ border-color: #bcbcbc;
+}
+
+.cbg-Button .cbg-ButtonInner {
+ background-color: #e2e2e2;
+ border-color: #bcbcbc;
+}
+
+.cbg-Button .cbg-ButtonTop {
+ background-color: #f9f9f9;
+ border-bottom-color: #ededed;
+ border-bottom-width: 0.2em;
+ height: 0.9em;
+}
+
+.cbg-Button .cbg-ButtonContent {
+ color: black;
+ line-height: 1.8em;
+ padding: 0 8px;
+}
+
+.cbg-Button-active .cbg-ButtonInner {
+ background-color: #f9f9f9;
+}
+
+.cbg-Button-active .cbg-ButtonTop {
+ background-color: #e2e2e2;
+}
+
+.cbg-Button-disabled .cbg-ButtonContent {
+ color: #878787;
+}
+
+.cbg-Button-hover .cbg-ButtonOuter {
+ border-color: #939393;
+}
+
+.cbg-Button-hover .cbg-ButtonInner {
+ border-color: #939393;
+}
+
+.cbg-Button-focus .cbg-ButtonOuter {
+ border-color: #444444;
+}
+
+.cbg-Button-focus .cbg-ButtonInner {
+ border-color: #444444;
+}
+
+/* ButtonBar specific style */
+.cbg-ButtonBar .cbg-BCLeft .cbg-ButtonInner {
+ border-left-color: white;
+}
+
+.cbg-ButtonBar .cbg-Button-hover .cbg-ButtonInner {
+ border-color: #939393;
+}
+
+.cbg-ButtonBar .cbg-Button-focus .cbg-ButtonInner {
+ border-color: #444444;
+}
+
+.cbg-ButtonBar .cbg-BCRight .cbg-ButtonInner {
+ border-right-color: #bcbcbc;
+}
Added: labs/hupa/war/hupa/clear.cache.gif
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/clear.cache.gif?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/clear.cache.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/corner.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/corner.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/corner.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/corner_ie6.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/corner_ie6.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/corner_ie6.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/hborder.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/hborder.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/hborder.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/hborder_ie6.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/hborder_ie6.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/hborder_ie6.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/ie6/corner_dialog_topleft.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/ie6/corner_dialog_topleft.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/ie6/corner_dialog_topleft.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/ie6/corner_dialog_topright.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/ie6/corner_dialog_topright.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/ie6/corner_dialog_topright.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/ie6/hborder_blue_shadow.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/ie6/hborder_blue_shadow.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/ie6/hborder_blue_shadow.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/ie6/hborder_gray_shadow.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/ie6/hborder_gray_shadow.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/ie6/hborder_gray_shadow.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/ie6/vborder_blue_shadow.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/ie6/vborder_blue_shadow.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/ie6/vborder_blue_shadow.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/ie6/vborder_gray_shadow.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/ie6/vborder_gray_shadow.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/ie6/vborder_gray_shadow.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/vborder.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/vborder.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/vborder.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/images/vborder_ie6.png
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/images/vborder_ie6.png?rev=788864&view=auto
==============================================================================
Binary file - no diff available.
Propchange: labs/hupa/war/hupa/gwt/standard/images/vborder_ie6.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: labs/hupa/war/hupa/gwt/standard/standard.css
URL: http://svn.apache.org/viewvc/labs/hupa/war/hupa/gwt/standard/standard.css?rev=788864&view=auto
==============================================================================
--- labs/hupa/war/hupa/gwt/standard/standard.css (added)
+++ labs/hupa/war/hupa/gwt/standard/standard.css Fri Jun 26 20:43:11 2009
@@ -0,0 +1,1076 @@
+/**
+ * The file contains styles for GWT widgets in the standard theme.
+ *
+ * In order to maintain cross-browser compatibility, the following syntax is
+ * used to create IE6 specific style rules:
+ * .gwt-Widget {
+ * property: rule applies to all browsers
+ * -property: rule applies only to IE6 (overrides previous rule)
+ * }
+ * * html .gwt-Widget {
+ * property: rule applies to all versions of IE
+ * }
+ */
+
+body, table td, select {
+ font-family: Arial Unicode MS, Arial, sans-serif;
+ font-size: small;
+}
+pre {
+ font-family: "courier new", courier;
+ font-size: small;
+}
+body {
+ color: black;
+ margin: 0px;
+ border: 0px;
+ padding: 0px;
+ background: #fff;
+ direction: ltr;
+}
+a, a:visited, a:hover {
+ color: #0000AA;
+}
+
+/**
+ * The reference theme can be used to determine when this style sheet has
+ * loaded. Create a hidden div element with absolute position, assign the style
+ * name below, and attach it to the DOM. Use a timer to detect when the
+ * element's height and width are set to 5px.
+ */
+.gwt-Reference-standard {
+ height: 5px;
+ width: 5px;
+ zoom: 1;
+}
+
+.gwt-Button {
+ margin: 0;
+ padding: 3px 5px;
+ text-decoration: none;
+ font-size: small;
+ cursor: pointer;
+ cursor: hand;
+ background: url("images/hborder.png") repeat-x 0px -27px;
+ border: 1px outset #ccc;
+}
+.gwt-Button:active {
+ border: 1px inset #ccc;
+}
+.gwt-Button:hover {
+ border-color: #9cf #69e #69e #7af;
+}
+.gwt-Button[disabled] {
+ cursor: default;
+ color: #888;
+}
+.gwt-Button[disabled]:hover {
+ border: 1px outset #ccc;
+}
+
+.gwt-CheckBox {
+}
+.gwt-CheckBox-disabled {
+ color: #888;
+}
+
+.gwt-DecoratorPanel {
+}
+.gwt-DecoratorPanel .topCenter,
+.gwt-DecoratorPanel .bottomCenter {
+ background: url(images/hborder.png) repeat-x;
+}
+.gwt-DecoratorPanel .middleLeft,
+.gwt-DecoratorPanel .middleRight {
+ background: url(images/vborder.png) repeat-y;
+}
+.gwt-DecoratorPanel .topLeftInner,
+.gwt-DecoratorPanel .topRightInner,
+.gwt-DecoratorPanel .bottomLeftInner,
+.gwt-DecoratorPanel .bottomRightInner {
+ width: 5px;
+ height: 5px;
+ zoom: 1;
+}
+.gwt-DecoratorPanel .topLeft {
+ background: url(images/corner.png) no-repeat 0px 0px;
+ -background: url(images/corner_ie6.png) no-repeat 0px 0px;
+}
+.gwt-DecoratorPanel .topRight {
+ background: url(images/corner.png) no-repeat -5px 0px;
+ -background: url(images/corner_ie6.png) no-repeat -5px 0px;
+}
+.gwt-DecoratorPanel .bottomLeft {
+ background: url(images/corner.png) no-repeat 0px -5px;
+ -background: url(images/corner_ie6.png) no-repeat 0px -5px;
+}
+.gwt-DecoratorPanel .bottomRight {
+ background: url(images/corner.png) no-repeat -5px -5px;
+ -background: url(images/corner_ie6.png) no-repeat -5px -5px;
+}
+* html .gwt-DecoratorPanel .topLeftInner,
+* html .gwt-DecoratorPanel .topRightInner,
+* html .gwt-DecoratorPanel .bottomLeftInner,
+* html .gwt-DecoratorPanel .bottomRightInner {
+ width: 5px;
+ height: 5px;
+ overflow: hidden;
+}
+
+.gwt-DialogBox .Caption {
+ background: #e3e8f3 url(images/hborder.png) repeat-x 0px -2003px;
+ padding: 4px 4px 4px 8px;
+ cursor: default;
+ border-bottom: 1px solid #bbbbbb;
+ border-top: 5px solid #d0e4f6;
+}
+.gwt-DialogBox .dialogContent {
+}
+.gwt-DialogBox .dialogMiddleCenter {
+ padding: 3px;
+ background: white;
+}
+.gwt-DialogBox .dialogBottomCenter {
+ background: url(images/hborder.png) repeat-x 0px -4px;
+ -background: url(images/hborder_ie6.png) repeat-x 0px -4px;
+}
+.gwt-DialogBox .dialogMiddleLeft {
+ background: url(images/vborder.png) repeat-y;
+}
+.gwt-DialogBox .dialogMiddleRight {
+ background: url(images/vborder.png) repeat-y -4px 0px;
+ -background: url(images/vborder_ie6.png) repeat-y -4px 0px;
+}
+.gwt-DialogBox .dialogTopLeftInner {
+ width: 5px;
+ zoom: 1;
+}
+.gwt-DialogBox .dialogTopRightInner {
+ width: 8px;
+ zoom: 1;
+}
+.gwt-DialogBox .dialogBottomLeftInner {
+ width: 5px;
+ height: 8px;
+ zoom: 1;
+}
+.gwt-DialogBox .dialogBottomRightInner {
+ width: 5px;
+ height: 8px;
+ zoom: 1;
+}
+.gwt-DialogBox .dialogTopLeft {
+ background: url(images/corner.png) no-repeat -13px 0px;
+ -background: url(images/corner_ie6.png) no-repeat -13px 0px;
+}
+.gwt-DialogBox .dialogTopRight {
+ background: url(images/corner.png) no-repeat -18px 0px;
+ -background: url(images/corner_ie6.png) no-repeat -18px 0px;
+}
+.gwt-DialogBox .dialogBottomLeft {
+ background: url(images/corner.png) no-repeat 0px -15px;
+ -background: url(images/corner_ie6.png) no-repeat 0px -15px;
+}
+.gwt-DialogBox .dialogBottomRight {
+ background: url(images/corner.png) no-repeat -5px -15px;
+ -background: url(images/corner_ie6.png) no-repeat -5px -15px;
+}
+* html .gwt-DialogBox .dialogTopLeftInner {
+ width: 5px;
+ overflow: hidden;
+}
+* html .gwt-DialogBox .dialogTopRightInner {
+ width: 8px;
+ overflow: hidden;
+}
+* html .gwt-DialogBox .dialogBottomLeftInner {
+ width: 5px;
+ height: 8px;
+ overflow: hidden;
+}
+* html .gwt-DialogBox .dialogBottomRightInner {
+ width: 8px;
+ height: 8px;
+ overflow: hidden;
+}
+
+.gwt-DisclosurePanel {
+}
+.gwt-DisclosurePanel-open {
+}
+.gwt-DisclosurePanel-closed {
+}
+.gwt-DisclosurePanel .header,
+.gwt-DisclosurePanel .header a,
+.gwt-DisclosurePanel .header td {
+ text-decoration: none; /* Remove underline from header */
+ color: black;
+ cursor: pointer;
+ cursor: hand;
+}
+.gwt-DisclosurePanel .content {
+ border-left: 3px solid #e8eef7;
+ padding: 4px 0px 4px 8px;
+ margin-left: 6px;
+}
+
+.gwt-FileUpload {
+}
+
+.gwt-Frame {
+ border-top: 2px solid #666;
+ border-left: 2px solid #666;
+ border-right: 2px solid #bbb;
+ border-bottom: 2px solid #bbb;
+}
+
+.gwt-HorizontalSplitPanel {
+}
+.gwt-HorizontalSplitPanel .hsplitter {
+ cursor: move;
+ border: 0px;
+ background: #91c0ef url(images/vborder.png) repeat-y;
+}
+.gwt-VerticalSplitPanel {
+}
+.gwt-VerticalSplitPanel .vsplitter {
+ cursor: move;
+ border: 0px;
+ background: #91c0ef url(images/hborder.png) repeat-x;
+}
+
+.gwt-HTML {
+}
+
+.gwt-Hyperlink {
+}
+
+.gwt-Image {
+}
+
+.gwt-Label {
+}
+
+.gwt-ListBox {
+}
+
+.gwt-MenuBar {
+ cursor: default;
+}
+.gwt-MenuBar .gwt-MenuItem {
+ cursor: default;
+}
+.gwt-MenuBar .gwt-MenuItem-selected {
+ background: #E0EDFE;
+}
+.gwt-MenuBar-horizontal {
+ background: #e3e8f3 url(images/hborder.png) repeat-x 0px -2003px;
+ border: 1px solid #BBBBBB;
+}
+.gwt-MenuBar-horizontal .gwt-MenuItem {
+ padding: 0px 10px;
+ vertical-align: bottom;
+ color: #666666;
+ font-weight: bold;
+}
+.gwt-MenuBar-horizontal .gwt-MenuItemSeparator {
+ width: 1px;
+ padding: 0px;
+ margin: 0px;
+ border: 0px;
+ border-left: 1px solid #888888;
+ background: white;
+}
+.gwt-MenuBar-horizontal .gwt-MenuItemSeparator .menuSeparatorInner {
+ width: 1px;
+ height: 1px;
+ background: white;
+}
+.gwt-MenuBar-vertical {
+ margin-top: 0px;
+ margin-left: 0px;
+ background: white;
+}
+.gwt-MenuBar-vertical table {
+ border-collapse: collapse;
+}
+.gwt-MenuBar-vertical .gwt-MenuItem {
+ padding: 4px 14px 4px 1px;
+}
+.gwt-MenuBar-vertical .gwt-MenuItemSeparator {
+ padding: 2px 0px;
+}
+.gwt-MenuBar-vertical .gwt-MenuItemSeparator .menuSeparatorInner {
+ height: 1px;
+ padding: 0px;
+ border: 0px;
+ border-top: 1px solid #777777;
+ background: #ddddee;
+ overflow: hidden;
+}
+.gwt-MenuBar-vertical .subMenuIcon {
+ padding-right: 4px;
+}
+.gwt-MenuBar-vertical .subMenuIcon-selected {
+ background: #E0EDFE;
+}
+.gwt-MenuBarPopup {
+ margin: 0px 0px 0px 3px;
+}
+.gwt-MenuBarPopup .menuPopupTopCenter {
+ background: url(images/hborder.png) 0px -12px repeat-x;
+}
+.gwt-MenuBarPopup .menuPopupBottomCenter {
+ background: url(images/hborder.png) 0px -13px repeat-x;
+ -background: url(images/hborder_ie6.png) 0px -13px repeat-x;
+}
+.gwt-MenuBarPopup .menuPopupMiddleLeft {
+ background: url(images/vborder.png) -12px 0px repeat-y;
+ -background: url(images/vborder_ie6.png) -12px 0px repeat-y;
+}
+.gwt-MenuBarPopup .menuPopupMiddleRight {
+ background: url(images/vborder.png) -13px 0px repeat-y;
+ -background: url(images/vborder_ie6.png) -13px 0px repeat-y;
+}
+.gwt-MenuBarPopup .menuPopupTopLeftInner {
+ width: 5px;
+ height: 5px;
+ zoom: 1;
+}
+.gwt-MenuBarPopup .menuPopupTopRightInner {
+ width: 8px;
+ height: 5px;
+ zoom: 1;
+}
+.gwt-MenuBarPopup .menuPopupBottomLeftInner {
+ width: 5px;
+ height: 8px;
+ zoom: 1;
+}
+.gwt-MenuBarPopup .menuPopupBottomRightInner {
+ width: 8px;
+ height: 8px;
+ zoom: 1;
+}
+.gwt-MenuBarPopup .menuPopupTopLeft {
+ background: url(images/corner.png) no-repeat 0px -36px;
+ -background: url(images/corner_ie6.png) no-repeat 0px -36px;
+}
+.gwt-MenuBarPopup .menuPopupTopRight {
+ background: url(images/corner.png) no-repeat -5px -36px;
+ -background: url(images/corner_ie6.png) no-repeat -5px -36px;
+}
+.gwt-MenuBarPopup .menuPopupBottomLeft {
+ background: url(images/corner.png) no-repeat 0px -41px;
+ -background: url(images/corner_ie6.png) no-repeat 0px -41px;
+}
+.gwt-MenuBarPopup .menuPopupBottomRight {
+ background: url(images/corner.png) no-repeat -5px -41px;
+ -background: url(images/corner_ie6.png) no-repeat -5px -41px;
+}
+* html .gwt-MenuBarPopup .menuPopupTopLeftInner {
+ width: 5px;
+ height: 5px;
+ overflow: hidden;
+}
+* html .gwt-MenuBarPopup .menuPopupTopRightInner {
+ width: 8px;
+ height: 5px;
+ overflow: hidden;
+}
+* html .gwt-MenuBarPopup .menuPopupBottomLeftInner {
+ width: 5px;
+ height: 8px;
+ overflow: hidden;
+}
+* html .gwt-MenuBarPopup .menuPopupBottomRightInner {
+ width: 8px;
+ height: 8px;
+ overflow: hidden;
+}
+
+.gwt-PasswordTextBox {
+ padding: 2px;
+}
+.gwt-PasswordTextBox-readonly {
+ color: #888;
+}
+
+.gwt-PopupPanel {
+ border: 3px solid #C3D9FF;
+ padding: 3px;
+ background: white;
+}
+
+.gwt-DecoratedPopupPanel .popupContent {
+}
+.gwt-DecoratedPopupPanel .popupMiddleCenter {
+ padding: 3px;
+ background: #d0e4f6;
+}
+.gwt-DecoratedPopupPanel .popupTopCenter {
+ background: url(images/hborder.png) repeat-x;
+}
+.gwt-DecoratedPopupPanel .popupBottomCenter {
+ background: url(images/hborder.png) repeat-x 0px -4px;
+ -background: url(images/hborder_ie6.png) repeat-x 0px -4px;
+}
+.gwt-DecoratedPopupPanel .popupMiddleLeft {
+ background: url(images/vborder.png) repeat-y;
+}
+.gwt-DecoratedPopupPanel .popupMiddleRight {
+ background: url(images/vborder.png) repeat-y -4px 0px;
+ -background: url(images/vborder_ie6.png) repeat-y -4px 0px;
+}
+.gwt-DecoratedPopupPanel .popupTopLeftInner {
+ width: 5px;
+ height: 5px;
+ zoom: 1;
+}
+.gwt-DecoratedPopupPanel .popupTopRightInner {
+ width: 8px;
+ height: 5px;
+ zoom: 1;
+}
+.gwt-DecoratedPopupPanel .popupBottomLeftInner {
+ width: 5px;
+ height: 8px;
+ zoom: 1;
+}
+.gwt-DecoratedPopupPanel .popupBottomRightInner {
+ width: 8px;
+ height: 8px;
+ zoom: 1;
+}
+.gwt-DecoratedPopupPanel .popupTopLeft {
+ background: url(images/corner.png) no-repeat 0px -10px;
+ -background: url(images/corner_ie6.png) no-repeat 0px -10px;
+}
+.gwt-DecoratedPopupPanel .popupTopRight {
+ background: url(images/corner.png) no-repeat -5px -10px;
+ -background: url(images/corner_ie6.png) no-repeat -5px -10px;
+}
+.gwt-DecoratedPopupPanel .popupBottomLeft {
+ background: url(images/corner.png) no-repeat 0px -15px;
+ -background: url(images/corner_ie6.png) no-repeat 0px -15px;
+}
+.gwt-DecoratedPopupPanel .popupBottomRight {
+ background: url(images/corner.png) no-repeat -5px -15px;
+ -background: url(images/corner_ie6.png) no-repeat -5px -15px;
+}
+* html .gwt-DecoratedPopupPanel .popupTopLeftInner {
+ width: 5px;
+ height: 5px;
+ overflow: hidden;
+}
+* html .gwt-DecoratedPopupPanel .popupTopRightInner {
+ width: 8px;
+ height: 5px;
+ overflow: hidden;
+}
+* html .gwt-DecoratedPopupPanel .popupBottomLeftInner {
+ width: 5px;
+ height: 8px;
+ overflow: hidden;
+}
+* html .gwt-DecoratedPopupPanel .popupBottomRightInner {
+ width: 8px;
+ height: 8px;
+ overflow: hidden;
+}
+
+.gwt-PushButton-up,
+.gwt-PushButton-up-hovering,
+.gwt-PushButton-up-disabled,
+.gwt-PushButton-down,
+.gwt-PushButton-down-hovering,
+.gwt-PushButton-down-disabled {
+ margin: 0;
+ text-decoration: none;
+ background: url("images/hborder.png") repeat-x 0px -27px;
+}
+.gwt-PushButton-up,
+.gwt-PushButton-up-hovering,
+.gwt-PushButton-up-disabled {
+ padding: 3px 5px 3px 5px;
+}
+.gwt-PushButton-up {
+ border: 1px outset #ccc;
+ cursor: pointer;
+ cursor: hand;
+}
+.gwt-PushButton-up-hovering {
+ border: 1px outset;
+ border-color: #9cf #69e #69e #7af;
+ cursor: pointer;
+ cursor: hand;
+}
+.gwt-PushButton-up-disabled {
+ border: 1px outset #ccc;
+ cursor: default;
+ opacity: .5;
+ filter: alpha(opacity=40);
+ zoom: 1;
+}
+.gwt-PushButton-down,
+.gwt-PushButton-down-hovering,
+.gwt-PushButton-down-disabled {
+ padding: 4px 4px 2px 6px;
+}
+.gwt-PushButton-down {
+ border: 1px inset #666;
+ cursor: pointer;
+ cursor: hand;
+}
+.gwt-PushButton-down-hovering {
+ border: 1px inset;
+ border-color: #9cf #69e #69e #7af;
+ cursor: pointer;
+ cursor: hand;
+}
+.gwt-PushButton-down-disabled {
+ border: 1px outset #ccc;
+ cursor: default;
+ opacity: 0.5;
+ filter: alpha(opacity=40);
+ zoom: 1;
+}
+
+.gwt-RadioButton {
+}
+.gwt-RadioButton-disabled {
+ color: #888;
+}
+
+.gwt-RichTextArea {
+}
+.hasRichTextToolbar {
+ border: 0px;
+}
+.gwt-RichTextToolbar {
+ background: #e3e8f3 url(images/hborder.png) repeat-x 0px -2003px;
+ border-bottom: 1px solid #BBBBBB;
+ padding: 3px;
+ margin: 0px;
+}
+.gwt-RichTextToolbar .gwt-PushButton-up {
+ padding: 0px 1px 0px 0px;
+ margin-right: 4px;
+ margin-bottom: 4px;
+ border-width: 1px;
+}
+.gwt-RichTextToolbar .gwt-PushButton-up-hovering {
+ margin-right: 4px;
+ margin-bottom: 4px;
+ padding: 0px 1px 0px 0px;
+ border-width: 1px;
+}
+.gwt-RichTextToolbar .gwt-PushButton-down {
+ margin-right: 4px;
+ margin-bottom: 4px;
+ padding: 0px 0px 0px 1px;
+ border-width: 1px;
+}
+.gwt-RichTextToolbar .gwt-PushButton-down-hovering {
+ margin-right: 4px;
+ margin-bottom: 4px;
+ padding: 0px 0px 0px 1px;
+ border-width: 1px;
+}
+.gwt-RichTextToolbar .gwt-ToggleButton-up {
+ margin-right: 4px;
+ margin-bottom: 4px;
+ padding: 0px 1px 0px 0px;
+ border-width: 1px;
+}
+.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering {
+ margin-right: 4px;
+ margin-bottom: 4px;
+ padding: 0px 1px 0px 0px;
+ border-width: 1px;
+}
+.gwt-RichTextToolbar .gwt-ToggleButton-down {
+ margin-right: 4px;
+ margin-bottom: 4px;
+ padding: 0px 0px 0px 1px;
+ border-width: 1px;
+}
+.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering {
+ margin-right: 4px;
+ margin-bottom: 4px;
+ padding: 0px 0px 0px 1px;
+ border-width: 1px;
+}
+
+.gwt-StackPanel {
+ border-bottom: 1px solid #bbbbbb;
+}
+.gwt-StackPanel .gwt-StackPanelItem {
+ cursor: pointer;
+ cursor: hand;
+ font-weight: bold;
+ font-size: 1.3em;
+ padding: 3px;
+ border: 1px solid #bbbbbb;
+ border-bottom: 0px;
+ background: #d3def6 url(images/hborder.png) repeat-x 0px -989px;
+}
+.gwt-StackPanel .gwt-StackPanelContent {
+ border: 1px solid #bbbbbb;
+ border-bottom: 0px;
+ background: white;
+ padding: 2px 2px 10px 5px;
+}
+
+.gwt-DecoratedStackPanel {
+ border-bottom: 1px solid #bbbbbb;
+}
+.gwt-DecoratedStackPanel .gwt-StackPanelContent {
+ border: 1px solid #bbbbbb;
+ border-bottom: 0px;
+ background: white;
+ padding: 2px 2px 10px 5px;
+}
+.gwt-DecoratedStackPanel .gwt-StackPanelItem {
+ cursor: pointer;
+ cursor: hand;
+}
+.gwt-DecoratedStackPanel .stackItemTopLeft,
+.gwt-DecoratedStackPanel .stackItemTopRight {
+ height: 6px;
+ width: 6px;
+ zoom: 1;
+}
+.gwt-DecoratedStackPanel .stackItemTopLeft {
+ border-left: 1px solid #bbbbbb;
+ background: #d3def6 url(images/corner.png) no-repeat 0px -49px;
+ -background: #d3def6 url(images/corner_ie6.png) no-repeat 0px -49px;
+}
+.gwt-DecoratedStackPanel .stackItemTopRight {
+ border-right: 1px solid #bbbbbb;
+ background: #d3def6 url(images/corner.png) no-repeat -6px -49px;
+ -background: #d3def6 url(images/corner_ie6.png) no-repeat -6px -49px;
+}
+.gwt-DecoratedStackPanel .stackItemTopLeftInner,
+.gwt-DecoratedStackPanel .stackItemTopRightInner {
+ width: 1px;
+ height: 1px;
+}
+* html .gwt-DecoratedStackPanel .stackItemTopLeftInner,
+* html .gwt-DecoratedStackPanel .stackItemTopRightInner {
+ width: 6px;
+ height: 6px;
+ overflow: hidden;
+}
+.gwt-DecoratedStackPanel .stackItemTopCenter {
+ background: url(images/hborder.png) 0px -21px repeat-x;
+}
+.gwt-DecoratedStackPanel .stackItemMiddleLeft {
+ background: #d3def6 url(images/hborder.png) repeat-x 0px -989px;
+ border-left: 1px solid #bbbbbb;
+}
+.gwt-DecoratedStackPanel .stackItemMiddleLeftInner,
+.gwt-DecoratedStackPanel .stackItemMiddleRightInner {
+ width: 1px;
+ height: 1px;
+}
+.gwt-DecoratedStackPanel .stackItemMiddleRight {
+ background: #d3def6 url(images/hborder.png) repeat-x 0px -989px;
+ border-right: 1px solid #bbbbbb;
+}
+.gwt-DecoratedStackPanel .stackItemMiddleCenter {
+ font-weight: bold;
+ font-size: 1.3em;
+ background: #d3def6 url(images/hborder.png) repeat-x 0px -989px;
+}
+.gwt-DecoratedStackPanel .gwt-StackPanelItem-first .stackItemTopRight,
+.gwt-DecoratedStackPanel .gwt-StackPanelItem-first .stackItemTopLeft {
+ border: 0px;
+ background-color: white;
+}
+.gwt-DecoratedStackPanel .gwt-StackPanelItem-below-selected .stackItemTopLeft,
+.gwt-DecoratedStackPanel .gwt-StackPanelItem-below-selected .stackItemTopRight {
+ background-color: white;
+}
+
+.gwt-SuggestBox {
+ padding: 2px;
+}
+.gwt-SuggestBoxPopup {
+ margin-left: 3px;
+}
+.gwt-SuggestBoxPopup .item {
+ padding: 2px 6px;
+ color: #424242;
+ cursor: default;
+}
+.gwt-SuggestBoxPopup .item-selected {
+ background: #b7d6f6;
+}
+.gwt-SuggestBoxPopup .suggestPopupContent {
+ background: white;
+}
+.gwt-SuggestBoxPopup .suggestPopupTopCenter {
+ background: url(images/hborder.png) repeat-x;
+}
+.gwt-SuggestBoxPopup .suggestPopupBottomCenter {
+ background: url(images/hborder.png) repeat-x 0px -4px;
+ -background: url(images/hborder_ie6.png) repeat-x 0px -4px;
+}
+.gwt-SuggestBoxPopup .suggestPopupMiddleLeft {
+ background: url(images/vborder.png) repeat-y;
+}
+.gwt-SuggestBoxPopup .suggestPopupMiddleRight {
+ background: url(images/vborder.png) repeat-y -4px 0px;
+ -background: url(images/vborder_ie6.png) repeat-y -4px 0px;
+}
+.gwt-SuggestBoxPopup .suggestPopupTopLeftInner {
+ width: 5px;
+ height: 5px;
+ zoom: 1;
+}
+.gwt-SuggestBoxPopup .suggestPopupTopRightInner {
+ width: 8px;
+ height: 5px;
+ zoom: 1;
+}
+.gwt-SuggestBoxPopup .suggestPopupBottomLeftInner {
+ width: 5px;
+ height: 8px;
+ zoom: 1;
+}
+.gwt-SuggestBoxPopup .suggestPopupBottomRightInner {
+ width: 8px;
+ height: 8px;
+ zoom: 1;
+}
+.gwt-SuggestBoxPopup .suggestPopupTopLeft {
+ background: url(images/corner.png) no-repeat 0px -23px;
+ -background: url(images/corner_ie6.png) no-repeat 0px -23px;
+}
+.gwt-SuggestBoxPopup .suggestPopupTopRight {
+ background: url(images/corner.png) no-repeat -5px -23px;
+ -background: url(images/corner_ie6.png) no-repeat -5px -23px;
+}
+.gwt-SuggestBoxPopup .suggestPopupBottomLeft {
+ background: url(images/corner.png) no-repeat 0px -28px;
+ -background: url(images/corner_ie6.png) no-repeat 0px -28px;
+}
+.gwt-SuggestBoxPopup .suggestPopupBottomRight {
+ background: url(images/corner.png) no-repeat -5px -28px;
+ -background: url(images/corner_ie6.png) no-repeat -5px -28px;
+}
+* html .gwt-SuggestBoxPopup .suggestPopupTopLeftInner {
+ width: 5px;
+ height: 5px;
+ overflow: hidden;
+}
+* html .gwt-SuggestBoxPopup .suggestPopupTopRightInner {
+ width: 8px;
+ height: 5px;
+ overflow: hidden;
+}
+* html .gwt-SuggestBoxPopup .suggestPopupBottomLeftInner {
+ width: 5px;
+ height: 8px;
+ overflow: hidden;
+}
+* html .gwt-SuggestBoxPopup .suggestPopupBottomRightInner {
+ width: 8px;
+ height: 8px;
+ overflow: hidden;
+}
+
+.gwt-TabBar {
+}
+.gwt-TabBar .gwt-TabBarFirst {
+ width: 5px; /* first tab distance from the left */
+}
+.gwt-TabBar .gwt-TabBarRest {
+}
+.gwt-TabBar .gwt-TabBarItem {
+ margin-left: 6px;
+ padding: 3px 6px 3px 6px;
+ cursor: pointer;
+ cursor: hand;
+ color: black;
+ font-weight: bold;
+ text-align: center;
+ background: #d0e4f6;
+}
+.gwt-TabBar .gwt-TabBarItem-selected {
+ cursor: default;
+ background: #92c1f0;
+}
+.gwt-TabBar .gwt-TabBarItem-disabled {
+ cursor: default;
+ color: #999999;
+}
+.gwt-TabPanel {
+}
+.gwt-TabPanelBottom {
+ border-color: #92c1f0;
+ border-style: solid;
+ border-width: 3px 2px 2px;
+ overflow: hidden;
+ padding: 6px;
+}
+
+.gwt-DecoratedTabBar {
+}
+.gwt-DecoratedTabBar .gwt-TabBarFirst {
+ width: 5px; /* first tab distance from the left */
+}
+.gwt-DecoratedTabBar .gwt-TabBarRest {
+}
+.gwt-DecoratedTabBar .gwt-TabBarItem {
+ border-collapse: collapse;
+ margin-left: 6px;
+}
+.gwt-DecoratedTabBar .tabTopCenter {
+ padding: 0px;
+ background: #d0e4f6;
+}
+.gwt-DecoratedTabBar .tabTopLeft,
+.gwt-DecoratedTabBar .tabTopRight {
+ padding: 0px;
+ zoom: 1;
+}
+.gwt-DecoratedTabBar .tabTopLeftInner,
+.gwt-DecoratedTabBar .tabTopRightInner {
+ width: 6px;
+ height: 6px;
+}
+.gwt-DecoratedTabBar .tabTopLeft {
+ background: url(images/corner.png) no-repeat 0px -55px;
+ -background: url(images/corner_ie6.png) no-repeat 0px -55px;
+}
+.gwt-DecoratedTabBar .tabTopRight {
+ background: url(images/corner.png) no-repeat -6px -55px;
+ -background: url(images/corner_ie6.png) no-repeat -6px -55px;
+}
+* html .gwt-DecoratedTabBar .tabTopLeftInner,
+* html .gwt-DecoratedTabBar .tabTopRightInner {
+ width: 6px;
+ height: 6px;
+ overflow: hidden;
+}
+.gwt-DecoratedTabBar .tabMiddleLeft,
+.gwt-DecoratedTabBar .tabMiddleRight {
+ width: 6px;
+ padding: 0px;
+ background: #d0e4f6;
+}
+.gwt-DecoratedTabBar .tabMiddleLeftInner,
+.gwt-DecoratedTabBar .tabMiddleRightInner {
+ width: 1px;
+ height: 1px;
+}
+.gwt-DecoratedTabBar .tabMiddleCenter {
+ padding: 0px 4px 2px 4px;
+ cursor: pointer;
+ cursor: hand;
+ color: black;
+ font-weight: bold;
+ text-align: center;
+ background: #d0e4f6;
+}
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopCenter {
+ background: #92c1f0;
+}
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopLeft {
+ background-position: 0px -61px;
+}
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopRight {
+ background-position: -6px -61px;
+}
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleLeft,
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleRight {
+ background: #92c1f0;
+}
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleCenter {
+ cursor: default;
+ background: #92c1f0;
+}
+.gwt-DecoratedTabBar .gwt-TabBarItem-disabled .tabMiddleCenter {
+ cursor: default;
+ color: #999999;
+}
+
+.gwt-TextArea {
+ padding: 2px;
+}
+.gwt-TextArea-readonly {
+ color: #888;
+}
+
+.gwt-TextBox {
+ padding: 2px;
+}
+.gwt-TextBox-readonly {
+ color: #888;
+}
+
+.gwt-ToggleButton-up,
+.gwt-ToggleButton-up-hovering,
+.gwt-ToggleButton-up-disabled,
+.gwt-ToggleButton-down,
+.gwt-ToggleButton-down-hovering,
+.gwt-ToggleButton-down-disabled {
+ margin: 0;
+ text-decoration: none;
+ background: url("images/hborder.png") repeat-x 0px -27px;
+}
+.gwt-ToggleButton-up,
+.gwt-ToggleButton-up-hovering,
+.gwt-ToggleButton-up-disabled {
+ padding: 3px 5px 3px 5px;
+}
+.gwt-ToggleButton-up {
+ border: 1px outset #ccc;
+ cursor: pointer;
+ cursor: hand;
+}
+.gwt-ToggleButton-up-hovering {
+ border: 1px outset;
+ border-color: #9cf #69e #69e #7af;
+ cursor: pointer;
+ cursor: hand;
+}
+.gwt-ToggleButton-up-disabled {
+ border: 1px outset #ccc;
+ cursor: default;
+ opacity: .5;
+ zoom: 1;
+ filter: alpha(opacity=40);
+}
+.gwt-ToggleButton-down,
+.gwt-ToggleButton-down-hovering,
+.gwt-ToggleButton-down-disabled {
+ padding: 4px 4px 2px 6px;
+}
+.gwt-ToggleButton-down {
+ background-position: 0 -513px;
+ border: 1px inset #ccc;
+ cursor: pointer;
+ cursor: hand;
+}
+.gwt-ToggleButton-down-hovering {
+ background-position: 0 -513px;
+ border: 1px inset;
+ border-color: #9cf #69e #69e #7af;
+ cursor: pointer;
+ cursor: hand;
+}
+.gwt-ToggleButton-down-disabled {
+ background-position: 0 -513px;
+ border: 1px inset #ccc;
+ cursor: default;
+ opacity: .5;
+ zoom: 1;
+ filter: alpha(opacity=40);
+}
+
+.gwt-Tree .gwt-TreeItem {
+ padding: 1px 0px;
+ margin: 0px;
+ white-space: nowrap;
+ cursor: hand;
+ cursor: pointer;
+}
+.gwt-Tree .gwt-TreeItem-selected {
+ background: #93c2f1 url(images/hborder.png) repeat-x 0px -1463px;
+}
+.gwt-TreeItem .gwt-RadioButton input,
+.gwt-TreeItem .gwt-CheckBox input {
+ margin-left: 0px;
+}
+* html .gwt-TreeItem .gwt-RadioButton input,
+* html .gwt-TreeItem .gwt-CheckBox input {
+ margin-left: -4px;
+}
+
+.gwt-DateBox input {
+ width: 8em;
+}
+.dateBoxFormatError {
+ background: #ffcccc;
+}
+.dateBoxPopup {
+}
+
+.gwt-DatePicker {
+ border: 1px solid #A2BBDD;
+ cursor: default;
+}
+.gwt-DatePicker td,
+.datePickerMonthSelector td:focus {
+ outline: none
+}
+.datePickerDays {
+ width: 100%;
+ background: white;
+}
+.datePickerDay,
+.datePickerWeekdayLabel,
+.datePickerWeekendLabel {
+ font-size: 75%;
+ text-align: center;
+ padding: 4px;
+ outline: none;
+}
+.datePickerWeekdayLabel,
+.datePickerWeekendLabel {
+ background: #C3D9FF;
+ padding: 0px 4px 2px;
+ cursor: default;
+}
+.datePickerDay {
+ padding: 4px;
+ cursor: hand;
+ cursor: pointer;
+}
+.datePickerDayIsToday {
+ border: 1px solid black;
+ padding: 3px;
+}
+.datePickerDayIsWeekend {
+ background: #EEEEEE;
+}
+.datePickerDayIsFiller {
+ color: #888888;
+}
+.datePickerDayIsValue {
+ background: #aaccee;
+}
+.datePickerDayIsDisabled {
+ color: #AAAAAA;
+ font-style: italic;
+}
+.datePickerDayIsHighlighted {
+ background: #F0E68C;
+}
+.datePickerDayIsValueAndHighlighted {
+ background: #bbddd9;
+}
+.datePickerMonthSelector {
+ background: #C3D9FF;
+ width: 100%;
+}
+td.datePickerMonth {
+ text-align: center;
+ vertical-align: center;
+ white-space: nowrap;
+ font-size: 70%;
+ font-weight: bold;
+ color: blue;
+}
+.datePickerPreviousButton,
+.datePickerNextButton {
+ font-size: 120%;
+ line-height: 1em;
+ color: blue;
+ cursor: hand;
+ cursor: pointer;
+ padding: 0px 4px;
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org