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/08 17:35:41 UTC

svn commit: r983433 - in /pivot/trunk: tutorials/src/org/apache/pivot/tutorials/navigation/ wtk/src/org/apache/pivot/wtk/

Author: gbrown
Date: Sun Aug  8 15:35:40 2010
New Revision: 983433

URL: http://svn.apache.org/viewvc?rev=983433&view=rev
Log:
Minor cleanup of Accordion tutorial.

Modified:
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/Accordions.java
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/payment.bxml
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/shipping.bxml
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/summary.bxml
    pivot/trunk/wtk/src/org/apache/pivot/wtk/Component.java

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/Accordions.java
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/Accordions.java?rev=983433&r1=983432&r2=983433&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/Accordions.java (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/Accordions.java Sun Aug  8 15:35:40 2010
@@ -25,93 +25,53 @@ import org.apache.pivot.util.Resources;
 import org.apache.pivot.util.Vote;
 import org.apache.pivot.wtk.Accordion;
 import org.apache.pivot.wtk.AccordionSelectionListener;
-import org.apache.pivot.wtk.ActivityIndicator;
-import org.apache.pivot.wtk.Button;
-import org.apache.pivot.wtk.ButtonPressListener;
 import org.apache.pivot.wtk.Component;
-import org.apache.pivot.wtk.Label;
-import org.apache.pivot.wtk.PushButton;
 import org.apache.pivot.wtk.Window;
 
 public class Accordions extends Window implements Bindable {
     private Accordion accordion = null;
-    private PushButton shippingNextButton = null;
-    private PushButton paymentNextButton = null;
-    private PushButton confirmOrderButton = null;
-    private ActivityIndicator activityIndicator = null;
-    private Label processingOrderLabel = null;
-
-    private AccordionSelectionListener accordionSelectionListener = new AccordionSelectionListener() {
-        private int selectedIndex = -1;
-
-        @Override
-        public Vote previewSelectedIndexChange(Accordion accordion, int selectedIndex) {
-            this.selectedIndex = selectedIndex;
-
-            // Enable the next panel or disable the previous panel so the
-            // transition looks smoother
-            if (selectedIndex != -1) {
-                int previousSelectedIndex = accordion.getSelectedIndex();
-                if (selectedIndex > previousSelectedIndex) {
-                    accordion.getPanels().get(selectedIndex).setEnabled(true);
-                } else {
-                    accordion.getPanels().get(previousSelectedIndex).setEnabled(false);
-                }
-
-            }
-
-            return Vote.APPROVE;
-        }
-
-        @Override
-        public void selectedIndexChangeVetoed(Accordion accordion, Vote reason) {
-            if (reason == Vote.DENY
-                && selectedIndex != -1) {
-                Component panel = accordion.getPanels().get(selectedIndex);
-                panel.setEnabled(!panel.isEnabled());
-            }
-        }
-
-        @Override
-        public void selectedIndexChanged(Accordion accordion, int previousSelection) {
-            updateAccordion();
-        }
-    };
 
     @Override
     public void initialize(Map<String, Object> namespace, URL location, Resources resources) {
         accordion = (Accordion)namespace.get("accordion");
-        shippingNextButton = (PushButton)namespace.get("shippingPanel.nextButton");
-        paymentNextButton = (PushButton)namespace.get("paymentPanel.nextButton");
-        confirmOrderButton = (PushButton)namespace.get("summaryPanel.confirmOrderButton");
-        activityIndicator = (ActivityIndicator)namespace.get("summaryPanel.activityIndicator");
-        processingOrderLabel = (Label)namespace.get("summaryPanel.processingOrderLabel");
-
-        accordion.getAccordionSelectionListeners().add(accordionSelectionListener);
+        accordion.getAccordionSelectionListeners().add(new AccordionSelectionListener() {
+            private int selectedIndex = -1;
 
-        ButtonPressListener nextButtonPressListener = new ButtonPressListener() {
             @Override
-            public void buttonPressed(Button button) {
-                accordion.setSelectedIndex(accordion.getSelectedIndex() + 1);
-            }
-        };
+            public Vote previewSelectedIndexChange(Accordion accordion, int selectedIndex) {
+                this.selectedIndex = selectedIndex;
+
+                // Enable the next panel or disable the previous panel so the
+                // transition looks smoother
+                if (selectedIndex != -1) {
+                    int previousSelectedIndex = accordion.getSelectedIndex();
+                    if (selectedIndex > previousSelectedIndex) {
+                        accordion.getPanels().get(selectedIndex).setEnabled(true);
+                    } else {
+                        accordion.getPanels().get(previousSelectedIndex).setEnabled(false);
+                    }
 
-        shippingNextButton.getButtonPressListeners().add(nextButtonPressListener);
+                }
 
-        paymentNextButton.getButtonPressListeners().add(nextButtonPressListener);
+                return Vote.APPROVE;
+            }
 
-        confirmOrderButton.getButtonPressListeners().add(new ButtonPressListener() {
             @Override
-            public void buttonPressed(Button button) {
-                // Pretend to submit or cancel the order
-                activityIndicator.setActive(!activityIndicator.isActive());
-                processingOrderLabel.setVisible(activityIndicator.isActive());
-                updateConfirmOrderButton();
+            public void selectedIndexChangeVetoed(Accordion accordion, Vote reason) {
+                if (reason == Vote.DENY
+                    && selectedIndex != -1) {
+                    Component panel = accordion.getPanels().get(selectedIndex);
+                    panel.setEnabled(!panel.isEnabled());
+                }
+            }
+
+            @Override
+            public void selectedIndexChanged(Accordion accordion, int previousSelection) {
+                updateAccordion();
             }
         });
 
         updateAccordion();
-        updateConfirmOrderButton();
     }
 
     private void updateAccordion() {
@@ -122,12 +82,4 @@ public class Accordions extends Window i
             panels.get(i).setEnabled(i <= selectedIndex);
         }
     }
-
-    private void updateConfirmOrderButton() {
-        if (activityIndicator.isActive()) {
-            confirmOrderButton.setButtonData("Cancel");
-        } else {
-            confirmOrderButton.setButtonData("Confirm Order");
-        }
-    }
 }

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/payment.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/payment.bxml?rev=983433&r1=983432&r2=983433&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/payment.bxml (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/payment.bxml Sun Aug  8 15:35:40 2010
@@ -33,8 +33,14 @@ limitations under the License.
         <BoxPane styles="{horizontalAlignment:'right', backgroundColor:11,
             padding:4}">
             <PushButton bxml:id="nextButton" buttonData="Next"
-                styles="{minimumAspectRatio:3}"/>
+                styles="{minimumAspectRatio:3}">
+                <buttonPressListeners>
+                function buttonPressed(button) {
+                    var accordion = button.getAncestor("org.apache.pivot.wtk.Accordion");
+                    accordion.selectedIndex += 1;
+                }
+                </buttonPressListeners>
+            </PushButton>
         </BoxPane>
     </TablePane.Row>
 </TablePane>
-

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/shipping.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/shipping.bxml?rev=983433&r1=983432&r2=983433&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/shipping.bxml (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/shipping.bxml Sun Aug  8 15:35:40 2010
@@ -32,7 +32,14 @@ limitations under the License.
     <TablePane.Row height="-1">
         <BoxPane styles="{horizontalAlignment:'right', backgroundColor:11, padding:4}">
             <PushButton bxml:id="nextButton" buttonData="Next"
-                styles="{minimumAspectRatio:3}"/>
+                styles="{minimumAspectRatio:3}">
+                <buttonPressListeners>
+                function buttonPressed(button) {
+                    var accordion = button.getAncestor("org.apache.pivot.wtk.Accordion");
+                    accordion.selectedIndex += 1;
+                }
+                </buttonPressListeners>
+            </PushButton>
         </BoxPane>
     </TablePane.Row>
 </TablePane>

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/summary.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/summary.bxml?rev=983433&r1=983432&r2=983433&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/summary.bxml (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/summary.bxml Sun Aug  8 15:35:40 2010
@@ -18,6 +18,12 @@ limitations under the License.
 
 <TablePane xmlns:bxml="http://pivot.apache.org/bxml"
     xmlns="org.apache.pivot.wtk">
+    <bxml:script>
+    function updateConfirmOrderButtonData() {
+        confirmOrderButton.buttonData = (activityIndicator.active) ? "Cancel" : "Confirm Order";
+    }
+    </bxml:script>
+
     <columns>
         <TablePane.Column width="1*"/>
     </columns>
@@ -42,13 +48,32 @@ limitations under the License.
 
             <BoxPane orientation="vertical"
                 styles="{horizontalAlignment:'center', spacing:12, padding:{top:12}}">
-                <PushButton bxml:id="confirmOrderButton" styles="{minimumAspectRatio:3}"/>
+                <PushButton bxml:id="confirmOrderButton" styles="{minimumAspectRatio:3}">
+                    <buttonPressListeners>
+                    function buttonPressed(button) {
+                        activityIndicator.active = !activityIndicator.active;
+                        processingOrderLabel.visible = activityIndicator.active;
+                    }
+                    </buttonPressListeners>
+                </PushButton>
+
                 <ActivityIndicator bxml:id="activityIndicator" styles="{color:16}"
-                    preferredWidth="48" preferredHeight="48"/>
+                    preferredWidth="48" preferredHeight="48">
+                    <activityIndicatorListeners>
+                    function activeChanged(activityIndicator) {
+                        updateConfirmOrderButtonData();
+                    }
+                    </activityIndicatorListeners>
+                </ActivityIndicator>
+
                 <Label bxml:id="processingOrderLabel" text="Pretending to process order..." visible="false"
                     styles="{font:{italic:true}}"/>
             </BoxPane>
         </BoxPane>
     </TablePane.Row>
+
+    <bxml:script>
+    updateConfirmOrderButtonData();
+    </bxml:script>
 </TablePane>
 

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Component.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Component.java?rev=983433&r1=983432&r2=983433&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Component.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Component.java Sun Aug  8 15:35:40 2010
@@ -843,6 +843,15 @@ public abstract class Component implemen
         return (Container)component;
     }
 
+    @SuppressWarnings("unchecked")
+    public Container getAncestor(String ancestorTypeName) throws ClassNotFoundException {
+        if (ancestorTypeName == null) {
+            throw new IllegalArgumentException();
+        }
+
+        return getAncestor((Class<? extends Container>)Class.forName(ancestorTypeName));
+    }
+
     @Override
     public int getWidth() {
         return skin.getWidth();