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 2009/06/23 18:32:44 UTC

svn commit: r787745 - in /incubator/pivot/trunk: demos/src/org/apache/pivot/demos/itunes/ wtk/src/org/apache/pivot/wtk/ wtk/src/org/apache/pivot/wtk/skin/ wtk/src/org/apache/pivot/wtk/skin/terra/

Author: gbrown
Date: Tue Jun 23 16:32:44 2009
New Revision: 787745

URL: http://svn.apache.org/viewvc?rev=787745&view=rev
Log:
Fix problem with recent Container focus update; menus are currently broken and will be fixed in a future update.

Modified:
    incubator/pivot/trunk/demos/src/org/apache/pivot/demos/itunes/SearchDemo.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Component.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Container.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Display.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Window.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuBarItemSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraMenuPopupSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraPushButtonSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java

Modified: incubator/pivot/trunk/demos/src/org/apache/pivot/demos/itunes/SearchDemo.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/demos/src/org/apache/pivot/demos/itunes/SearchDemo.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/demos/src/org/apache/pivot/demos/itunes/SearchDemo.java (original)
+++ incubator/pivot/trunk/demos/src/org/apache/pivot/demos/itunes/SearchDemo.java Tue Jun 23 16:32:44 2009
@@ -18,6 +18,7 @@
 
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Comparator;
 import java.util.Locale;
 
 import org.apache.pivot.collections.List;
