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/02/10 14:47:45 UTC
svn commit: r908502 - in /pivot/trunk: build.xml
wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java
wtk/src/org/apache/pivot/wtk/SuggestionPopup.java
Author: gbrown
Date: Wed Feb 10 13:47:44 2010
New Revision: 908502
URL: http://svn.apache.org/viewvc?rev=908502&view=rev
Log:
Fade suggestion popup on close.
Modified:
pivot/trunk/build.xml
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSuggestionPopupSkin.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java
Modified: pivot/trunk/build.xml
URL: http://svn.apache.org/viewvc/pivot/trunk/build.xml?rev=908502&r1=908501&r2=908502&view=diff
==============================================================================
--- pivot/trunk/build.xml (original)
+++ pivot/trunk/build.xml Wed Feb 10 13:47:44 2010
@@ -37,7 +37,7 @@
<!-- Compiler properties -->
<property name="compiler.deprecation" value="true"/>
- <property name="compiler.debug" value="true"/>
+ <property name="compiler.debug" value="false"/>
<property name="compiler.target" value="1.6"/>
<property name="compiler.encoding" value="UTF-8"/>
<property name="compiler.indexJars" value="true"/>
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=908502&r1=908501&r2=908502&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 Wed Feb 10 13:47:44 2010
@@ -22,6 +22,7 @@
import org.apache.pivot.collections.Dictionary;
import org.apache.pivot.collections.List;
import org.apache.pivot.collections.Sequence;
+import org.apache.pivot.util.Vote;
import org.apache.pivot.wtk.Border;
import org.apache.pivot.wtk.Component;
import org.apache.pivot.wtk.ComponentKeyListener;
@@ -41,6 +42,9 @@
import org.apache.pivot.wtk.TextInput;
import org.apache.pivot.wtk.Theme;
import org.apache.pivot.wtk.Window;
+import org.apache.pivot.wtk.effects.DropShadowDecorator;
+import org.apache.pivot.wtk.effects.Transition;
+import org.apache.pivot.wtk.effects.TransitionListener;
import org.apache.pivot.wtk.skin.WindowSkin;
/**
@@ -50,6 +54,9 @@
private Border suggestionListViewBorder = new Border();
private ListView suggestionListView = new ListView();
+ private DropShadowDecorator dropShadowDecorator = null;
+ private Transition closeTransition = null;
+
private ContainerMouseListener displayMouseListener = new ContainerMouseListener.Adapter() {
@Override
public boolean mouseDown(Container container, Mouse.Button button, int x, int y) {
@@ -109,6 +116,9 @@
}
};
+ private static final int CLOSE_TRANSITION_DURATION = 150;
+ private static final int CLOSE_TRANSITION_RATE = 30;
+
public TerraSuggestionPopupSkin () {
suggestionListView.getListViewSelectionListeners().add(listViewSelectionListener);
suggestionListViewBorder.setContent(suggestionListView);
@@ -125,6 +135,10 @@
suggestionListView.setListData(suggestionPopup.getSuggestions());
suggestionListView.setItemRenderer(suggestionPopup.getSuggestionRenderer());
+
+ // Attach the drop-shadow decorator
+ dropShadowDecorator = new DropShadowDecorator(3, 3, 3);
+ suggestionPopup.getDecorators().add(dropShadowDecorator);
}
public Font getFont() {
@@ -241,6 +255,38 @@
}
@Override
+ public Vote previewWindowClose(final Window window) {
+ if (closeTransition == null) {
+ suggestionListViewBorder.setEnabled(false);
+
+ closeTransition = new FadeWindowTransition(window,
+ CLOSE_TRANSITION_DURATION, CLOSE_TRANSITION_RATE,
+ dropShadowDecorator);
+
+ closeTransition.start(new TransitionListener() {
+ @Override
+ public void transitionCompleted(Transition transition) {
+ window.close();
+ }
+ });
+ }
+
+ return (closeTransition != null
+ && closeTransition.isRunning()) ? Vote.DEFER : Vote.APPROVE;
+ }
+
+ @Override
+ public void windowCloseVetoed(Window window, Vote reason) {
+ if (reason == Vote.DENY
+ && closeTransition != null) {
+ closeTransition.stop();
+
+ suggestionListViewBorder.setEnabled(true);
+ closeTransition = null;
+ }
+ }
+
+ @Override
public void windowClosed(Window window, Display display, Window owner) {
display.getContainerMouseListeners().remove(displayMouseListener);
@@ -250,6 +296,9 @@
TextInput textInput = suggestionPopup.getTextInput();
textInput.getComponentKeyListeners().remove(textInputKeyListener);
+ suggestionListViewBorder.setEnabled(true);
+ closeTransition = null;
+
super.windowClosed(window, display, owner);
textInput.requestFocus();
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=908502&r1=908501&r2=908502&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java Wed Feb 10 13:47:44 2010
@@ -229,13 +229,13 @@
this.textInput = textInput;
this.suggestionPopupCloseListener = suggestionPopupCloseListener;
+ result = false;
+
super.open(textInput.getWindow());
if (!isOpen()) {
this.textInput = null;
this.suggestionPopupCloseListener = null;
-
- result = false;
}
}