You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by rw...@apache.org on 2017/12/22 19:57:08 UTC

svn commit: r1819086 - in /pivot/trunk/demos/src/org/apache/pivot/demos/million: LargeData.java large_data.bxml

Author: rwhitcomb
Date: Fri Dec 22 19:57:08 2017
New Revision: 1819086

URL: http://svn.apache.org/viewvc?rev=1819086&view=rev
Log:
PIVOT-999:  Explore more ways to use lambdas for callback functions:
* Update the "LargeData" example to use lambdas for callbacks.
* Do some direct repaints in the callbacks as status indications.
* Add a "Clear" button to make the UI a bit more friendly.
* Add a NumberRuler to the table view to emphasize the data set sizes.

Modified:
    pivot/trunk/demos/src/org/apache/pivot/demos/million/LargeData.java
    pivot/trunk/demos/src/org/apache/pivot/demos/million/large_data.bxml

Modified: pivot/trunk/demos/src/org/apache/pivot/demos/million/LargeData.java
URL: http://svn.apache.org/viewvc/pivot/trunk/demos/src/org/apache/pivot/demos/million/LargeData.java?rev=1819086&r1=1819085&r2=1819086&view=diff
==============================================================================
--- pivot/trunk/demos/src/org/apache/pivot/demos/million/LargeData.java (original)
+++ pivot/trunk/demos/src/org/apache/pivot/demos/million/LargeData.java Fri Dec 22 19:57:08 2017
@@ -50,8 +50,7 @@ import org.apache.pivot.wtk.Window;
 import org.apache.pivot.wtk.content.TableViewRowComparator;
 
 public class LargeData extends Application.Adapter {
-    private static String USER_HOME; // useful for local tests as Java
-                                     // Application
+    private static String USER_HOME; // useful for local tests as Java Application
 
     URL origin = null;
 
@@ -124,6 +123,9 @@ public class LargeData extends Applicati
             for (Object item : page) {
                 tableData.add(item);
             }
+            String msg = "Read " + tableData.getLength() + " rows...";
+            statusLabel.setText(msg);
+            statusLabel.repaint(true);
         }
     }
 
@@ -133,6 +135,7 @@ public class LargeData extends Applicati
     private ListButton fileListButton = null;
     private PushButton loadDataButton = null;
     private PushButton cancelButton = null;
+    private PushButton clearButton = null;
     private Label statusLabel = null;
     private TableView tableView = null;
 
@@ -163,6 +166,7 @@ public class LargeData extends Applicati
         fileListButton = (ListButton) bxmlSerializer.getNamespace().get("fileListButton");
         loadDataButton = (PushButton) bxmlSerializer.getNamespace().get("loadDataButton");
         cancelButton = (PushButton) bxmlSerializer.getNamespace().get("cancelButton");
+        clearButton = (PushButton) bxmlSerializer.getNamespace().get("clearButton");
         statusLabel = (Label) bxmlSerializer.getNamespace().get("statusLabel");
         tableView = (TableView) bxmlSerializer.getNamespace().get("tableView");
 
@@ -179,26 +183,26 @@ public class LargeData extends Applicati
                 }
             });
 
