You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by aw...@apache.org on 2006/11/14 22:39:17 UTC

svn commit: r475027 [1/2] - in /incubator/adffaces/trunk/trinidad: trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/ trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/ trinidad-api/src/main/java/org/apache/myfac...

Author: awiner
Date: Tue Nov 14 14:39:15 2006
New Revision: 475027

URL: http://svn.apache.org/viewvc?view=rev&rev=475027
Log:
Commit a bunch of patches.
ADFFACES-288: Move the defaulting of the focusRowKey attribute for the TreeTable component to the renderer
ADFFACES-283: Base64OutputStream needs a cleanup
ADFFACES-281: PPR in panelAccordion does not work on PDAs
ADFFACES-270: UIXCollection api cleanup - rename get/setCurrencyString to get/setClientRowKey
ADFFACES-264: sortable' attribute does not work on 'Column' component on PDAs
ADFFACES-236: fix showDetail with prompt facet on a PDA
ADFFACES-222: DEBUG_JAVASCRIPT option is broken	
ADFFACES-213: fix "messages" component on PDAs
ADFFACES-284: table should log warnings, but not throw exceptions, when wrong children are used	

Modified:
    incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXTreeTableTemplate.java
    incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXTreeTemplate.java
    incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXCollection.java
    incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Base64InputStream.java
    incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Base64OutputStream.java
    incubator/adffaces/trunk/trinidad/trinidad-api/src/test/java/org/apache/myfaces/trinidad/util/Base64OutputStreamTest.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreResponseStateManager.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/DesktopTableRenderer.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/TreeTableRenderer.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaTableRenderer.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/skin/PdaHtmlSkin.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TableRenderer.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeUtils.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/CorePanelAccordionRenderer.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/TreeRenderer.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/resource/CoreCommonScriptsResourceLoader.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/pda/MessageBoxRenderer.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/resources/META-INF/adf/styles/simple-pda.xss
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messages-minimalPPC-golden.xml
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messagesError-minimalPPC-golden.xml
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messagesFatal-minimalPPC-golden.xml
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messagesInfo-minimalPPC-golden.xml
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messagesWarn-minimalPPC-golden.xml
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelAccordion-minimalPPC-golden.xml
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/showDetailWithPrompt-minimalPPC-golden.xml
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/showDetailWithoutPrompt-minimalPPC-golden.xml

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXTreeTableTemplate.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXTreeTableTemplate.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXTreeTableTemplate.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXTreeTableTemplate.java Tue Nov 14 14:39:15 2006
@@ -277,51 +277,39 @@
     TableUtils.__processColumnFacets(context, this, nodeStamp, phaseId);
 
     Object oldPath = getRowKey();
+    RowKeySet state = getDisclosedRowKeys();
     try
     {
       Object path = getFocusRowKey();
-      if (path == null)
-      {
-        // no data in this TreeTable
-        return;
-      }
-
       setRowKey(path);
-      TableUtils.__processStampedChildren(context, this, phaseId);
-      processComponent(context, nodeStamp, phaseId); // bug 4688568
-      RowKeySet state = getDisclosedRowKeys();
-      if (state.isContained())
+      if (path == null)
       {
-        enterContainer();
         HierarchyUtils.__iterateOverTree(context,
                                          phaseId,
                                          this,
                                          state,
-                                         true);
+                                         true);        
+
+      }
+      else
+      {
+        TableUtils.__processStampedChildren(context, this, phaseId);
+        processComponent(context, nodeStamp, phaseId); // bug 4688568
+  
+        if (state.isContained())
+        {
+          enterContainer();
+          HierarchyUtils.__iterateOverTree(context,
+                                           phaseId,
+                                           this,
+                                           state,
+                                           true);
+        }
       }
     }
     finally
     {
       setRowKey(oldPath);
-    }
-  }
-
-  @Override
-  void __init()
-  {
-    super.__init();
-    Object path = getFocusRowKey();
-    if (path == null)
-    {
-      TreeModel model = getTreeModel();
-      Object oldKey = model.getRowKey();
-      model.setRowKey(null);
-      model.setRowIndex(0);
-      if (model.isRowAvailable())
-      {
-        setFocusRowKey(model.getRowKey());
-      }
-      model.setRowKey(oldKey);
     }
   }
 

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXTreeTemplate.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXTreeTemplate.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXTreeTemplate.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXTreeTemplate.java Tue Nov 14 14:39:15 2006
@@ -105,13 +105,6 @@
   }
 
   @Override
