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;