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/08/17 19:03:06 UTC

svn commit: r986395 - in /pivot/trunk: demos/src/org/apache/pivot/demos/styles/ wtk-terra/src/org/apache/pivot/wtk/skin/terra/ wtk/src/org/apache/pivot/wtk/

Author: gbrown
Date: Tue Aug 17 17:03:06 2010
New Revision: 986395

URL: http://svn.apache.org/viewvc?rev=986395&view=rev
Log:
Resolve PIVOT-569 for Spinner and SuggestionPopup; resolve PIVOT-599.

Added:
    pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupSelectionListener.java
Modified:
    pivot/trunk/demos/src/org/apache/pivot/demos/styles/ColorSchemeBuilderWindow.java
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraCalendarSkin.java
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSpinnerSkin.java
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/ListButton.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/SpinnerSelectionListener.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java

Modified: pivot/trunk/demos/src/org/apache/pivot/demos/styles/ColorSchemeBuilderWindow.java
URL: http://svn.apache.org/viewvc/pivot/trunk/demos/src/org/apache/pivot/demos/styles/ColorSchemeBuilderWindow.java?rev=986395&r1=986394&r2=986395&view=diff
==============================================================================
--- pivot/trunk/demos/src/org/apache/pivot/demos/styles/ColorSchemeBuilderWindow.java (original)
+++ pivot/trunk/demos/src/org/apache/pivot/demos/styles/ColorSchemeBuilderWindow.java Tue Aug 17 17:03:06 2010
@@ -131,9 +131,9 @@ public class ColorSchemeBuilderWindow ex
 
             colorChooserButton.getColorChooserButtonSelectionListeners().add(colorChooserButtonSelectionListener);
 