-  void __encodeBegin(FacesContext context) throws IOException
-  {
-    HierarchyUtils.__handleEncodeBegin(this, getDisclosedRowKeys());
-    super.__encodeBegin(context);
-  }
-
-  @Override
   void __init()
   {
     super.__init();

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXCollection.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXCollection.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXCollection.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXCollection.java Tue Nov 14 14:39:15 2006
@@ -445,7 +445,11 @@
    * Clear the rowKey-to-currencyString cache.
    * The cache is not cleared immediately; instead it will be cleared
    * when {@link #encodeBegin} is called.
+   * @deprecated Have your Renderer implement {@link ClientRowKeyManagerFactory}
+   * and create your own {@link ClientRowKeyManager} instances. Then you can
+   * manage the lifecycle of each key inside your ClientRowKeyManager.
    */
+  @Deprecated
   protected void clearCurrencyStringCache()
   {
     _getInternalState(true)._clearTokenCache = true;
@@ -515,6 +519,7 @@
    * @deprecated use getClientRowKey
    * @see #getClientRowKey
    */
+  @Deprecated
   public String getCurrencyString()
   {
     return getClientRowKey();  
@@ -524,6 +529,7 @@
    * @deprecated use setClientRowKey
    * @see #setClientRowKey
    */
+  @Deprecated
   public void setCurrencyString(String currency)
   {
     setClientRowKey(currency);
@@ -856,6 +862,15 @@
     return getCollectionModel(true);
   }
 
+  /**
+   * Gets the ClientRowKeyManager that is used to handle the
+   * @{link #getClientRowKey} and  
+   * @{link #setClientRowKey} methods.
+   * If the manager does not already exist a new one is created.
+   * In order to create your own manager, your Renderer (for this component)
+   * must implement
+   * {@link ClientRowKeyManagerFactory}
+   */
   public final ClientRowKeyManager getClientRowKeyManager()
   {
     // this method must be public, because specific renderers

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Base64InputStream.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Base64InputStream.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Base64InputStream.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Base64InputStream.java Tue Nov 14 14:39:15 2006
@@ -82,7 +82,18 @@
     return result;
   }
   
-  
+  @Override
+  public void close() throws IOException 
+  {
+    _in.close();
+  }
+
+  @Override
+  public int available() throws IOException 
+  {
+    return _in.ready() ? 1 : 0;
+  }
+
   /**
    * Reads in _QUANTUM_SIZE number of base64 characters from the reader 
    * and converts them into bytes and places these bytes into the decodedBuffer

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Base64OutputStream.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Base64OutputStream.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Base64OutputStream.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Base64OutputStream.java Tue Nov 14 14:39:15 2006
@@ -24,12 +24,6 @@
  * It takes a Writer as its single argument to its constructor and all
  * bytes written to the stream are correspondingly converted into Base64
  * and written out to the provided writer.
- *  
- * This class extends OutputStream.  It adds one additional method called 
- * finish() which appends padding characters to the end of the data if 
- * necessary.  
- *
- * @version
  */
 public class Base64OutputStream extends OutputStream
 {
@@ -48,10 +42,9 @@
   @Override
   public void write(int b) throws IOException
   {
-    _single[0] = (byte)b;
+    _single[0] = (byte) b;
     this.write(_single, 0, 1);
-   
-  } // end write(int b)
+  } 
   
   /**
    * Writes len bytes from the specified byte array starting at offset off 
@@ -80,12 +73,13 @@
   {
     if (b==null) 
     {
-      throw new NullPointerException();
+      throw new NullPointerException("byte[] cannot be null");
     }
       
     if (off<0 || len<0 || off+len>b.length) 
     {
-      throw new IndexOutOfBoundsException();
+      throw new IndexOutOfBoundsException("Actual Length:"+b.length+" offset:"+off+
+                                          " length:"+len);
     }
     
     int lengthToProcess = len;
@@ -169,16 +163,35 @@
 
   } //end write(byte[], int off, int len)
   
-  
+  @Override
+  public void flush() throws IOException 
+  {
+    _out.flush();
+  }
+
   /**
-   * Call this method to indicate end of data stream without closing stream 
+   * Call this method to indicate end of data stream 
    * and to append any padding characters if necessary.  This method should be 
    * called only if there will be no subsequent calls to a write method.  
    * Subsequent calls to the write method will result in incorrect encoding.
    * 
+   * @deprecated use the close() method instead.
    */
+  @Deprecated
   public void finish() throws IOException
   {
+    close();
+  }
+  
+  /**
+   * Call this method to indicate end of data stream 
+   * and to append any padding characters if necessary.  This method should be 
+   * called only if there will be no subsequent calls to a write method.  
+   * Subsequent calls to the write method will result in incorrect encoding.
+   * 
+   */
+  public void close() throws IOException
+  {
     if (_numLeftoverBytes==1) 
     {
       // grab the one byte from the leftover array
@@ -222,11 +235,7 @@
       
       _out.write(encodedChars);
     } 
-    else 
-    {
-      // no need for padding
-      return;
-    }
+    _out.close();
   }
   
   
@@ -323,23 +332,21 @@
     if (c == 63)
       return '/';
       
-    // error, not a valid B64 char
-    return (char)0;
-    
+    throw new AssertionError("Invalid B64 character code:"+c);
   }
 
   
   /** stores leftover bytes from previous call to write method **/
-  private byte[]      _leftoverBytes;
+  private final byte[]      _leftoverBytes;
   
   /** indicates the number of bytes that were leftover after the last triplet 
    * was formed in the last call to write method  **/
   private int         _numLeftoverBytes;
   
-  /// a byte array used merely for efficiency purposes in method write(int b)
-  private final byte[]      _single = new byte[1];
   // cached four-character array
   private final char[]      _fourChars = new char[4];
+  // cached single-byte array
+  private final byte[]      _single = new byte[1];
 
   // Writer that will receive all completed character output
   private final Writer      _out;  

Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/test/java/org/apache/myfaces/trinidad/util/Base64OutputStreamTest.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/test/java/org/apache/myfaces/trinidad/util/Base64OutputStreamTest.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/test/java/org/apache/myfaces/trinidad/util/Base64OutputStreamTest.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/test/java/org/apache/myfaces/trinidad/util/Base64OutputStreamTest.java Tue Nov 14 14:39:15 2006
@@ -39,10 +39,10 @@
    * 
    * @param testName  the unit test name
    */
- 	public Base64OutputStreamTest(String testName)
-  	{
-  	  super(testName);
- 	}
+  public Base64OutputStreamTest(String testName)
+  {
+    super(testName);
+  }
   
   @Override
   protected void setUp() throws Exception
@@ -64,189 +64,177 @@
   /**
    * Tests decoding of stream that contains no trailing padding characters.
    */ 	
- 	public void testNoPaddingChar() throws IOException
- 	{
+  public void testNoPaddingChar() throws IOException
+  {
 	 	
-		String	str = "abcdefghijklmnopqrstuvwxBase64 Encoding is a popular way to convert the 8bit and the binary to the 7bit for network trans using Socket, and a security method to handle text or file, often used in Authentical Login and Mail Attachment, also stored in text file or database. Most SMTP server will handle the login UserName and Password in this way. 1";
-    	String str_encoded = "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4QmFzZTY0IEVuY29kaW5nIGlzIGEgcG9wdWxhciB3YXkgdG8gY29udmVydCB0aGUgOGJpdCBhbmQgdGhlIGJpbmFyeSB0byB0aGUgN2JpdCBmb3IgbmV0d29yayB0cmFucyB1c2luZyBTb2NrZXQsIGFuZCBhIHNlY3VyaXR5IG1ldGhvZCB0byBoYW5kbGUgdGV4dCBvciBmaWxlLCBvZnRlbiB1c2VkIGluIEF1dGhlbnRpY2FsIExvZ2luIGFuZCBNYWlsIEF0dGFjaG1lbnQsIGFsc28gc3RvcmVkIGluIHRleHQgZmlsZSBvciBkYXRhYmFzZS4gTW9zdCBTTVRQIHNlcnZlciB3aWxsIGhhbmRsZSB0aGUgbG9naW4gVXNlck5hbWUgYW5kIFBhc3N3b3JkIGluIHRoaXMgd2F5LiAx";
+    String	str = "abcdefghijklmnopqrstuvwxBase64 Encoding is a popular way to convert the 8bit and the binary to the 7bit for network trans using Socket, and a security method to handle text or file, often used in Authentical Login and Mail Attachment, also stored in text file or database. Most SMTP server will handle the login UserName and Password in this way. 1";
+    String str_encoded = "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4QmFzZTY0IEVuY29kaW5nIGlzIGEgcG9wdWxhciB3YXkgdG8gY29udmVydCB0aGUgOGJpdCBhbmQgdGhlIGJpbmFyeSB0byB0aGUgN2JpdCBmb3IgbmV0d29yayB0cmFucyB1c2luZyBTb2NrZXQsIGFuZCBhIHNlY3VyaXR5IG1ldGhvZCB0byBoYW5kbGUgdGV4dCBvciBmaWxlLCBvZnRlbiB1c2VkIGluIEF1dGhlbnRpY2FsIExvZ2luIGFuZCBNYWlsIEF0dGFjaG1lbnQsIGFsc28gc3RvcmVkIGluIHRleHQgZmlsZSBvciBkYXRhYmFzZS4gTW9zdCBTTVRQIHNlcnZlciB3aWxsIGhhbmRsZSB0aGUgbG9naW4gVXNlck5hbWUgYW5kIFBhc3N3b3JkIGluIHRoaXMgd2F5LiAx";
    
-    	_testWriteChar(str, str_encoded);
-    	
-    	_testWriteArray(str, str_encoded);    	
-    	
- 	}
+    _testWriteChar(str, str_encoded);
+    
+    _testWriteArray(str, str_encoded);    	
+  }
  	
   /**
    * Tests decoding of stream that contains exactly one trailing padding character.
    */ 	
- 	public void testOnePaddingChar() throws IOException
- 	{
-		String str = "Base64 Encoding is a popular way to convert the 8bit and the binary to the 7bit for network trans using Socket, and a security method to handle text or file, often used in Authentical Login and Mail Attachment, also stored in text file or database. Most SMTP server will handle the login UserName and Password in this way.9";
-    	String str_encoded = "QmFzZTY0IEVuY29kaW5nIGlzIGEgcG9wdWxhciB3YXkgdG8gY29udmVydCB0aGUgOGJpdCBhbmQgdGhlIGJpbmFyeSB0byB0aGUgN2JpdCBmb3IgbmV0d29yayB0cmFucyB1c2luZyBTb2NrZXQsIGFuZCBhIHNlY3VyaXR5IG1ldGhvZCB0byBoYW5kbGUgdGV4dCBvciBmaWxlLCBvZnRlbiB1c2VkIGluIEF1dGhlbnRpY2FsIExvZ2luIGFuZCBNYWlsIEF0dGFjaG1lbnQsIGFsc28gc3RvcmVkIGluIHRleHQgZmlsZSBvciBkYXRhYmFzZS4gTW9zdCBTTVRQIHNlcnZlciB3aWxsIGhhbmRsZSB0aGUgbG9naW4gVXNlck5hbWUgYW5kIFBhc3N3b3JkIGluIHRoaXMgd2F5Ljk="; 
-   
-    	_testWriteChar(str, str_encoded);
-    	
-    	_testWriteArray(str, str_encoded);    	
-    	
- 	}
+  public void testOnePaddingChar() throws IOException
+  {
+    String str = "Base64 Encoding is a popular way to convert the 8bit and the binary to the 7bit for network trans using Socket, and a security method to handle text or file, often used in Authentical Login and Mail Attachment, also stored in text file or database. Most SMTP server will handle the login UserName and Password in this way.9";
+    String str_encoded = "QmFzZTY0IEVuY29kaW5nIGlzIGEgcG9wdWxhciB3YXkgdG8gY29udmVydCB0aGUgOGJpdCBhbmQgdGhlIGJpbmFyeSB0byB0aGUgN2JpdCBmb3IgbmV0d29yayB0cmFucyB1c2luZyBTb2NrZXQsIGFuZCBhIHNlY3VyaXR5IG1ldGhvZCB0byBoYW5kbGUgdGV4dCBvciBmaWxlLCBvZnRlbiB1c2VkIGluIEF1dGhlbnRpY2FsIExvZ2luIGFuZCBNYWlsIEF0dGFjaG1lbnQsIGFsc28gc3RvcmVkIGluIHRleHQgZmlsZSBvciBkYXRhYmFzZS4gTW9zdCBTTVRQIHNlcnZlciB3aWxsIGhhbmRsZSB0aGUgbG9naW4gVXNlck5hbWUgYW5kIFBhc3N3b3JkIGluIHRoaXMgd2F5Ljk="; 
+    
+    _testWriteChar(str, str_encoded);
+    
+    _testWriteArray(str, str_encoded);    	
+    
+  }
  	
-   /**
+  /**
    * Tests decoding of stream that contains exactly two trailing padding characters.
    */ 	 	
-  	public void testTwoPaddingChars() throws IOException
- 	{
-    	String str = "Base64 Encoding is a popular way to convert the 8bit and the binary to the 7bit for network trans using Socket, and a security method to handle text or file, often used in Authentical Login and Mail Attachment, also stored in text file or database. Most SMTP server will handle the login UserName and Password in this way.";
-    	String str_encoded = "QmFzZTY0IEVuY29kaW5nIGlzIGEgcG9wdWxhciB3YXkgdG8gY29udmVydCB0aGUgOGJpdCBhbmQgdGhlIGJpbmFyeSB0byB0aGUgN2JpdCBmb3IgbmV0d29yayB0cmFucyB1c2luZyBTb2NrZXQsIGFuZCBhIHNlY3VyaXR5IG1ldGhvZCB0byBoYW5kbGUgdGV4dCBvciBmaWxlLCBvZnRlbiB1c2VkIGluIEF1dGhlbnRpY2FsIExvZ2luIGFuZCBNYWlsIEF0dGFjaG1lbnQsIGFsc28gc3RvcmVkIGluIHRleHQgZmlsZSBvciBkYXRhYmFzZS4gTW9zdCBTTVRQIHNlcnZlciB3aWxsIGhhbmRsZSB0aGUgbG9naW4gVXNlck5hbWUgYW5kIFBhc3N3b3JkIGluIHRoaXMgd2F5Lg==";
-    
-    	_testWriteChar(str, str_encoded);
-    	
-    	_testWriteArray(str, str_encoded);    	
-    	
- 	}	
- 	
+  public void testTwoPaddingChars() throws IOException
+  {
+    String str = "Base64 Encoding is a popular way to convert the 8bit and the binary to the 7bit for network trans using Socket, and a security method to handle text or file, often used in Authentical Login and Mail Attachment, also stored in text file or database. Most SMTP server will handle the login UserName and Password in this way.";
+    String str_encoded = "QmFzZTY0IEVuY29kaW5nIGlzIGEgcG9wdWxhciB3YXkgdG8gY29udmVydCB0aGUgOGJpdCBhbmQgdGhlIGJpbmFyeSB0byB0aGUgN2JpdCBmb3IgbmV0d29yayB0cmFucyB1c2luZyBTb2NrZXQsIGFuZCBhIHNlY3VyaXR5IG1ldGhvZCB0byBoYW5kbGUgdGV4dCBvciBmaWxlLCBvZnRlbiB1c2VkIGluIEF1dGhlbnRpY2FsIExvZ2luIGFuZCBNYWlsIEF0dGFjaG1lbnQsIGFsc28gc3RvcmVkIGluIHRleHQgZmlsZSBvciBkYXRhYmFzZS4gTW9zdCBTTVRQIHNlcnZlciB3aWxsIGhhbmRsZSB0aGUgbG9naW4gVXNlck5hbWUgYW5kIFBhc3N3b3JkIGluIHRoaXMgd2F5Lg==";
+    
+    _testWriteChar(str, str_encoded);
+    
+    _testWriteArray(str, str_encoded);    	
+    
+  }	
+  
   /**
    * Tests decoding of stream by writing out to stream in different intervals to test whether
    * whehther leftover data is persisted across calls to write
    */ 	 	
-  	public void testMultipleWrites() throws IOException
- 	{
-    	String str = "Base64 Encoding is a popular way to convert the 8bit and the binary to the 7bit for network trans using Socket, and a security method to handle text or file, often used in Authentical Login and Mail Attachment, also stored in text file or database. Most SMTP server will handle the login UserName and Password in this way.";
-    	String str_encoded = "QmFzZTY0IEVuY29kaW5nIGlzIGEgcG9wdWxhciB3YXkgdG8gY29udmVydCB0aGUgOGJpdCBhbmQgdGhlIGJpbmFyeSB0byB0aGUgN2JpdCBmb3IgbmV0d29yayB0cmFucyB1c2luZyBTb2NrZXQsIGFuZCBhIHNlY3VyaXR5IG1ldGhvZCB0byBoYW5kbGUgdGV4dCBvciBmaWxlLCBvZnRlbiB1c2VkIGluIEF1dGhlbnRpY2FsIExvZ2luIGFuZCBNYWlsIEF0dGFjaG1lbnQsIGFsc28gc3RvcmVkIGluIHRleHQgZmlsZSBvciBkYXRhYmFzZS4gTW9zdCBTTVRQIHNlcnZlciB3aWxsIGhhbmRsZSB0aGUgbG9naW4gVXNlck5hbWUgYW5kIFBhc3N3b3JkIGluIHRoaXMgd2F5Lg==";
-    
-    	// create a Base64OutputStream 
-    	StringWriter strwriter = new StringWriter(); 
-    	BufferedWriter buffwriter = new BufferedWriter(strwriter);
-    	Base64OutputStream b64_out = new Base64OutputStream(buffwriter);
-    	
-    	byte[] b = str.getBytes();
-    
-		// write the bytes in different lengths to test whether leftover
-		// data is persisted across calls to write
-	    b64_out.write(b, 0, 33);
-	    b64_out.write(b, 33, 1);
-	    b64_out.write(b, 34, 1);
-	    b64_out.write(b, 35, 2);
-	    b64_out.write(b, 37, 3);
-	    b64_out.write(b, 40, 3);
-	    b64_out.write(b, 43, 3);
-	    b64_out.write(b, 46, 5);
-	    b64_out.write(b, 51, 4);
-	    b64_out.write(b, 55, 5);
-	    b64_out.write(b, 60, 6);
-	    b64_out.write(b, 66, 10);
-	    b64_out.write(b, 76, 51);
-	    b64_out.write(b, 127, 150);
-	    b64_out.write(b, 277, 22);
-	    b64_out.write(b, 299, 21);
-	    b64_out.write(b, 320, 2);
-	    	    
-    	// remember to add padding characters (if necessary)
-    	b64_out.finish();
-    	  	
-    	buffwriter.flush();
-		
-    	// compare the contents of the outputstream with the expected encoded string
-		assertEquals(strwriter.toString(), str_encoded);	
- 	}	
- 	
- 	
+  public void testMultipleWrites() throws IOException
+  {
+    String str = "Base64 Encoding is a popular way to convert the 8bit and the binary to the 7bit for network trans using Socket, and a security method to handle text or file, often used in Authentical Login and Mail Attachment, also stored in text file or database. Most SMTP server will handle the login UserName and Password in this way.";
+    String str_encoded = "QmFzZTY0IEVuY29kaW5nIGlzIGEgcG9wdWxhciB3YXkgdG8gY29udmVydCB0aGUgOGJpdCBhbmQgdGhlIGJpbmFyeSB0byB0aGUgN2JpdCBmb3IgbmV0d29yayB0cmFucyB1c2luZyBTb2NrZXQsIGFuZCBhIHNlY3VyaXR5IG1ldGhvZCB0byBoYW5kbGUgdGV4dCBvciBmaWxlLCBvZnRlbiB1c2VkIGluIEF1dGhlbnRpY2FsIExvZ2luIGFuZCBNYWlsIEF0dGFjaG1lbnQsIGFsc28gc3RvcmVkIGluIHRleHQgZmlsZSBvciBkYXRhYmFzZS4gTW9zdCBTTVRQIHNlcnZlciB3aWxsIGhhbmRsZSB0aGUgbG9naW4gVXNlck5hbWUgYW5kIFBhc3N3b3JkIGluIHRoaXMgd2F5Lg==";
+    
+    // create a Base64OutputStream 
+    StringWriter strwriter = new StringWriter(); 
+    BufferedWriter buffwriter = new BufferedWriter(strwriter);
+    Base64OutputStream b64_out = new Base64OutputStream(buffwriter);
+    
+    byte[] b = str.getBytes();
+    
+    // write the bytes in different lengths to test whether leftover
+    // data is persisted across calls to write
+    b64_out.write(b, 0, 33);
+    b64_out.write(b, 33, 1);
+    b64_out.write(b, 34, 1);
+    b64_out.write(b, 35, 2);
+    b64_out.write(b, 37, 3);
+    b64_out.write(b, 40, 3);
+    b64_out.write(b, 43, 3);
+    b64_out.write(b, 46, 5);
+    b64_out.write(b, 51, 4);
+    b64_out.write(b, 55, 5);
+    b64_out.write(b, 60, 6);
+    b64_out.write(b, 66, 10);
+    b64_out.write(b, 76, 51);
+    b64_out.write(b, 127, 150);
+    b64_out.write(b, 277, 22);
+    b64_out.write(b, 299, 21);
+    b64_out.write(b, 320, 2);
+    
+    // remember to add padding characters (if necessary)
+    b64_out.finish();
+    
+    // compare the contents of the outputstream with the expected encoded string
+    assertEquals(strwriter.toString(), str_encoded);	
+  }	
+  
+  
   /**
    * Testing writing binary data whose byte values range from -128 to 128.
    * We create such data by GZIP-ing the string before writing out to the Base64OutputStream.
    * 
    */ 	 	
-  	public void testWriteBinaryData() throws IOException
- 	{
- 	  String str = "Base64 Encoding is a popular way to convert the 8bit and the binary to the 7bit for network trans using Socket, and a security method to handle text or file, often used in Authentical Login and Mail Attachment, also stored in text file or database. Most SMTP server will handle the login UserName and Password in this way.";
-	  String str_encoded = "H4sIAAAAAAAAAD2QQW7DMAwEv7IPCHIK2l4ToLe6CJD2AbREx0JkMpDouvl9KQXokVxylssTVX454F2CxiRXpArCXe9rpoKNHjBFUPnhYrCZ8TYmA0nsxZiESh9p1WuTJi0Qtk3LDVZIKtbauBcNN7ZdXyVUDmtJ9sDCNmtshNmVzDD+NThjSpl30MlYnMARSXBc3UYsBcr40Kt3Gm2glHE0ozAvrrpFropqWp5bndhwDRvJaPTIewxaDZfh6+zHFI+HLeX8f4XHyd3h29VPWrhbnalWT/bEzv4qf9D+DzA2UNlCAQAA";
- 	  
- 	  byte[] bytes = str.getBytes();
- 	  
- 	  StringWriter strwriter = new StringWriter(); 
-      BufferedWriter buffwriter = new BufferedWriter(strwriter);
-      Base64OutputStream b64_out = new Base64OutputStream(buffwriter);
-
-      GZIPOutputStream zip = new GZIPOutputStream(b64_out);
-      
-      zip.write(bytes, 0, bytes.length);
-      zip.finish();
-      buffwriter.flush();
-      b64_out.finish();
-      
-      assertEquals(str_encoded, strwriter.toString());
-	 	
- 	}
+  public void testWriteBinaryData() throws IOException
+  {
+    String str = "Base64 Encoding is a popular way to convert the 8bit and the binary to the 7bit for network trans using Socket, and a security method to handle text or file, often used in Authentical Login and Mail Attachment, also stored in text file or database. Most SMTP server will handle the login UserName and Password in this way.";
+    String str_encoded = "H4sIAAAAAAAAAD2QQW7DMAwEv7IPCHIK2l4ToLe6CJD2AbREx0JkMpDouvl9KQXokVxylssTVX454F2CxiRXpArCXe9rpoKNHjBFUPnhYrCZ8TYmA0nsxZiESh9p1WuTJi0Qtk3LDVZIKtbauBcNN7ZdXyVUDmtJ9sDCNmtshNmVzDD+NThjSpl30MlYnMARSXBc3UYsBcr40Kt3Gm2glHE0ozAvrrpFropqWp5bndhwDRvJaPTIewxaDZfh6+zHFI+HLeX8f4XHyd3h29VPWrhbnalWT/bEzv4qf9D+DzA2UNlCAQAA";
     
-	 	
- ////////// private	methods ////////////
- 	
-	/**
-	 *
-	 *	Writes each individual char from str to a Base64OutputStream and compares
-	 *	the resulting output stream contents with the expected encoded string.  
-	 *
-	 *	@param	str			the decoded string
-	 *	@param	str_encoded	the encoded string
-	 *
-	 **/ 	
- 	
-	private void _testWriteChar(String str, String str_encoded) throws IOException
-	{
-		// create a Base64OutputStream 
-    	StringWriter strwriter = new StringWriter(); 
-    	BufferedWriter buffwriter = new BufferedWriter(strwriter);
-    	Base64OutputStream b64_out = new Base64OutputStream(buffwriter);
-    
-    	// write out each char in str to the stream
-    	for (int i = 0; i<str.length(); i++) 
-    	{
-     	 b64_out.write(str.charAt(i));
-    	}
-    	// remember to add padding characters (if necessary)
-    	b64_out.finish();
-    	
-    	
-    	buffwriter.flush();
-		
-    	// compare the contents of the outputstream with the expected encoded string
-		assertEquals(strwriter.toString(), str_encoded);	
-	}
- 	
-	/**
-	 *
-	 *	Writes str (after converting to an array of bytes) to a Base64OutputStream 
-	 *	and compares the resulting output stream contents with the expected encoded 
-	 *	string.  
-	 *
-	 *	@param	str			the decoded string
-	 *	@param	str_encoded	the encoded string
-	 *
-	 **/ 	
-	private void _testWriteArray(String str, String str_encoded) throws IOException
-	{	
-		// create a Base64OutputStream 
-    	StringWriter strwriter = new StringWriter(); 
-    	BufferedWriter buffwriter = new BufferedWriter(strwriter);
-    	Base64OutputStream b64_out = new Base64OutputStream(buffwriter);
-  
-    	// convert str into an array of bytes
-    	byte[] b = str.getBytes();
-    	
-    	// write out the array to the output stream
-    	b64_out.write(b, 0, b.length);
-    	// append padding chars if necessary
-    	b64_out.finish();
-    
-    	buffwriter.flush();
-    	
-// 		System.out.println("testwriteArray,  expected encoding:" + str_encoded);    
-//       	System.out.println("testwriteArray, output of encoding:" + strwriter.toString());
- 
-    	// compare the contents of the outputstream with the expected encoded string
-    	assertEquals(strwriter.toString(), str_encoded);
-	}
-
+    byte[] bytes = str.getBytes();
+    
+    StringWriter strwriter = new StringWriter(); 
+    BufferedWriter buffwriter = new BufferedWriter(strwriter);
+    Base64OutputStream b64_out = new Base64OutputStream(buffwriter);
+    
+    GZIPOutputStream zip = new GZIPOutputStream(b64_out);
+    
+    zip.write(bytes, 0, bytes.length);
+    zip.finish();
+    buffwriter.flush();
+    b64_out.finish();
+    
+    assertEquals(str_encoded, strwriter.toString());
+    
+  }
+  
   
+  ////////// private	methods ////////////
   
+  /**
+   *
+   *	Writes each individual char from str to a Base64OutputStream and compares
+   *	the resulting output stream contents with the expected encoded string.  
+   *
+   *	@param	str			the decoded string
+   *	@param	str_encoded	the encoded string
+   *
+   **/ 	
   
+  private void _testWriteChar(String str, String str_encoded) throws IOException
+  {
+    // create a Base64OutputStream 
+    StringWriter strwriter = new StringWriter(); 
+    BufferedWriter buffwriter = new BufferedWriter(strwriter);
+    Base64OutputStream b64_out = new Base64OutputStream(buffwriter);
+    
+    // write out each char in str to the stream
+    for (int i = 0; i<str.length(); i++) 
+    {
+      b64_out.write(str.charAt(i));
+    }
+    // remember to add padding characters (if necessary)
+    b64_out.finish();
+        
+    // compare the contents of the outputstream with the expected encoded string
+    assertEquals(strwriter.toString(), str_encoded);	
+  }
+  
+  /**
+   *
+   *	Writes str (after converting to an array of bytes) to a Base64OutputStream 
+   *	and compares the resulting output stream contents with the expected encoded 
+   *	string.  
+   *
+   *	@param	str			the decoded string
+   *	@param	str_encoded	the encoded string
+   *
+   **/ 	
+  private void _testWriteArray(String str, String str_encoded) throws IOException
+  {	
+    // create a Base64OutputStream 
+    StringWriter strwriter = new StringWriter(); 
+    BufferedWriter buffwriter = new BufferedWriter(strwriter);
+    Base64OutputStream b64_out = new Base64OutputStream(buffwriter);
+    
+    // convert str into an array of bytes
+    byte[] b = str.getBytes();
+    
+    // write out the array to the output stream
+    b64_out.write(b, 0, b.length);
+    // append padding chars if necessary
+    b64_out.finish();
+    
+    // 		System.out.println("testwriteArray,  expected encoding:" + str_encoded);    
+    //       	System.out.println("testwriteArray, output of encoding:" + strwriter.toString());
+    
+    // compare the contents of the outputstream with the expected encoded string
+    assertEquals(strwriter.toString(), str_encoded);
+  }
 } // end Base64OutputStreamTest class

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreResponseStateManager.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreResponseStateManager.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreResponseStateManager.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreResponseStateManager.java Tue Nov 14 14:39:15 2006
@@ -92,10 +92,11 @@
     output.writeObject(serializedView.getStructure());
     output.writeObject(serializedView.getState());
 
-    zip.finish();
-
-    b64_out.finish();
-    bw.flush();
+    // this will flush the ObjectOutputStream, and close the GZIP stream, which
+    // will call finish() on the GZIP stream, and then close the B64 stream,
+    // which will cause it to write out the proper padding, and then close
+    // the BufferedWriter which will also cause it to flush:
+    output.close();
 
     String retVal = sw.toString();
 

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/DesktopTableRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/DesktopTableRenderer.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/DesktopTableRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/DesktopTableRenderer.java Tue Nov 14 14:39:15 2006
@@ -973,7 +973,11 @@
     {
       if (hidden[i] != TableRenderingContext.NORMAL_COLUMN)
         continue;
-      UIXColumn column = (UIXColumn) children.get(i);
+      UIComponent child = children.get(i);
+      if (!(child instanceof UIXColumn))
+        continue;
+
+      UIXColumn column = (UIXColumn) child;
       boolean isRowHeader = Boolean.TRUE.equals(
             column.getAttributes().get(CoreColumn.ROW_HEADER_KEY.getName()));
       if (!isRowHeader)

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/TreeTableRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/TreeTableRenderer.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/TreeTableRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/TreeTableRenderer.java Tue Nov 14 14:39:15 2006
@@ -29,6 +29,7 @@
 import org.apache.myfaces.trinidad.bean.PropertyKey;
 import org.apache.myfaces.trinidad.component.CollectionComponent;
 import org.apache.myfaces.trinidad.component.UIXHierarchy;
+import org.apache.myfaces.trinidad.component.UIXTree;
 import org.apache.myfaces.trinidad.component.UIXTreeTable;
 import org.apache.myfaces.trinidad.component.core.data.CoreTreeTable;
 import org.apache.myfaces.trinidad.context.RequestContext;
@@ -159,6 +160,9 @@
       _LOG.warning("'nodeStamp' facet missing!");
       return;
     }
+
+    TreeUtils.setDefaultFocusRowKey((UIXTree) component);
+    TreeUtils.expandFocusRowKey((UIXTree) component);
 
     super.encodeAll(context, arc, component, bean);
 

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaTableRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaTableRenderer.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaTableRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaTableRenderer.java Tue Nov 14 14:39:15 2006
@@ -391,8 +391,12 @@
     {
       if (hidden[currCol] == TableRenderingContext.NORMAL_COLUMN)
       {
-        UIXColumn column =
-          (UIXColumn) component.getChildren().get(currCol);
+        UIComponent child = 
+          (UIComponent) component.getChildren().get(currCol);
+        if (!(child instanceof UIXColumn))
+          continue;
+
+        UIXColumn column = (UIXColumn) child;
         boolean isRowHeader = Boolean.TRUE.equals(
             column.getAttributes().get(CoreColumn.ROW_HEADER_KEY.getName()));
         if (!isRowHeader)
@@ -434,7 +438,12 @@
     {
       if (hidden[j] != TableRenderingContext.NORMAL_COLUMN)
         continue;
-      UIXColumn column = (UIXColumn) component.getChildren().get(j);
+      UIComponent child = 
+        (UIComponent) component.getChildren().get(j);
+      if (!(child instanceof UIXColumn))
+        continue;
+
+      UIXColumn column = (UIXColumn) child;
       boolean isRowHeader = Boolean.TRUE.equals(
         column.getAttributes().get(CoreColumn.ROW_HEADER_KEY.getName()));
       if (!isRowHeader)

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/skin/PdaHtmlSkin.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/skin/PdaHtmlSkin.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/skin/PdaHtmlSkin.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/skin/PdaHtmlSkin.java Tue Nov 14 14:39:15 2006
@@ -19,6 +19,7 @@
 import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SkinSelectors;
 import org.apache.myfaces.trinidadinternal.skin.icon.ContextImageIcon;
 import org.apache.myfaces.trinidadinternal.skin.icon.NullIcon;
+import org.apache.myfaces.trinidadinternal.skin.icon.ReferenceIcon;
 import org.apache.myfaces.trinidadinternal.skin.icon.TextIcon;
 
 /**
@@ -61,12 +62,39 @@
     SkinSelectors.PATH_SEPARATOR_ICON_ALIAS_NAME,
       new TextIcon("\u00a0>\u00a0"),
 
+    // define icons
+    //PH: HideShow Icons. showDetail prompt facet should add a link so that
+    //it can be expanded; on desktop there is an arrow the user can click to
+    //expand regardless of what the prompt is, but on PDA we normally cause the
+    //default Hide/Show text to be a link; since the prompt facet can be
+    //anything we need to add an ICON like the desktop. However, unicode
+    //characters do not work for Pocket IE and IE Mobile. Therefore, create
+    //icons from text [+] [-]
+
+    SkinSelectors.DETAIL_DISCLOSED_ICON_ALIAS_NAME,
+      new TextIcon("[-]",
+                    null,
+                    SkinSelectors.HIDE_SHOW_DISCLOSED_SYMBOL_STYLE_CLASS,
+                    null),
+
+    SkinSelectors.DETAIL_UNDISCLOSED_ICON_ALIAS_NAME,
+      new TextIcon("[+]",
+                    null,
+                    SkinSelectors.HIDE_SHOW_DISCLOSED_SYMBOL_STYLE_CLASS,
+                    null),
+
+    SkinSelectors.AF_SHOW_DETAIL_DISCLOSED_ICON_NAME,
+      new ReferenceIcon(SkinSelectors.DETAIL_DISCLOSED_ICON_ALIAS_NAME),
+
+    SkinSelectors.AF_SHOW_DETAIL_UNDISCLOSED_ICON_NAME,
+      new ReferenceIcon(SkinSelectors.DETAIL_UNDISCLOSED_ICON_ALIAS_NAME),
+      
     SkinSelectors.AF_SHOW_DETAIL_HEADER_SD_DISCLOSED_ICON_NAME,
       new TranslatedTextIcon("af_showDetailHeader.DISCLOSED"),
-      SkinSelectors.AF_SHOW_DETAIL_HEADER_SD_UNDISCLOSED_ICON_NAME,
+    SkinSelectors.AF_SHOW_DETAIL_HEADER_SD_UNDISCLOSED_ICON_NAME,
       new TranslatedTextIcon("af_showDetailHeader.UNDISCLOSED"),
       
-   // define icons
+    // define icons
     SkinSelectors.AF_SELECT_INPUT_DATE_LAUNCH_ICON_NAME,
       new ContextImageIcon("adf/images/dp.gif", 
                            "adf/images/dprtl.gif",

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TableRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TableRenderer.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TableRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TableRenderer.java Tue Nov 14 14:39:15 2006
@@ -38,6 +38,7 @@
 import org.apache.myfaces.trinidad.component.core.data.CoreColumn;
 import org.apache.myfaces.trinidad.component.core.data.CoreTable;
 import org.apache.myfaces.trinidad.context.Agent;
+import org.apache.myfaces.trinidad.context.FormData;
 import org.apache.myfaces.trinidad.context.RequestContext;
 import org.apache.myfaces.trinidad.event.RowDisclosureEvent;
 import org.apache.myfaces.trinidad.event.RangeChangeEvent;
@@ -231,10 +232,11 @@
   @Override
   protected void encodeAll(
     FacesContext        context,
-    RenderingContext arc,
+    RenderingContext    arc,
     UIComponent         component,
     FacesBean           bean) throws IOException
   {
+
     // save current skin resource map, if any, on the local property
     Map<String, String> oldSkinResourceMap = arc.getSkinResourceKeyMap();
 
@@ -285,15 +287,21 @@
       renderSingleRow(context, arc, tContext, component);
 
       String tid = tContext.getTableId();
-      if (arc.getFormData() != null)
+      FormData formData = arc.getFormData();
+      if (formData != null)
       {
+        // Add sorting parameters.
+        // =-=AdamWiner FIXME: only really needed with sorting.
+        formData.addNeededValue(XhtmlConstants.STATE_PARAM);
+        formData.addNeededValue(XhtmlConstants.VALUE_PARAM);
+
         rw.startElement(XhtmlConstants.SCRIPT_ELEMENT, null);
         renderScriptDeferAttribute(context, arc);
         // Bug #3426092:
         // render the type="text/javascript" attribute in accessibility mode
         renderScriptTypeAttribute(context, arc);
 
-        String formName = arc.getFormData().getName();
+        String formName = formData.getName();
 
         rw.writeText(tContext.getJSVarName()+"="+
                      TreeUtils.createNewJSCollectionComponentState(formName, tid)+";", null);
@@ -344,15 +352,6 @@
                                     tContext.getTableId() + ":rangeStart",
                                     IntegerUtils.getString(first));
 
-      /* =-=AEW ENABLE IF WE REBUILD THE SAVE MODEL
-      if (BodyRenderer.__isSaveModelActive(context) &&
-          (tContext.getSelection() != null) &&
-          !tContext.getRowData().isEmptyTable())
-      {
-        _writeNavExclude(tContext);
-      }
-      */
-
       rw.endElement("div");
     }
     finally
@@ -484,7 +483,11 @@
       String selection = (String)
         treeTable.getAttributes().get(CoreTable.ROW_SELECTION_KEY.getName());
 
-      UIXColumn column = (UIXColumn) children.get(i);
+      UIComponent child = children.get(i);
+      if (!(child instanceof UIXColumn))
+        continue;
+
+      UIXColumn column = (UIXColumn) child;
       boolean isRowHeader = Boolean.TRUE.equals(
             column.getAttributes().get(CoreColumn.ROW_HEADER_KEY.getName()));
       if (isRowHeader)

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeUtils.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeUtils.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeUtils.java Tue Nov 14 14:39:15 2006
@@ -16,6 +16,9 @@
 package org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table;
 
 import java.io.IOException;
+
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 import javax.faces.component.UIComponent;
@@ -33,6 +36,7 @@
 import org.apache.myfaces.trinidad.logging.TrinidadLogger;
 import org.apache.myfaces.trinidad.model.RowKeySet;
 import org.apache.myfaces.trinidad.context.RenderingContext;
+import org.apache.myfaces.trinidad.context.RequestContext;
 import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.HiddenLabelUtils;
 import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SkinSelectors;
 import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.TableRenderer;
@@ -102,6 +106,53 @@
     else
       return path;
   }
+
+  /**
+   * Utility method to expand the focusRowKey during intial
+   * rendering.
+   * @param tree
+   */
+  public static void expandFocusRowKey(UIXTree tree)
+  {
+    if (!RequestContext.getCurrentInstance().isPostback())
+    {
+      Object focusRowKey = tree.getFocusRowKey();
+      if ( focusRowKey != null)
+      {
+        List<Object> focusPath = 
+          new ArrayList<Object>(tree.getAllAncestorContainerRowKeys(focusRowKey));
+        focusPath.add(focusRowKey);
+        int size = focusPath.size();
+        RowKeySet disclosedRowKeys = tree.getDisclosedRowKeys();
+        for ( int i = 0 ; i < size; i++)
+        {
+          Object subkey = focusPath.get(i);
+          disclosedRowKeys.add(subkey);
+        }     
+      }
+    }
+  }
+
+  /**
+   * Utility method to default the focusRowKey to the root node, if
+   * it is not set
+   * @param tree
+   */
+  public static void setDefaultFocusRowKey(UIXTree tree)
+  {
+    Object path = tree.getFocusRowKey();
+    if (path == null)
+    {
+      Object oldKey = tree.getRowKey();
+      tree.setRowKey(null);
+      tree.setRowIndex(0);
+      if (tree.isRowAvailable())
+      {
+        tree.setFocusRowKey(tree.getRowKey());
+      }
+      tree.setRowKey(oldKey);
+    }    
+  }  
 
   /**
    * writes the JS function needed for generating tree events.

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/CorePanelAccordionRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/CorePanelAccordionRenderer.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/CorePanelAccordionRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/CorePanelAccordionRenderer.java Tue Nov 14 14:39:15 2006
@@ -27,6 +27,7 @@
 import org.apache.myfaces.trinidad.logging.TrinidadLogger;
 import org.apache.myfaces.trinidad.render.RenderUtils;
 import org.apache.myfaces.trinidad.context.RenderingContext;
+import org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderer;
 import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SkinSelectors;
 import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.XhtmlRenderer;
 import org.apache.myfaces.trinidadinternal.ui.UIConstants;
@@ -467,24 +468,46 @@
 
     if (pprEnabled)
     {
-      // encode PPR targets first.
-      String encodedPartialTargets =
-        ShowOneUtils.getEncodedPartialTargets(component, compId);
-
-      StringBuilder onClickHandlerBuff =
-          new StringBuilder("_submitPartialChange('")
-          .append(formName)
-          .append("',")
-          .append(validate)
-          .append(", {partialTargets:'")
-          .append(encodedPartialTargets)
-          .append("', event:'")
-          .append(event)
-          .append("',source:'")
-          .append(detailItemId)
-          .append("'});return false;");
+        //PPR on PocketIE and IE Mobile does not work properly. Therefore, 
+        //do a full page submission. Note that BlackBerry does not get into
+        //this piece of code because it is not pprEnabled.
+        if(CoreRenderer.isPDA(RenderingContext.getCurrentInstance())) 
+        {
+          //PH: Previous Code had event set to 'show' (event:'show')
+          //at all times. As a result a showDetail item will 'show'
+          //but won't 'hide'. Therefore, I changed it to event:event.
+          StringBuilder onClickHandlerBuff = new StringBuilder("submitForm('")
+                                      .append(formName)
+                                      .append("',")
+                                      .append(validate)
+                                      .append(", {event:'")
+                                      .append(event)
+                                      .append("',source:'")
+                                      .append(detailItemId)
+                                      .append("'});return false;");
+          onClickHandler = onClickHandlerBuff.toString();
+        }
+        else
+        {
+          // encode PPR targets first.
+          String encodedPartialTargets =
+            ShowOneUtils.getEncodedPartialTargets(component, compId);
+
+          StringBuilder onClickHandlerBuff =
+              new StringBuilder("_submitPartialChange('")
+              .append(formName)
+              .append("',")
+              .append(validate)
+              .append(", {partialTargets:'")
+              .append(encodedPartialTargets)
+              .append("', event:'")
+              .append(event)
+              .append("',source:'")
+              .append(detailItemId)
+              .append("'});return false;");
 
-      onClickHandler = onClickHandlerBuff.toString();
+          onClickHandler = onClickHandlerBuff.toString();            
+        }     
     }
     else
     {

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/TreeRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/TreeRenderer.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/TreeRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/TreeRenderer.java Tue Nov 14 14:39:15 2006
@@ -15,6 +15,7 @@
  */
 package org.apache.myfaces.trinidadinternal.renderkit.uix;
 
+import java.io.IOException;
 import java.util.Collections;
 import java.util.Map;
 
@@ -36,6 +37,18 @@
  */
 public class TreeRenderer extends UINodeRendererBase
 {
+  
+  @Override
+  public void encodeBegin(FacesContext context,
+                          UIComponent component)
+    throws IOException
+  {
+    TreeUtils.expandFocusRowKey((UIXTree) component);
+    super.encodeBegin(context, component);
+  }
+  
+
+  
   /**
    * @todo do not mess with selection here. queue an event.
    */

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/resource/CoreCommonScriptsResourceLoader.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/resource/CoreCommonScriptsResourceLoader.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/resource/CoreCommonScriptsResourceLoader.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/resource/CoreCommonScriptsResourceLoader.java Tue Nov 14 14:39:15 2006
@@ -73,21 +73,21 @@
   // List of all libraries
   static private final String[] _DEBUG_LIBRARIES =
   {
-    "META-INF/adf/jsDebug/CharSets.js",
-    "META-INF/adf/jsDebug/CoreFormat.js",
-    "META-INF/adf/jsDebug/DateField.js",
-    "META-INF/adf/jsDebug/DateFieldFormat.js",
-    "META-INF/adf/jsDebug/DateFormat.js",
-    "META-INF/adf/jsDebug/Locale.js",
-    "META-INF/adf/jsDebug/Core.js",
-    "META-INF/adf/jsDebug/Window.js",
-    "META-INF/adf/jsDebug/PPR.js",
-    "META-INF/adf/jsDebug/TableProxy.js",
-    "META-INF/adf/jsDebug/Poll.js",
-    "META-INF/adf/jsDebug/ColorField.js",
-    "META-INF/adf/jsDebug/ColorFieldFormat.js",
-    "META-INF/adf/jsDebug/ColorFormat.js",
-    "META-INF/adf/jsDebug/Shuttle.js",
+    "META-INF/adf/jsLibsDebug/CharSets.js",
+    "META-INF/adf/jsLibsDebug/CoreFormat.js",
+    "META-INF/adf/jsLibsDebug/DateField.js",
+    "META-INF/adf/jsLibsDebug/DateFieldFormat.js",
+    "META-INF/adf/jsLibsDebug/DateFormat.js",
+    "META-INF/adf/jsLibsDebug/Locale.js",
+    "META-INF/adf/jsLibsDebug/Core.js",
+    "META-INF/adf/jsLibsDebug/Window.js",
+    "META-INF/adf/jsLibsDebug/PPR.js",
+    "META-INF/adf/jsLibsDebug/TableProxy.js",
+    "META-INF/adf/jsLibsDebug/Poll.js",
+    "META-INF/adf/jsLibsDebug/ColorField.js",
+    "META-INF/adf/jsLibsDebug/ColorFieldFormat.js",
+    "META-INF/adf/jsLibsDebug/ColorFormat.js",
+    "META-INF/adf/jsLibsDebug/Shuttle.js",
   };
 
   static private final String _NEWLINE_SEPARATOR = "\n";

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/pda/MessageBoxRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/pda/MessageBoxRenderer.java?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/pda/MessageBoxRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/pda/MessageBoxRenderer.java Tue Nov 14 14:39:15 2006
@@ -1,12 +1,12 @@
 /*
  * Copyright  2000-2006 The Apache Software Foundation.
- * 
+ *
  * 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.
@@ -17,6 +17,8 @@
 
 import java.io.IOException;
 
+import java.util.Iterator;
+
 import javax.faces.application.FacesMessage;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
@@ -30,6 +32,10 @@
 import org.apache.myfaces.trinidadinternal.ui.laf.base.desktop.MessageBoxUtils;
 import org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.XhtmlLafRenderer;
 import org.apache.myfaces.trinidad.skin.Icon;
+import org.apache.myfaces.trinidadinternal.ui.BaseMutableUINode;
+import org.apache.myfaces.trinidadinternal.ui.laf.base.desktop.MessageWrapper;
+import org.apache.myfaces.trinidadinternal.util.MessageUtils;
+
 
 
 /**
@@ -47,8 +53,12 @@
     UINode           node
     ) throws IOException
   {
-
-    if (MessageBoxUtils.sIsRendered(context, node, _allMessages))
+    //PH:set whether or not only global messages be rendererd depending on
+    //the globalOnly attribute's value
+    
+    if (MessageBoxUtils.sIsRendered(context, node, 
+                        !Boolean.TRUE.equals(getAttributeValue(context, node,
+                                                    GLOBAL_ONLY_ATTR, null))))
     {
       super.prerender(context, node);
       context.setLocalProperty( _MB_IS_RENDERED, Boolean.TRUE);
@@ -98,7 +108,8 @@
 
   }
 
-  private static final void _renderLine(
+  //PH:No reason for _renderLine to be static
+  private final void _renderLine(
     UIXRenderingContext context,
     UINode           node,
     String           messageStyle,
@@ -123,6 +134,13 @@
     text.setStyleClass(messageStyle);
     text.setAttributeValue(TEXT_ATTR, getTranslatedString(context, messageKey) );
 
+    //PH: Create BODY Styling for the entire MessageBox.
+	writer.startElement("table", null);
+	renderStyleClassAttribute(context, "af|messages::body");
+	writer.startElement("tr", null);
+	writer.startElement("td", null);
+
+
     writer.startElement("b", node.getUIComponent());
     text.render(context);
 
@@ -135,7 +153,171 @@
     }
 
     writer.endElement("b");
-    sep.render(context, node);
+    //PH:Do not render a separator. User may not necessary place a message
+    //component at the top of the page. Moreover, styling should not be 
+    //hard-coded like this.Application developer should have all the control 
+    //over styling. I am using a Background instead of a separator to make a 
+    //message box distinct from the rest of the content in the application page.
+    //sep.render(context, node);
+
+    //PH:start rendering global and per-component messages
+    boolean useList = MessageBoxUtils.sMultipleMessages(context, 
+                           !Boolean.TRUE.equals(getAttributeValue(context, node,
+                                                    GLOBAL_ONLY_ATTR, null))
+    );
+
+    if (useList)
+    {
+      // render the message list
+      writer.startElement("ol", null);
+    }
+    else
+    {
+      // render a div
+      writer.startElement("div", null);
+    }
+
+    // oracle pda's renderer allows different list styles depending
+    // upon if it is a list or a div, and whether it is an error or not.
+    // should we do the same here? For now, don't worry about it.
+    renderStyleClassAttribute(context, "af|messages::list");
+
+    // Do the global messages first
+    _renderMessages(context, writer, true, useList);
+
+    // Then client component messages
+    if (!Boolean.TRUE.equals(getAttributeValue(context, node,
+                                                    GLOBAL_ONLY_ATTR, null)))
+      _renderMessages(context, writer, false, useList);
+
+    if (useList)
+      writer.endElement("ol");
+    else
+    {
+      writer.endElement("div");
+    }
+
+    writer.endElement("td");
+    writer.endElement("tr");
+    writer.endElement("table");
+  }
+
+  private void _renderMessages(
+    UIXRenderingContext context,
+    ResponseWriter writer,
+    boolean isGlobal,
+    boolean useList
+    ) throws IOException
+  {
+    BaseMutableUINode currentChild = null;
+    String summary;
+    String detail;
+
+    Iterator<MessageWrapper> itr = (isGlobal
+                    ? MessageBoxUtils.sGetGlobalsIterator(context)
+                    : MessageBoxUtils.sGetClientsIterator(context));
+
+    while (itr.hasNext())
+    {
+      MessageWrapper msg = itr.next();
+
+      if (useList)
+        writer.startElement("li", null);
+
+      summary = msg.getSummary();
+      detail = msg.getDetail();
+
+      if (isGlobal)
+        _writeGlobalMsg(context, writer, summary, detail);
+      else
+        currentChild = _writeClientMsg(context, writer, summary,
+                                       msg, currentChild);
+
+      if (useList)
+        writer.endElement("li");
+    }
+  }
+
+  private void _writeGlobalMsg(
+    UIXRenderingContext context,
+    ResponseWriter writer,
+    String summary,
+    String detail
+    ) throws IOException
+  {
+    String text = MessageUtils.getGlobalMessage(context, summary, detail);
+    if (isTextFormatted(text))
+      renderFormattedText(context, text);
+    else
+      writer.writeText(text, null);
+  }
+
+  private BaseMutableUINode _writeClientMsg(
+    UIXRenderingContext context,
+    ResponseWriter writer,
+    String summary,
+    MessageWrapper msg,
+    BaseMutableUINode currentChild
+    ) throws IOException
+  {
+    String description;
+
+    if (summary != null)
+    {
+      String pattern;
+      String[] parameters;
+
+      parameters = new String[] {summary};
+      pattern = getTranslatedString(context, "af_messages.LIST_FORMAT_private");
+      description = formatString(context, pattern, parameters);
+    }
+    else
+    {
+      description = "";
+    }
+
+    // get (or generate) the current child
+    currentChild = _generateChild(msg, currentChild);
+    currentChild.render(context);
+
+    if (isTextFormatted(summary))
+      renderFormattedText(context, description);
+    else
+      writer.writeText(description, null);
+
+    return currentChild;
+  }
+
+  private BaseMutableUINode _generateChild(
+    MessageWrapper   msg,
+    BaseMutableUINode cachedChild)
+  {
+    if (cachedChild == null)
+      cachedChild = new BaseMutableUINode(MARLIN_NAMESPACE, LINK_NAME);
+
+    // link text
+    String label = msg.getLabel();
+    cachedChild.setAttributeValue(TEXT_ATTR, label);
+
+    String anchor = null;
+    String summary = null;
+
+    if (label != null)
+    {
+      // If the text is null, no need to actually collect these values
+      anchor = MessageUtils.getAnchor(msg.getId().toString());
+      if (anchor != null)
+        anchor = "#"+anchor;
+
+      summary = msg.getSummary();
+    }
+
+    // However, we always have to update the anchor and description because
+    // they were possibly set the last time this link was used. Even if they
+    // don't render in the page, they'll be in the HTML.
+    cachedChild.setAttributeValue(DESTINATION_ATTR, anchor);
+    cachedChild.setAttributeValue(LONG_DESC_ATTR, summary);
+    return cachedChild;
   }
 
   private String _getMessageTextStyle(
@@ -200,9 +382,6 @@
   // Private variables
   //
 
-  // On PDA we render only global messages
-  private final static boolean _allMessages = false;
-
   // local message types
   static private final int _INFORMATION_TYPE  = 0;
   static private final int _WARNING_TYPE      = 1;
@@ -226,15 +405,5 @@
 
 
   private static final Object _MB_IS_RENDERED = new Object();
-  // Create a Separator renderer, but don't render the ID
-  // =-=AEW This hack is necessary for RenderKit test passing;
-  // it can be cleaned up as long as you fix the RenderKit test too.
-  private static final SeparatorRenderer sep = new SeparatorRenderer()
-  {
-    @Override
-    protected void renderID(UIXRenderingContext context, UINode node)
-    {
-      ;
-    }
-  };
+
 }

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/resources/META-INF/adf/styles/simple-pda.xss
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/resources/META-INF/adf/styles/simple-pda.xss?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/resources/META-INF/adf/styles/simple-pda.xss (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/resources/META-INF/adf/styles/simple-pda.xss Tue Nov 14 14:39:15 2006
@@ -125,6 +125,11 @@
     <includeStyle name="AFDarkForeground"/>
   </style>  
   
+  <!--PH:include styling for body background of a message box-->
+  <style selector="af|messages::body">
+      <includeStyle name="AFLightAccentBackground"/>
+  </style>  
+  
     <!-- Page Sub Header Text TBD -->
     <!-- Page Content Header TBD -->
     <!-- Instruction Text == .AFInstructionText, OK -->

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messages-minimalPPC-golden.xml
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messages-minimalPPC-golden.xml?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messages-minimalPPC-golden.xml (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messages-minimalPPC-golden.xml Tue Nov 14 14:39:15 2006
@@ -1,151 +1,337 @@
-<results>&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-<!-- MessageTest[ id:null,ERROR ]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-<!--AttributeTest[id,id_val]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-<!--AttributeTest[inlineStyle,background-color:red]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-           style="background-color:red"
-          >
-        
-      </hr>
-<!--AttributeTest[message,message_val]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-        <br
-            >
-          
-        </br>message_val
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-<!--AttributeTest[messageType,error]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-<!--AttributeTest[shortDesc,shortDesc_val]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-           title="shortDesc_val"
-          >
-        
-      </hr>
-<!--AttributeTest[styleClass,styleClass_val]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           class="styleClass_val"
-           size="1"
-          >
-        
-      </hr>
-<!--AttributeTest[text,text_val]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-</results>
+<results>&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!-- MessageTest[ id:null,ERROR ]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[id,id_val]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[inlineStyle,background-color:red]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[message,message_val]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+              <br
+                  >
+                
+              </br>message_val
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[messageType,error]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[shortDesc,shortDesc_val]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[styleClass,styleClass_val]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[text,text_val]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+</results>

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messagesError-minimalPPC-golden.xml
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messagesError-minimalPPC-golden.xml?view=diff&rev=475027&r1=475026&r2=475027
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messagesError-minimalPPC-golden.xml (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/messagesError-minimalPPC-golden.xml Tue Nov 14 14:39:15 2006
@@ -1,151 +1,337 @@
-<results>&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-<!-- MessageTest[ id:null,ERROR ]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-<!--AttributeTest[id,id_val]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-<!--AttributeTest[inlineStyle,background-color:red]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-           style="background-color:red"
-          >
-        
-      </hr>
-<!--AttributeTest[message,message_val]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-        <br
-            >
-          
-        </br>message_val
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-<!--AttributeTest[messageType,error]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-<!--AttributeTest[shortDesc,shortDesc_val]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-           title="shortDesc_val"
-          >
-        
-      </hr>
-<!--AttributeTest[styleClass,styleClass_val]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           class="styleClass_val"
-           size="1"
-          >
-        
-      </hr>
-<!--AttributeTest[text,text_val]-->
-&nbsp;
-      <b
-          >
-        
-        <span
-             class="af_messages_error"
-            >
-          Error
-        </span>
-      </b>
-      <hr
-           size="1"
-          >
-        
-      </hr>
-</results>
+<results>&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!-- MessageTest[ id:null,ERROR ]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[id,id_val]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[inlineStyle,background-color:red]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[message,message_val]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+              <br
+                  >
+                
+              </br>message_val
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[messageType,error]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[shortDesc,shortDesc_val]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[styleClass,styleClass_val]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+<!--AttributeTest[text,text_val]-->
+&nbsp;
+      <table
+           class="af_messages_body"
+          >
+        
+        <tr
+            >
+          
+          <td
+              >
+            
+            <b
+                >
+              
+              <span
+                   class="af_messages_error"
+                  >
+                Error
+              </span>
+            </b>
+            <ol
+                 class="af_messages_list"
+                >
+              
+              <li
+                  >
+                message summary - message detail
+              </li>
+              <li
+                  >
+                 - message summary
+              </li>
+            </ol>
+          </td>
+        </tr>
+      </table>
+</results>