You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/10/01 14:02:47 UTC

svn commit: r1003503 - in /pivot/trunk: tutorials/src/org/apache/pivot/tutorials/text/ wtk-terra/src/org/apache/pivot/wtk/skin/terra/ wtk/src/org/apache/pivot/wtk/

Author: gbrown
Date: Fri Oct  1 12:02:46 2010
New Revision: 1003503

URL: http://svn.apache.org/viewvc?rev=1003503&view=rev
Log:
Add a "listSize" property to SuggestionPopup (similar to ListButton).

Modified:
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/text/SuggestionPopups.java
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/text/SuggestionPopups.java
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/text/SuggestionPopups.java?rev=1003503&r1=1003502&r2=1003503&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/text/SuggestionPopups.java (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/text/SuggestionPopups.java Fri Oct  1 12:02:46 2010
@@ -118,6 +118,8 @@ public class SuggestionPopups extends Wi
                 suggestionPopup.close();
             }
         });
+
+        suggestionPopup.setListSize(4);
     }
 
     @Override

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java?rev=1003503&r1=1003502&r2=1003503&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java Fri Oct  1 12:02:46 2010
@@ -303,12 +303,30 @@ public class TerraSuggestionPopupSkin ex
     public void windowOpened(Window window) {
         super.windowOpened(window);
 
+        // Adjust for list size
+        SuggestionPopup suggestionPopup = (SuggestionPopup)window;
+
+        int listSize = suggestionPopup.getListSize();
+        if (listSize == -1) {
+            listViewBorder.setPreferredHeight(-1);
+        } else {
+            if (!listViewBorder.isPreferredHeightSet()) {
+                ListView.ItemRenderer itemRenderer = listView.getItemRenderer();
+                int borderHeight = itemRenderer.getPreferredHeight(-1) * listSize + 2;
+
+                if (listViewBorder.getPreferredHeight() > borderHeight) {
+                    listViewBorder.setPreferredHeight(borderHeight);
+                } else {
+                    listViewBorder.setPreferredHeight(-1);
+                }
+            }
+        }
+
         Display display = window.getDisplay();
         display.getContainerMouseListeners().add(displayMouseListener);
 
         dropShadowDecorator.setShadowOpacity(DropShadowDecorator.DEFAULT_SHADOW_OPACITY);
 
-        SuggestionPopup suggestionPopup = (SuggestionPopup)window;
         TextInput textInput = suggestionPopup.getTextInput();
         textInput.getComponentStateListeners().add(textInputStateListener);
         textInput.getComponentKeyListeners().add(textInputKeyListener);
@@ -350,6 +368,11 @@ public class TerraSuggestionPopupSkin ex
     }
 
     @Override
+    public void listSizeChanged(SuggestionPopup suggestionPopup, int previousListSize) {
+        // No-op
+    }
+
+    @Override
     public void selectedIndexChanged(SuggestionPopup suggestionPopup, int previousSelectedIndex) {
         // No-op
     }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java?rev=1003503&r1=1003502&r2=1003503&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java Fri Oct  1 12:02:46 2010
@@ -47,6 +47,13 @@ public class SuggestionPopup extends Win
                 listener.suggestionRendererChanged(suggestionPopup, previousSuggestionRenderer);
             }
         }
+
+        @Override
+        public void listSizeChanged(SuggestionPopup suggestionPopup, int previousListSize) {
+            for (SuggestionPopupListener listener : this) {
+                listener.listSizeChanged(suggestionPopup, previousListSize);
+            }
+        }
     }
 
     private static class SuggestionPopupItemListenerList extends ListenerList<SuggestionPopupItemListener>
@@ -139,6 +146,7 @@ public class SuggestionPopup extends Win
     private List<?> suggestionData;
     private ListView.ItemRenderer suggestionRenderer;
     private int selectedIndex = -1;
+    private int listSize = -1;
 
     private boolean result = false;
 
@@ -359,6 +367,22 @@ public class SuggestionPopup extends Win
         setSelectedIndex((suggestion == null) ? -1 : ((List<Object>)suggestionData).indexOf(suggestion));
     }
 
+    public int getListSize() {
+        return listSize;
+    }
+
+    public void setListSize(int listSize) {
+        if (listSize < -1) {
+            throw new IllegalArgumentException("Invalid list size.");
+        }
+
+        int previousListSize = this.listSize;
+        if (previousListSize != listSize) {
+            this.listSize = listSize;
+
+        }
+    }
+
     @Override
     public final void open(Display display, Window owner) {
         if (textInput == null) {

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java?rev=1003503&r1=1003502&r2=1003503&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java Fri Oct  1 12:02:46 2010
@@ -35,6 +35,10 @@ public interface SuggestionPopupListener
         public void suggestionRendererChanged(SuggestionPopup suggestionPopup,
             ListView.ItemRenderer previousSuggestionRenderer) {
         }
+
+        @Override
+        public void listSizeChanged(SuggestionPopup suggestionPopup, int previousListSize) {
+        }
     }
 
     /**
@@ -53,4 +57,12 @@ public interface SuggestionPopupListener
      */
     public void suggestionRendererChanged(SuggestionPopup suggestionPopup,
         ListView.ItemRenderer previousSuggestionRenderer);
+
+    /**
+     * Called when a suggestion popup's list size has changed.
+     *
+     * @param suggestionPopup
+     * @param previousListSize
+     */
+    public void listSizeChanged(SuggestionPopup suggestionPopup, int previousListSize);
 }