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:12:33 UTC

svn commit: r1003505 - in /pivot/branches/1.5.x: 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:12:33 2010
New Revision: 1003505

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

Modified:
    pivot/branches/1.5.x/tutorials/src/org/apache/pivot/tutorials/text/SuggestionPopups.java
    pivot/branches/1.5.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java
    pivot/branches/1.5.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java
    pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/ListButton.java
    pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java
    pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java

Modified: pivot/branches/1.5.x/tutorials/src/org/apache/pivot/tutorials/text/SuggestionPopups.java
URL: http://svn.apache.org/viewvc/pivot/branches/1.5.x/tutorials/src/org/apache/pivot/tutorials/text/SuggestionPopups.java?rev=1003505&r1=1003504&r2=1003505&view=diff
==============================================================================
--- pivot/branches/1.5.x/tutorials/src/org/apache/pivot/tutorials/text/SuggestionPopups.java (original)
+++ pivot/branches/1.5.x/tutorials/src/org/apache/pivot/tutorials/text/SuggestionPopups.java Fri Oct  1 12:12:33 2010
@@ -126,6 +126,8 @@ public class SuggestionPopups implements
 
         stateTextInput.getTextInputCharacterListeners().add(textInputCharacterListener);
 
+        suggestionPopup.setListSize(4);
+
         window.open(display);
         stateTextInput.requestFocus();
     }

Modified: pivot/branches/1.5.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java
URL: http://svn.apache.org/viewvc/pivot/branches/1.5.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java?rev=1003505&r1=1003504&r2=1003505&view=diff
==============================================================================
--- pivot/branches/1.5.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java (original)
+++ pivot/branches/1.5.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java Fri Oct  1 12:12:33 2010
@@ -670,17 +670,6 @@ public class TerraListButtonSkin extends
                     int width = getWidth();
                     int height = getHeight();
 
-                    // TODO
-                    /*
-                    if (listButton.isSplit()) {
-                        Bounds triggerBounds = new Bounds(Math.max(width - TRIGGER_WIDTH - 1, 0), 0,
-                            TRIGGER_WIDTH + 1, Math.max(height, 0));
-                        if (!triggerBounds.contains(mouseDownX, mouseDownY)) {
-                            return;
-                        }
-                    }
-                    */
-
                     // Adjust for list size
                     int listSize = listButton.getListSize();
                     if (listSize == -1) {

Modified: pivot/branches/1.5.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java
URL: http://svn.apache.org/viewvc/pivot/branches/1.5.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java?rev=1003505&r1=1003504&r2=1003505&view=diff
==============================================================================
--- pivot/branches/1.5.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java (original)
+++ pivot/branches/1.5.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java Fri Oct  1 12:12:33 2010
@@ -265,12 +265,30 @@ public class TerraSuggestionPopupSkin ex
     public void windowOpened(Window window) {
         super.windowOpened(window);
 
+        SuggestionPopup suggestionPopup = (SuggestionPopup)window;
+
+        // Adjust for list size
+        int listSize = suggestionPopup.getListSize();
+        if (listSize == -1) {
+            suggestionListViewBorder.setPreferredHeight(-1);
+        } else {
+            if (!suggestionListViewBorder.isPreferredHeightSet()) {
+                ListView.ItemRenderer itemRenderer = suggestionListView.getItemRenderer();
+                int borderHeight = itemRenderer.getPreferredHeight(-1) * listSize + 2;
+
+                if (suggestionListViewBorder.getPreferredHeight() > borderHeight) {
+                    suggestionListViewBorder.setPreferredHeight(borderHeight);
+                } else {
+                    suggestionListViewBorder.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);
@@ -325,6 +343,11 @@ public class TerraSuggestionPopupSkin ex
     }
 
     @Override
+    public void listSizeChanged(SuggestionPopup suggestionPopup, int previousListSize) {
+        // No-op
+    }
+
+    @Override
     public Vote previewSuggestionPopupClose(final SuggestionPopup suggestionPopup, final boolean result) {
         if (closeTransition == null) {
             suggestionListViewBorder.setEnabled(false);

Modified: pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/ListButton.java
URL: http://svn.apache.org/viewvc/pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/ListButton.java?rev=1003505&r1=1003504&r2=1003505&view=diff
==============================================================================
--- pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/ListButton.java (original)
+++ pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/ListButton.java Fri Oct  1 12:12:33 2010
@@ -429,7 +429,7 @@ public class ListButton extends Button {
         int previousListSize = this.listSize;
         if (previousListSize != listSize) {
             this.listSize = listSize;
-
+            listButtonListeners.listSizeChanged(this, previousListSize);
         }
     }
 

Modified: pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java
URL: http://svn.apache.org/viewvc/pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java?rev=1003505&r1=1003504&r2=1003505&view=diff
==============================================================================
--- pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java (original)
+++ pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java Fri Oct  1 12:12:33 2010
@@ -51,6 +51,13 @@ public class SuggestionPopup extends Win
                 listener.selectedIndexChanged(suggestionPopup, previousSelectedIndex);
             }
         }
+
+        @Override
+        public void listSizeChanged(SuggestionPopup suggestionPopup, int previousListSize) {
+            for (SuggestionPopupListener listener : this) {
+                listener.listSizeChanged(suggestionPopup, previousListSize);
+            }
+        }
     }
 
     private static class SuggestionPopupStateListenerList extends ListenerList<SuggestionPopupStateListener>
@@ -87,6 +94,7 @@ public class SuggestionPopup extends Win
     private List<?> suggestions;
     private ListView.ItemRenderer suggestionRenderer;
     private int selectedIndex = -1;
+    private int listSize = -1;
 
     private boolean result = false;
 
@@ -210,6 +218,22 @@ public class SuggestionPopup extends Win
         return item;
     }
 
+    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;
+            suggestionPopupListeners.listSizeChanged(this, previousListSize);
+        }
+    }
+
     @Override
     public final void open(Display display, Window owner) {
         if (textInput == null) {

Modified: pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java
URL: http://svn.apache.org/viewvc/pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java?rev=1003505&r1=1003504&r2=1003505&view=diff
==============================================================================
--- pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java (original)
+++ pivot/branches/1.5.x/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java Fri Oct  1 12:12:33 2010
@@ -40,6 +40,10 @@ public interface SuggestionPopupListener
         public void selectedIndexChanged(SuggestionPopup suggestionPopup,
             int previousSelectedIndex) {
         }
+
+        @Override
+        public void listSizeChanged(SuggestionPopup suggestionPopup, int previousListSize) {
+        }
     }
 
     /**
@@ -66,4 +70,12 @@ public interface SuggestionPopupListener
      * @param previousSelectedIndex
      */
     public void selectedIndexChanged(SuggestionPopup suggestionPopup, int previousSelectedIndex);
+
+    /**
+     * Called when a suggestion popup's list size has changed.
+     *
+     * @param suggestionPopup
+     * @param previousListSize
+     */
+    public void listSizeChanged(SuggestionPopup suggestionPopup, int previousListSize);
 }