From 50d8ea59f14916b567ff2eef4bddd0cc11a2383d Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Fri, 16 Apr 2010 11:14:59 +0000
Subject: [PATCH] minor: use DeferredCommand instead of a DelayedTask

SVN: 15497
---
 .../web/client/application/util/GWTUtils.java  |  9 +++++++++
 .../application/util/IDelegatedAction.java     |  4 +++-
 .../experiment/GenericExperimentViewer.java    | 18 ++----------------
 3 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/GWTUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/GWTUtils.java
index d0277e0733e..145d9065edb 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/GWTUtils.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/GWTUtils.java
@@ -28,6 +28,7 @@ import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
 import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
 import com.extjs.gxt.ui.client.widget.treegrid.TreeGrid;
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.DeferredCommand;
 import com.google.gwt.user.client.ui.ListBox;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames;
@@ -69,6 +70,14 @@ public final class GWTUtils
         testing = true;
     }
 
+    /**
+     * Deferrs a task allowing browser to handle events.
+     */
+    public static void executeDelayed(final IDelegatedAction delegatedAction)
+    {
+        DeferredCommand.addCommand(delegatedAction);
+    }
+
     /**
      * Selects given <var>value</var> of given <var>listBox</var>.
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/IDelegatedAction.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/IDelegatedAction.java
index dbf5ab702f3..6f52fd5ba45 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/IDelegatedAction.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/IDelegatedAction.java
@@ -16,13 +16,15 @@
 
 package ch.systemsx.cisd.openbis.generic.client.web.client.application.util;
 
+import com.google.gwt.user.client.Command;
+
 /**
  * Use this interface to delegate any kind of action to a different part of code without adding an
  * explicit dependency.
  * 
  * @author Tomasz Pylak
  */
-public interface IDelegatedAction
+public interface IDelegatedAction extends Command
 {
     void execute();
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java
index d293ab7df65..a8db7a761ee 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java
@@ -21,9 +21,6 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
-import com.extjs.gxt.ui.client.event.BaseEvent;
-import com.extjs.gxt.ui.client.event.Listener;
-import com.extjs.gxt.ui.client.util.DelayedTask;
 import com.extjs.gxt.ui.client.widget.Html;
 import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
 
@@ -42,6 +39,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.Abstrac
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentListDeletionConfirmationDialog;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.SectionsPanel;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUtils;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IAttachmentHolder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable;
@@ -147,7 +145,7 @@ public class GenericExperimentViewer extends AbstractViewer<Experiment> implemen
         layout();
         viewContext.logStop(logId);
 
-        executeDelayed(new IDelegatedAction()
+        GWTUtils.executeDelayed(new IDelegatedAction()
             {
                 public void execute()
                 {
@@ -160,18 +158,6 @@ public class GenericExperimentViewer extends AbstractViewer<Experiment> implemen
             });
     }
 
-    private static void executeDelayed(final IDelegatedAction delegatedAction)
-    {
-        DelayedTask delayedTask = new DelayedTask(new Listener<BaseEvent>()
-            {
-                public void handleEvent(BaseEvent be)
-                {
-                    delegatedAction.execute();
-                }
-            });
-        delayedTask.delay(1);
-    }
-
     public static final String createId(final IIdentifiable identifiable)
     {
         return createId(TechId.create(identifiable));
-- 
GitLab