@@ -140,8 +141,14 @@
             public void taskExecuted(Task<Object> task) {
                 if (task == getQuery) {
                     Map<String, Object> result = (Map<String, Object>)task.getResult();
-
                     List<Object> results = (List<Object>)result.get("results");
+
+                    // Preserve any existing sort
+                    List<Object> tableData = (List<Object>)resultsTableView.getTableData();
+                    Comparator<Object> comparator = tableData.getComparator();
+                    results.setComparator(comparator);
+
+                    // Update the table data
                     resultsTableView.setTableData(results);
                     statusLabel.setText("Found " + results.getLength() + " matching items.");
 

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Component.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Component.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Component.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Component.java Tue Jun 23 16:32:44 2009
@@ -1972,7 +1972,9 @@
      * <tt>true</tt> if the component is enabled and visible.
      */
     public boolean isFocusable() {
-        return skin.isFocusable();
+        return skin.isFocusable()
+            && isShowing()
+            && !isBlocked();
     }
 
     /**
@@ -2004,8 +2006,8 @@
     /**
      * Requests that focus be given to this component.
      */
-    public final void requestFocus() {
-        requestFocus(false);
+    public final boolean requestFocus() {
+        return requestFocus(false);
     }
 
     /**
@@ -2015,20 +2017,12 @@
      * If <tt>true</tt>, indicates that focus is being restored from a
      * temporary loss.
      */
-    protected void requestFocus(boolean temporary) {
-        if (!isFocusable()) {
-            throw new IllegalArgumentException("Component is not focusable.");
+    protected boolean requestFocus(boolean temporary) {
+        if (isFocusable()) {
+            setFocusedComponent(this, temporary);
         }
 
-        if (!isShowing()) {
-            throw new IllegalArgumentException("Component is not showing.");
-        }
-
-        if (isBlocked()) {
-            throw new IllegalArgumentException("Component is blocked.");
-        }
-
-        setFocusedComponent(this, temporary);
+        return isFocused();
     }
 
     /**
@@ -2073,9 +2067,7 @@
                 }
             }
         } while (component != null
-            && !(component.isFocusable()
-                && !component.isBlocked()
-                && component.isShowing()));
+            && !component.isFocusable());
 
         // Focus the component (which may be null)
         setFocusedComponent(component, false);
@@ -2106,6 +2098,8 @@
         Component previousFocusedComponent = Component.focusedComponent;
 
         if (previousFocusedComponent != focusedComponent) {
+            // System.out.println("Transferring focus from " + previousFocusedComponent + " to " + focusedComponent);
+
             // Set the focused component
             Component.focusedComponent = focusedComponent;
 

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Container.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Container.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Container.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Container.java Tue Jun 23 16:32:44 2009
@@ -445,29 +445,12 @@
      }
 
     /**
-     * Tests for the existence of any focusable descendants in this container.
-     *
      * @return
-     * <tt>true</tt> if this container has any focusable descedants;
-     * <tt>false</tt>, otherwise.
+     * <tt>false</tt>; containers are not focusable.
      */
     @Override
     public final boolean isFocusable() {
-        boolean focusable = false;
-
-        if (isShowing()
-            && !isBlocked()) {
-            for (int i = 0, n = getLength(); i < n; i++) {
-                Component component = components.get(i);
-                focusable = component.isFocusable();
-
-                if (focusable) {
-                    break;
-                }
-            }
-        }
-
-        return focusable;
+        return false;
     }
 
     /**
@@ -475,35 +458,17 @@
      * container.
      */
     @Override
-    protected void requestFocus(boolean temporary) {
-        if (!isShowing()) {
-            throw new IllegalArgumentException("Container is not showing.");
-        }
-
-        if (isBlocked()) {
-            throw new IllegalArgumentException("Container is blocked.");
-        }
-
-        for (int i = 0, n = getLength(); i < n; i++) {
-            Component component = components.get(i);
-
-            if (component instanceof Container) {
-                Container container = (Container)component;
-                if (container.isShowing()
-                    && !container.isBlocked()) {
-                    container.requestFocus();
-                    if (container.containsFocus()) {
-                        break;
-                    }
-                }
-            } else {
-                if (component.isFocusable()
-                    && component.isShowing()
-                    && !component.isBlocked()) {
-                    component.requestFocus();
-                }
+    protected boolean requestFocus(boolean temporary) {
+        if (isShowing()
+            && !isBlocked()) {
+            FocusTraversalPolicy focusTraversalPolicy = getFocusTraversalPolicy();
+            Component component = focusTraversalPolicy.getNextComponent(this, null, Direction.FORWARD);
+            if (component != null) {
+                component.requestFocus();
             }
         }
+
+        return containsFocus();
     }
 
     /**

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Display.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Display.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Display.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Display.java Tue Jun 23 16:32:44 2009
@@ -107,4 +107,9 @@
 
         super.insert(component, index);
     }
+
+    @Override
+    public FocusTraversalPolicy getFocusTraversalPolicy() {
+        return null;
+    }
 }

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Window.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Window.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Window.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Window.java Tue Jun 23 16:32:44 2009
@@ -742,7 +742,7 @@
     }
 
     @Override
-    protected void requestFocus(boolean temporary) {
+    protected boolean requestFocus(boolean temporary) {
         // If this window is still an ancestor of the focus descendant
         // and the focus descendant can be focused, restore focus to it;
         // otherwise, clear the focus descendant
@@ -756,6 +756,8 @@
 
             super.requestFocus(temporary);
         }
+
+        return containsFocus();
     }
 
     /**

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java Tue Jun 23 16:32:44 2009
@@ -66,9 +66,7 @@
             calendarButton.setSelectedDate(date);
 
             calendarPopup.close();
-            if (calendarButton.isShowing()) {
-                calendarButton.requestFocus();
-            }
+            calendarButton.requestFocus();
 
             return true;
         }

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuBarItemSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuBarItemSkin.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuBarItemSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuBarItemSkin.java Tue Jun 23 16:32:44 2009
@@ -16,7 +16,6 @@
  */
 package org.apache.pivot.wtk.skin;
 
-import org.apache.pivot.wtk.Button;
 import org.apache.pivot.wtk.Component;
 import org.apache.pivot.wtk.ComponentKeyListener;
 import org.apache.pivot.wtk.Direction;
@@ -36,8 +35,6 @@
  * @author gbrown
  */
 public abstract class MenuBarItemSkin extends ButtonSkin implements MenuBar.ItemListener {
-    protected MenuPopup menuPopup = new MenuPopup();
-
     private WindowStateListener menuPopupWindowListener = new WindowStateListener.Adapter() {
         public void windowClosed(Window window, Display display) {
             MenuBar.Item menuBarItem = (MenuBar.Item)getComponent();
@@ -54,6 +51,8 @@
         }
     };
 
+    protected MenuPopup menuPopup = new MenuPopup();
+
     public MenuBarItemSkin() {
         menuPopup.getWindowStateListeners().add(menuPopupWindowListener);
     }
@@ -220,19 +219,6 @@
         }
     }
 
-    public void buttonPressed(Button button) {
-        MenuBar.Item menuBarItem = (MenuBar.Item)getComponent();
-        MenuBar menuBar = menuBarItem.getMenuBar();
-
-        if (menuPopup.isOpen()) {
-            if (menuBar.isActive()) {
-                Component.clearFocus();
-            } else {
-                menuBar.setActive(true);
-            }
-        }
-    }
-
     public void menuChanged(MenuBar.Item menuBarItem, Menu previousMenu) {
         menuPopup.setMenu(menuBarItem.getMenu());
         repaintComponent();

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java Tue Jun 23 16:32:44 2009
@@ -43,11 +43,7 @@
     private WindowStateListener menuPopupWindowStateListener = new WindowStateListener.Adapter() {
         public void windowClosed(Window window, Display display) {
             MenuButton menuButton = (MenuButton)getComponent();
-
-            if (menuButton.isFocusable()
-                && menuButton.isShowing()) {
-                menuButton.requestFocus();
-            }
+            menuButton.requestFocus();
 
             repaintComponent();
         }

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java Tue Jun 23 16:32:44 2009
@@ -102,9 +102,7 @@
             closeTransition = null;
             if (focusButtonOnClose) {
                 CalendarButton calendarButton = (CalendarButton)getComponent();
-                if (calendarButton.isShowing()) {
-                    calendarButton.requestFocus();
-                }
+                calendarButton.requestFocus();
             }
         }
     };

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java Tue Jun 23 16:32:44 2009
@@ -103,9 +103,7 @@
             closeTransition = null;
             if (focusButtonOnClose) {
                 ListButton listButton = (ListButton)getComponent();
-                if (listButton.isShowing()) {
-                    listButton.requestFocus();
-                }
+                listButton.requestFocus();
             }
         }
     };

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java Tue Jun 23 16:32:44 2009
@@ -596,9 +596,7 @@
             }
         }
 
-        if (listView.isFocusable()) {
-            listView.requestFocus();
-        }
+        listView.requestFocus();
 
         return consumed;
     }

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraMenuPopupSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraMenuPopupSkin.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraMenuPopupSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraMenuPopupSkin.java Tue Jun 23 16:32:44 2009
@@ -194,9 +194,7 @@
         if (keyCode == Keyboard.KeyCode.ESCAPE) {
             MenuPopup menuPopup = (MenuPopup)getComponent();
             Component affiliate = menuPopup.getAffiliate();
-            if (affiliate != null
-                && affiliate.isFocusable()
-                && affiliate.isShowing()) {
+            if (affiliate != null) {
                 affiliate.requestFocus();
             }
 

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraPushButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraPushButtonSkin.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraPushButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraPushButtonSkin.java Tue Jun 23 16:32:44 2009
@@ -515,8 +515,7 @@
 
     @Override
     public boolean mouseClick(Component component, Mouse.Button button, int x, int y, int count) {
-        if (!toolbar
-            && component.isFocusable()) {
+        if (!toolbar) {
             component.requestFocus();
         }
 

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java Tue Jun 23 16:32:44 2009
@@ -863,9 +863,7 @@
             }
         }
 
-        if (tableView.isFocusable()) {
-            tableView.requestFocus();
-        }
+        tableView.requestFocus();
 
         return consumed;
     }

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java?rev=787745&r1=787744&r2=787745&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java Tue Jun 23 16:32:44 2009
@@ -1389,9 +1389,7 @@
                 }
             }
 
-            if (treeView.isFocusable()) {
-                treeView.requestFocus();
-            }
+            treeView.requestFocus();
         }
 
         return consumed;