[Yanel-commits] rev 32499 - public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client

michi at wyona.com michi at wyona.com
Tue Feb 26 12:41:54 CET 2008


Author: michi
Date: 2008-02-26 12:41:54 +0100 (Tue, 26 Feb 2008)
New Revision: 32499

Modified:
   public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/AccessPolicyEditor.java
   public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/AsynchronousPolicyGetter.java
   public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/IdentitiesListBoxWidget.java
   public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/PolicyListBoxWidget.java
Log:
read data asynchronous

Modified: public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/AccessPolicyEditor.java
===================================================================
--- public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/AccessPolicyEditor.java	2008-02-26 11:28:57 UTC (rev 32498)
+++ public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/AccessPolicyEditor.java	2008-02-26 11:41:54 UTC (rev 32499)
@@ -40,8 +40,10 @@
     String[] users;
     String[] groups;
     String[] rights;
+    String[] policyIdentities;
 
     IdentitiesListBoxWidget identitiesLBW;
+    PolicyListBoxWidget policyLBW;
 
     int visibleItemCount = 10;
 
@@ -61,7 +63,7 @@
 
         // Get data from server
         getIdentitiesAndRights(identitiesURL);
-        String[] policyIdentities = getPolicy(policyURL);
+        getPolicy(policyURL);
 
         // Setup GUI
         VerticalPanel vp = new VerticalPanel();
@@ -83,7 +85,7 @@
 
         identitiesLBW = new IdentitiesListBoxWidget(visibleItemCount, users, groups);
 
-        PolicyListBoxWidget policyLBW = new PolicyListBoxWidget(visibleItemCount, policyIdentities);
+        policyLBW = new PolicyListBoxWidget(visibleItemCount, policyIdentities);
 
 	AddRemoveIdentitiesWidget ariw = new AddRemoveIdentitiesWidget(identitiesLBW.getListBox(), policyLBW.getListBox());
 
@@ -134,7 +136,7 @@
     /**
      * Get policy
      */
-    private String[] getPolicy(String url) {
+    private void getPolicy(String url) {
         // TODO: See src/extra/globus/image-browser/src/java/ch/globus/yanel/gwt/client/ImageBrowser.java how to use Asyn Policy Getter!
 
         Window.alert("Load policy: " + url);
@@ -142,14 +144,27 @@
         try {
             final com.google.gwt.http.client.Request request = apg.execute();
             //Window.alert("Just a second to process the policy response ...");
-            // TODO: Implement loop until request has finished execution
+
+            // Start new thread
+            Timer t = new Timer() {
+                public void run() {
+                    if (request.isPending()) {
+                        scheduleRepeating(10);
+                    } else {
+                        policyIdentities = apg.getIdentities();
+                        policyLBW.set(visibleItemCount, policyIdentities);
+                        this.cancel();
+                        Window.alert("Timer still running!");
+                    }
+                }
+            };
+            t.schedule(1);
         } catch (Exception e) {
              Window.alert("Exception: " + e.getMessage());
              //if (!com.google.gwt.core.client.GWT.isScript()) {
              e.printStackTrace();
              //}
         }
-        return apg.getIdentities();
     }
 }
 

Modified: public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/AsynchronousPolicyGetter.java
===================================================================
--- public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/AsynchronousPolicyGetter.java	2008-02-26 11:28:57 UTC (rev 32498)
+++ public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/AsynchronousPolicyGetter.java	2008-02-26 11:41:54 UTC (rev 32499)
@@ -71,10 +71,10 @@
      * Get identities from access policy
      */
     public String[] getIdentities() {
-        String[] ids = new String[3];
-        ids[0] = "u: alice (Read,Write)";
-        ids[1] = "u: bob (Read)";
-        ids[2] = "WORLD";
+        String[] ids = new String[identities.size()];
+        for (int i = 0; i < ids.length; i++) {
+            ids[i] = (String)identities.elementAt(i);
+        }
         return ids;
     }
 

Modified: public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/IdentitiesListBoxWidget.java
===================================================================
--- public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/IdentitiesListBoxWidget.java	2008-02-26 11:28:57 UTC (rev 32498)
+++ public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/IdentitiesListBoxWidget.java	2008-02-26 11:41:54 UTC (rev 32499)
@@ -57,6 +57,7 @@
      *
      */
     public void set(int visibleItemCount, String[] users, String[] groups) {
+        lb.clear();
         lb.setVisibleItemCount(visibleItemCount);
         if (users != null) {
             for (int i = 0; i < users.length; i++) {

Modified: public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/PolicyListBoxWidget.java
===================================================================
--- public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/PolicyListBoxWidget.java	2008-02-26 11:28:57 UTC (rev 32498)
+++ public/yanel/contributions/ajax-components/src/access-policy-editor/java/org/wyona/yanel/gwt/accesspolicyeditor/client/PolicyListBoxWidget.java	2008-02-26 11:41:54 UTC (rev 32499)
@@ -58,10 +58,7 @@
 
         lb = new ListBox(true);
         lb.addClickListener(this);
-        lb.setVisibleItemCount(visibleItemCount);
-        for (int i = 0; i < identities.length; i++) {
-            lb.addItem(identities[i], identities[i]);
-        }
+        set(visibleItemCount, identities);
         vp.add(lb);
 
         readCB = new CheckBox("Read");
@@ -75,6 +72,21 @@
     /**
      *
      */
+    public void set(int visibleItemCount, String[] identities) {
+        lb.clear();
+        lb.setVisibleItemCount(visibleItemCount);
+        if (identities != null) {
+            for (int i = 0; i < identities.length; i++) {
+                lb.addItem(identities[i], identities[i]);
+            }
+        } else {
+            lb.addItem("No identities yet!");
+        }
+    }
+
+    /**
+     *
+     */
     public ListBox getListBox() {
         return lb;
     }



More information about the Yanel-commits mailing list