-        loadDataButton.getButtonPressListeners().add(new ButtonPressListener() {
-            @Override
-            public void buttonPressed(Button button) {
-                loadDataButton.setEnabled(false);
-                cancelButton.setEnabled(true);
+        loadDataButton.getButtonPressListeners().add((button) -> {
+            loadDataButton.setEnabled(false);
+            cancelButton.setEnabled(true);
+            loadData();
+        });
 
-                loadData();
+        cancelButton.getButtonPressListeners().add((button) -> {
+            if (loadDataTask != null) {
+                loadDataTask.abort();
             }
+            loadDataButton.setEnabled(true);
+            cancelButton.setEnabled(false);
         });
 
-        cancelButton.getButtonPressListeners().add(new ButtonPressListener() {
-            @Override
-            public void buttonPressed(Button button) {
-                if (loadDataTask != null) {
-                    loadDataTask.abort();
-                }
-
-                loadDataButton.setEnabled(true);
-                cancelButton.setEnabled(false);
+        clearButton.getButtonPressListeners().add((button) -> {
+            if (loadDataTask != null) {
+                loadDataTask.abort();
             }
+            tableView.getTableData().clear(); // empty the table
+            statusLabel.setText("");
         });
 
         tableView.getTableViewSortListeners().add(new TableViewSortListener.Adapter() {
@@ -256,24 +260,33 @@ public class LargeData extends Applicati
                     long t1 = System.currentTimeMillis();
                     String msg = "Read " + tableView.getTableData().getLength() + " rows in "
                         + (t1 - t0) + "ms";
-                    System.out.println(msg);
 
-                    statusLabel.setText(msg);
                     loadDataButton.setEnabled(true);
                     cancelButton.setEnabled(false);
 
                     loadDataTask = null;
+
+                    ApplicationContext.queueCallback(() -> {
+                        System.out.println(msg);
+                        statusLabel.setText(msg);
+                        statusLabel.repaint(true);
+                    });
                 }
 
                 @Override
                 public void executeFailed(Task<Void> task) {
                     String taskFault = task.getFault().toString();
-                    System.err.println(taskFault);
-                    statusLabel.setText(taskFault);
+
                     loadDataButton.setEnabled(true);
                     cancelButton.setEnabled(false);
 
                     loadDataTask = null;
+
+                    ApplicationContext.queueCallback(() -> {
+                        System.out.println(taskFault);
+                        statusLabel.setText(taskFault);
+                        statusLabel.repaint(true);
+                    });
                 }
             }));
         }

Modified: pivot/trunk/demos/src/org/apache/pivot/demos/million/large_data.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/demos/src/org/apache/pivot/demos/million/large_data.bxml?rev=1819086&r1=1819085&r2=1819086&view=diff
==============================================================================
--- pivot/trunk/demos/src/org/apache/pivot/demos/million/large_data.bxml (original)
+++ pivot/trunk/demos/src/org/apache/pivot/demos/million/large_data.bxml Fri Dec 22 19:57:08 2017
@@ -34,6 +34,7 @@ limitations under the License.
                             listData="['10e0.csv', '10e1.csv', '10e2.csv', '10e3.csv', '10e4.csv', '10e5.csv']" selectedIndex="0"/>
                         <PushButton bxml:id="loadDataButton" buttonData="Load Data" styles="{minimumAspectRatio:3}"/>
                         <PushButton bxml:id="cancelButton" buttonData="Cancel" enabled="false" styles="{minimumAspectRatio:3}"/>
+                        <PushButton bxml:id="clearButton" buttonData="Clear" styles="{minimumAspectRatio:3}"/>
                     </BoxPane>
                     <Label bxml:id="statusLabel"/>
                     <Separator/>
@@ -43,7 +44,7 @@ limitations under the License.
                 <Border>
                     <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
                         <TableView bxml:id="tableView" selectMode="single"
-                            styles="{showHorizontalGridLines:false}">
+                            styles="{showHorizontalGridLines:false,includeTrailingVerticalGridLine:true}">
                             <columns>
                                 <TableView.Column name="c0" headerData="0" width="120"/>
                                 <TableView.Column name="c1" headerData="1" width="120"/>
@@ -53,8 +54,11 @@ limitations under the License.
                         </TableView>
 
                         <columnHeader>
-                            <TableViewHeader tableView="$tableView" sortMode="single_column"/>
+                            <TableViewHeader tableView="$tableView" sortMode="single_column" styles="{includeTrailingVerticalGridLine:true}"/>
                         </columnHeader>
+                        <rowHeader>
+                            <NumberRuler orientation="vertical" textSize="7" styles="{backgroundColor:4,color:2,rowPadding:{top:2,bottom:3,left:0,right:0}}"/>
+                        </rowHeader>
                     </ScrollPane>
                 </Border>
             </TablePane.Row>