-            SpinnerSelectionListener spinnerSelectionListener = new SpinnerSelectionListener() {
+            SpinnerSelectionListener spinnerSelectionListener = new SpinnerSelectionListener.Adapter() {
                 @Override
-                public void selectedIndexChanged(Spinner spinner, int previousSelectedIndex) {
+                public void selectedItemChanged(Spinner spinner, Object previousSelectedItem) {
                     int red = (Integer)redSpinner.getSelectedItem();
                     int green = (Integer)greenSpinner.getSelectedItem();
                     int blue = (Integer)blueSpinner.getSelectedItem();

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraCalendarSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraCalendarSkin.java?rev=986395&r1=986394&r2=986395&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraCalendarSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraCalendarSkin.java Tue Aug 17 17:03:06 2010
@@ -407,9 +407,9 @@ public class TerraCalendarSkin extends C
         monthSpinner.setCircular(true);
         monthSpinner.getStyles().put("sizeToContent", true);
 
-        monthSpinner.getSpinnerSelectionListeners().add(new SpinnerSelectionListener() {
+        monthSpinner.getSpinnerSelectionListeners().add(new SpinnerSelectionListener.Adapter() {
             @Override
-            public void selectedIndexChanged(Spinner spinner, int previousSelectedIndex) {
+            public void selectedItemChanged(Spinner spinner, Object previousSelectedItem) {
                 Calendar calendar = (Calendar)getComponent();
                 calendar.setMonth((Integer)spinner.getSelectedItem());
             }
@@ -419,9 +419,9 @@ public class TerraCalendarSkin extends C
         yearSpinner = new Spinner();
         yearSpinner.setSpinnerData(new NumericSpinnerData(0, Short.MAX_VALUE));
 
-        yearSpinner.getSpinnerSelectionListeners().add(new SpinnerSelectionListener() {
+        yearSpinner.getSpinnerSelectionListeners().add(new SpinnerSelectionListener.Adapter() {
             @Override
-            public void selectedIndexChanged(Spinner spinner, int previousSelectedIndex) {
+            public void selectedItemChanged(Spinner spinner, Object previousSelectedItem) {
                 Calendar calendar = (Calendar)getComponent();
                 calendar.setYear((Integer)spinner.getSelectedItem());
             }

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSpinnerSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSpinnerSkin.java?rev=986395&r1=986394&r2=986395&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSpinnerSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSpinnerSkin.java Tue Aug 17 17:03:06 2010
@@ -858,11 +858,11 @@ public class TerraSpinnerSkin extends Co
     // SpinnerSelectionListener methods
     @Override
     public void selectedIndexChanged(Spinner spinner, int previousSelectedIndex) {
-        int selectedIndex = spinner.getSelectedIndex();
+        // No-op
+    }
 
-        if (selectedIndex != previousSelectedIndex) {
-            // This was not an indirect selection change
-            invalidateContent();
-        }
+    @Override
+    public void selectedItemChanged(Spinner spinner, Object previousSelectedItem) {
+        invalidateContent();
     }
 }

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=986395&r1=986394&r2=986395&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 Tue Aug 17 17:03:06 2010
@@ -40,6 +40,7 @@ import org.apache.pivot.wtk.Point;
 import org.apache.pivot.wtk.Span;
 import org.apache.pivot.wtk.SuggestionPopup;
 import org.apache.pivot.wtk.SuggestionPopupListener;
+import org.apache.pivot.wtk.SuggestionPopupSelectionListener;
 import org.apache.pivot.wtk.SuggestionPopupStateListener;
 import org.apache.pivot.wtk.TextInput;
 import org.apache.pivot.wtk.Theme;
@@ -53,7 +54,7 @@ import org.apache.pivot.wtk.skin.WindowS
  * Terra suggestion popup skin.
  */
 public class TerraSuggestionPopupSkin extends WindowSkin
-    implements SuggestionPopupListener, SuggestionPopupStateListener {
+    implements SuggestionPopupListener, SuggestionPopupSelectionListener, SuggestionPopupStateListener {
     private Border suggestionListViewBorder = new Border();
     private ListView suggestionListView = new ListView();
 
@@ -146,6 +147,7 @@ public class TerraSuggestionPopupSkin ex
 
         SuggestionPopup suggestionPopup = (SuggestionPopup)component;
         suggestionPopup.getSuggestionPopupListeners().add(this);
+        suggestionPopup.getSuggestionPopupSelectionListeners().add(this);
         suggestionPopup.getSuggestionPopupStateListeners().add(this);
 
         suggestionPopup.setContent(suggestionListViewBorder);
@@ -303,17 +305,17 @@ public class TerraSuggestionPopupSkin ex
 
     @Override
     public void selectedIndexChanged(SuggestionPopup suggestionPopup, int previousSelectedIndex) {
-        int selectedIndex = suggestionPopup.getSelectedIndex();
+        // No-op
+    }
 
-        if (selectedIndex != previousSelectedIndex) {
-            // This was not an indirect selection change
-            TextInput textInput = suggestionPopup.getTextInput();
+    @Override
+    public void selectedSuggestionChanged(SuggestionPopup suggestionPopup, Object previousSelectedSuggestion) {
+        TextInput textInput = suggestionPopup.getTextInput();
 
-            Object suggestion = suggestionPopup.getSelectedSuggestion();
-            if (suggestion != null) {
-                ListView.ItemRenderer suggestionRenderer = suggestionPopup.getSuggestionRenderer();
-                textInput.setText(suggestionRenderer.toString(suggestion));
-            }
+        Object suggestion = suggestionPopup.getSelectedSuggestion();
+        if (suggestion != null) {
+            ListView.ItemRenderer suggestionRenderer = suggestionPopup.getSuggestionRenderer();
+            textInput.setText(suggestionRenderer.toString(suggestion));
         }
     }
 

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/ListButton.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/ListButton.java?rev=986395&r1=986394&r2=986395&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/ListButton.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/ListButton.java Tue Aug 17 17:03:06 2010
@@ -384,7 +384,8 @@ public class ListButton extends Button {
             listButtonListeners.listDataChanged(this, previousListData);
 
             if (selectedIndex != previousSelectedIndex) {
-                listButtonSelectionListeners.selectedIndexChanged(ListButton.this, selectedIndex);
+                listButtonSelectionListeners.selectedIndexChanged(this, selectedIndex);
+                listButtonSelectionListeners.selectedItemChanged(this, getSelectedItem());
             }
         }
     }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java?rev=986395&r1=986394&r2=986395&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java Tue Aug 17 17:03:06 2010
@@ -199,6 +199,13 @@ public class Spinner extends Container {
                 listener.selectedIndexChanged(spinner, previousSelectedIndex);
             }
         }
+
+        @Override
+        public void selectedItemChanged(Spinner spinner, Object previousSelectedItem) {
+            for (SpinnerSelectionListener listener : this) {
+                listener.selectedItemChanged(spinner, previousSelectedItem);
+            }
+        }
     }
 
     private static class SpinnerBindingListenerList extends ListenerList<SpinnerBindingListener>
@@ -283,6 +290,8 @@ public class Spinner extends Container {
             int count = items.getLength();
 
             int previousSelectedIndex = selectedIndex;
+            Object previousSelectedItem = getSelectedItem();
+
             if (selectedIndex >= index) {
                 if (selectedIndex < index + count) {
                     selectedIndex = -1;
@@ -291,12 +300,16 @@ public class Spinner extends Container {
                 }
             }
 
-            // Notify listeners that items were removed
             spinnerItemListeners.itemsRemoved(Spinner.this, index, count);
 
             if (selectedIndex != previousSelectedIndex) {
                 spinnerSelectionListeners.selectedIndexChanged(Spinner.this, selectedIndex);
             }
+
+            Object selectedItem = getSelectedItem();
+            if (selectedItem != previousSelectedItem) {
+                spinnerSelectionListeners.selectedItemChanged(Spinner.this, selectedItem);
+            }
         }
 
         @Override
@@ -306,18 +319,28 @@ public class Spinner extends Container {
 
         @Override
         public void listCleared(List<Object> list) {
-            // All items were removed; clear the selection and notify
-            // listeners
+            int previousSelectedIndex = selectedIndex;
             selectedIndex = -1;
+
             spinnerItemListeners.itemsCleared(Spinner.this);
-            spinnerSelectionListeners.selectedIndexChanged(Spinner.this, selectedIndex);
+
+            if (previousSelectedIndex != selectedIndex) {
+                spinnerSelectionListeners.selectedIndexChanged(Spinner.this, selectedIndex);
+                spinnerSelectionListeners.selectedItemChanged(Spinner.this, getSelectedItem());
+            }
         }
 
         @Override
         public void comparatorChanged(List<Object> list, Comparator<Object> previousComparator) {
+            int previousSelectedIndex = selectedIndex;
             selectedIndex = -1;
+
             spinnerItemListeners.itemsSorted(Spinner.this);
-            spinnerSelectionListeners.selectedIndexChanged(Spinner.this, selectedIndex);
+
+            if (previousSelectedIndex != selectedIndex) {
+                spinnerSelectionListeners.selectedIndexChanged(Spinner.this, selectedIndex);
+                spinnerSelectionListeners.selectedItemChanged(Spinner.this, getSelectedItem());
+            }
         }
     };
 
@@ -388,6 +411,7 @@ public class Spinner extends Container {
 
             if (selectedIndex != previousSelectedIndex) {
                 spinnerSelectionListeners.selectedIndexChanged(Spinner.this, selectedIndex);
+                spinnerSelectionListeners.selectedItemChanged(this, getSelectedItem());
             }
         }
     }
@@ -472,11 +496,18 @@ public class Spinner extends Container {
      * The index to select, or <tt>-1</tt> to clear the selection.
      */
     public void setSelectedIndex(int selectedIndex) {
+        if (selectedIndex < -1
+            || selectedIndex >= spinnerData.getLength()) {
+            throw new IndexOutOfBoundsException();
+        }
+
         int previousSelectedIndex = this.selectedIndex;
 
         if (previousSelectedIndex != selectedIndex) {
             this.selectedIndex = selectedIndex;
             spinnerSelectionListeners.selectedIndexChanged(this, previousSelectedIndex);
+            spinnerSelectionListeners.selectedItemChanged(this, (previousSelectedIndex == -1) ?
+                null : spinnerData.get(previousSelectedIndex));
         }
     }
 

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/SpinnerSelectionListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/SpinnerSelectionListener.java?rev=986395&r1=986394&r2=986395&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/SpinnerSelectionListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/SpinnerSelectionListener.java Tue Aug 17 17:03:06 2010
@@ -21,6 +21,19 @@ package org.apache.pivot.wtk;
  */
 public interface SpinnerSelectionListener {
     /**
+     * Spinner selection listener adapter.
+     */
+    public static class Adapter implements SpinnerSelectionListener {
+        @Override
+        public void selectedIndexChanged(Spinner spinner, int previousSelectedIndex) {
+        }
+
+        @Override
+        public void selectedItemChanged(Spinner spinner, Object previousSelectedItem) {
+        }
+    }
+
+    /**
      * Called when a spinner's selected index has changed.
      *
      * @param spinner
@@ -31,4 +44,15 @@ public interface SpinnerSelectionListene
      * selected. Otherwise, contains the current selection.
      */
     public void selectedIndexChanged(Spinner spinner, int previousSelectedIndex);
+
+    /**
+     * Called when a spinners's selected item has changed.
+     *
+     * @param spinner
+     * The source of the event.
+     *
+     * @param previousSelectedItem
+     * The item that was previously selected.
+     */
+    public void selectedItemChanged(Spinner spinner, Object previousSelectedItem);
 }

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=986395&r1=986394&r2=986395&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java Tue Aug 17 17:03:06 2010
@@ -47,14 +47,6 @@ public class SuggestionPopup extends Win
                 listener.suggestionRendererChanged(suggestionPopup, previousSuggestionRenderer);
             }
         }
-
-        @Override
-        public void selectedIndexChanged(SuggestionPopup suggestionPopup,
-            int previousSelectedIndex) {
-            for (SuggestionPopupListener listener : this) {
-                listener.selectedIndexChanged(suggestionPopup, previousSelectedIndex);
-            }
-        }
     }
 
     private static class SuggestionPopupItemListenerList extends ListenerList<SuggestionPopupItemListener>
@@ -95,6 +87,24 @@ public class SuggestionPopup extends Win
         }
     }
 
+    private static class SuggestionPopupSelectionListenerList extends ListenerList<SuggestionPopupSelectionListener>
+        implements SuggestionPopupSelectionListener {
+        @Override
+        public void selectedIndexChanged(SuggestionPopup suggestionPopup,
+            int previousSelectedIndex) {
+            for (SuggestionPopupSelectionListener listener : this) {
+                listener.selectedIndexChanged(suggestionPopup, previousSelectedIndex);
+            }
+        }
+
+        @Override
+        public void selectedSuggestionChanged(SuggestionPopup suggestionPopup, Object previousSelectedSuggestion) {
+            for (SuggestionPopupSelectionListener listener : this) {
+                listener.selectedSuggestionChanged(suggestionPopup, previousSelectedSuggestion);
+            }
+        }
+    }
+
     private static class SuggestionPopupStateListenerList extends ListenerList<SuggestionPopupStateListener>
         implements SuggestionPopupStateListener {
         @Override
@@ -146,25 +156,34 @@ public class SuggestionPopup extends Win
             suggestionPopupItemListeners.itemInserted(SuggestionPopup.this, index);
 
             if (selectedIndex != previousSelectedIndex) {
-                suggestionPopupListeners.selectedIndexChanged(SuggestionPopup.this, selectedIndex);
+                suggestionPopupSelectionListeners.selectedIndexChanged(SuggestionPopup.this, selectedIndex);
             }
         }
 
         @Override
         public void itemsRemoved(List<Object> list, int index, Sequence<Object> items) {
+            int count = items.getLength();
+
             int previousSelectedIndex = selectedIndex;
+            Object previousSelectedSuggestion = getSelectedSuggestion();
 
-            int count = items.getLength();
-            if (index + count <= selectedIndex) {
-                selectedIndex--;
-            } else if (index <= selectedIndex) {
-                selectedIndex = -1;
+            if (selectedIndex >= index) {
+                if (selectedIndex < index + count) {
+                    selectedIndex = -1;
+                } else {
+                    selectedIndex -= count;
+                }
             }
 
             suggestionPopupItemListeners.itemsRemoved(SuggestionPopup.this, index, count);
 
             if (selectedIndex != previousSelectedIndex) {
-                suggestionPopupListeners.selectedIndexChanged(SuggestionPopup.this, selectedIndex);
+                suggestionPopupSelectionListeners.selectedIndexChanged(SuggestionPopup.this, selectedIndex);
+            }
+
+            Object selectedSuggestion = getSelectedSuggestion();
+            if (selectedSuggestion != previousSelectedSuggestion) {
+                suggestionPopupSelectionListeners.selectedSuggestionChanged(SuggestionPopup.this, selectedSuggestion);
             }
         }
 
@@ -175,21 +194,34 @@ public class SuggestionPopup extends Win
 
         @Override
         public void listCleared(List<Object> list) {
+            int previousSelectedIndex = selectedIndex;
             selectedIndex = -1;
+
             suggestionPopupItemListeners.itemsCleared(SuggestionPopup.this);
-            suggestionPopupListeners.selectedIndexChanged(SuggestionPopup.this, selectedIndex);
+
+            if (previousSelectedIndex != selectedIndex) {
+                suggestionPopupSelectionListeners.selectedIndexChanged(SuggestionPopup.this, selectedIndex);
+                suggestionPopupSelectionListeners.selectedSuggestionChanged(SuggestionPopup.this, getSelectedSuggestion());
+            }
         }
 
         @Override
         public void comparatorChanged(List<Object> list, Comparator<Object> previousComparator) {
+            int previousSelectedIndex = selectedIndex;
             selectedIndex = -1;
+
             suggestionPopupItemListeners.itemsSorted(SuggestionPopup.this);
-            suggestionPopupListeners.selectedIndexChanged(SuggestionPopup.this, selectedIndex);
+
+            if (previousSelectedIndex != selectedIndex) {
+                suggestionPopupSelectionListeners.selectedIndexChanged(SuggestionPopup.this, selectedIndex);
+                suggestionPopupSelectionListeners.selectedSuggestionChanged(SuggestionPopup.this, getSelectedSuggestion());
+            }
         }
     };
 
     private SuggestionPopupListenerList suggestionPopupListeners = new SuggestionPopupListenerList();
     private SuggestionPopupItemListenerList suggestionPopupItemListeners = new SuggestionPopupItemListenerList();
+    private SuggestionPopupSelectionListenerList suggestionPopupSelectionListeners = new SuggestionPopupSelectionListenerList();
     private SuggestionPopupStateListenerList suggestionPopupStateListeners = new SuggestionPopupStateListenerList();
 
     private static final ListView.ItemRenderer DEFAULT_SUGGESTION_RENDERER = new ListViewItemRenderer();
@@ -249,7 +281,8 @@ public class SuggestionPopup extends Win
             suggestionPopupListeners.suggestionDataChanged(this, previousSuggestionData);
 
             if (selectedIndex != previousSelectedIndex) {
-                suggestionPopupListeners.selectedIndexChanged(SuggestionPopup.this, selectedIndex);
+                suggestionPopupSelectionListeners.selectedIndexChanged(this, selectedIndex);
+                suggestionPopupSelectionListeners.selectedSuggestionChanged(this, getSelectedSuggestion());
             }
         }
     }
@@ -303,16 +336,12 @@ public class SuggestionPopup extends Win
 
         if (previousSelectedIndex != selectedIndex) {
             this.selectedIndex = selectedIndex;
-            suggestionPopupListeners.selectedIndexChanged(this, previousSelectedIndex);
+            suggestionPopupSelectionListeners.selectedIndexChanged(this, previousSelectedIndex);
+            suggestionPopupSelectionListeners.selectedSuggestionChanged(this, (previousSelectedIndex == -1) ?
+                null : suggestionData.get(previousSelectedIndex));
         }
     }
 
-    /**
-     * Returns the current selection.
-     *
-     * @return
-     * The currently selected suggestion, or <tt>null</tt> if nothing is selected.
-     */
     public Object getSelectedSuggestion() {
         int index = getSelectedIndex();
         Object item = null;
@@ -324,6 +353,11 @@ public class SuggestionPopup extends Win
         return item;
     }
 
+    @SuppressWarnings("unchecked")
+    public void setSelectedSuggestion(Object suggestion) {
+        setSelectedIndex((suggestion == null) ? -1 : ((List<Object>)suggestionData).indexOf(suggestion));
+    }
+
     @Override
     public final void open(Display display, Window owner) {
         if (textInput == null) {
@@ -424,6 +458,10 @@ public class SuggestionPopup extends Win
         return suggestionPopupItemListeners;
     }
 
+    public ListenerList<SuggestionPopupSelectionListener> getSuggestionPopupSelectionListeners() {
+        return suggestionPopupSelectionListeners;
+    }
+
     public ListenerList<SuggestionPopupStateListener> getSuggestionPopupStateListeners() {
         return suggestionPopupStateListeners;
     }

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=986395&r1=986394&r2=986395&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupListener.java Tue Aug 17 17:03:06 2010
@@ -35,11 +35,6 @@ public interface SuggestionPopupListener
         public void suggestionRendererChanged(SuggestionPopup suggestionPopup,
             ListView.ItemRenderer previousSuggestionRenderer) {
         }
-
-        @Override
-        public void selectedIndexChanged(SuggestionPopup suggestionPopup,
-            int previousSelectedIndex) {
-        }
     }
 
     /**
@@ -58,12 +53,4 @@ public interface SuggestionPopupListener
      */
     public void suggestionRendererChanged(SuggestionPopup suggestionPopup,
         ListView.ItemRenderer previousSuggestionRenderer);
-
-    /**
-     * Called when a suggestion popup's selected index has changed.
-     *
-     * @param suggestionPopup
-     * @param previousSelectedIndex
-     */
-    public void selectedIndexChanged(SuggestionPopup suggestionPopup, int previousSelectedIndex);
 }

Added: pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupSelectionListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupSelectionListener.java?rev=986395&view=auto
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupSelectionListener.java (added)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopupSelectionListener.java Tue Aug 17 17:03:06 2010
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.wtk;
+
+/**
+ * Suggestion popup selection listener interface.
+ */
+public interface SuggestionPopupSelectionListener {
+    /**
+     * Suggestion popup selection listener adapter.
+     */
+    public static class Adapter implements SuggestionPopupSelectionListener {
+        @Override
+        public void selectedIndexChanged(SuggestionPopup suggestionPopup,
+            int previousSelectedIndex) {
+        }
+
+        @Override
+        public void selectedSuggestionChanged(SuggestionPopup suggestionPopup, Object previousSelectedSuggestion) {
+        }
+    }
+
+    /**
+     * Called when a suggestion popup's selected index has changed.
+     *
+     * @param suggestionPopup
+     * @param previousSelectedIndex
+     */
+    public void selectedIndexChanged(SuggestionPopup suggestionPopup, int previousSelectedIndex);
+
+    /**
+     * Called when a suggestion popup's selected suggestion has changed.
+     *
+     * @param suggestionPopup
+     * The source of the event.
+     *
+     * @param previousSelectedSuggestion
+     * The suggestion that was previously selected.
+     */
+    public void selectedSuggestionChanged(SuggestionPopup suggestionPopup, Object previousSelectedSuggestion);
+}