Add listeners to the TestPlanSelector, and have Triage View refresh on
entering a test plan.

Signed-off-by: James Ren <[email protected]>

--- /dev/null   2009-12-17 12:29:38.000000000 -0800
+++ autotest/frontend/client/src/autotest/common/ui/HasTabVisible.java  
2010-04-09 13:56:05.000000000 -0700
@@ -0,0 +1,5 @@
+package autotest.common.ui;
+
+public interface HasTabVisible {
+    public boolean isTabVisible();
+}
--- autotest/frontend/client/src/autotest/common/ui/TabView.java        
2010-04-09 13:56:05.000000000 -0700
+++ autotest/frontend/client/src/autotest/common/ui/TabView.java        
2010-04-09 13:56:05.000000000 -0700
@@ -23,7 +23,7 @@
  * tab from the "title" attribute of the HTML element.  This class also 
supports
  * lazy initialization of the tab by waiting until the tab is first displayed.
  */
-public abstract class TabView {
+public abstract class TabView implements HasTabVisible {
     private boolean initialized = false;
     private HTMLPanel htmlPanel;
     private String title;
@@ -70,7 +70,7 @@
         visible = false;
     }
     
-    protected boolean isTabVisible() {
+    public boolean isTabVisible() {
         return visible;
     }
 
--- autotest/frontend/client/src/autotest/planner/TestPlanSelector.java 
2010-04-05 13:07:24.000000000 -0700
+++ autotest/frontend/client/src/autotest/planner/TestPlanSelector.java 
2010-04-09 13:56:05.000000000 -0700
@@ -9,6 +9,9 @@
 import com.google.gwt.event.dom.client.KeyPressHandler;
 import com.google.gwt.user.client.ui.HasText;
 
+import java.util.ArrayList;
+import java.util.List;
+
 public class TestPlanSelector implements ClickHandler, KeyPressHandler {
     
     public static interface Display {
@@ -17,9 +20,14 @@
         public HasKeyPressHandlers getInputField();
     }
     
+    public static interface Listener {
+        public void onPlanSelected();
+    }
+    
     
     private Display display;
     private String selectedPlan;
+    private List<Listener> listeners = new ArrayList<Listener>();
     
     public void bindDisplay(Display display) {
         this.display = display;
@@ -27,6 +35,10 @@
         display.getInputField().addKeyPressHandler(this);
     }
     
+    public void addListener(Listener listener) {
+        listeners.add(listener);
+    }
+    
     @Override
     public void onClick(ClickEvent event) {
         selectPlan();
@@ -41,6 +53,9 @@
     
     private void selectPlan() {
         selectedPlan = display.getInputText().getText();
+        for (Listener listener : listeners) {
+            listener.onPlanSelected();
+        }
     }
     
     public String getSelectedPlan() {
--- 
autotest/frontend/client/src/autotest/planner/triage/TriageViewPresenter.java   
    2010-04-05 13:07:24.000000000 -0700
+++ 
autotest/frontend/client/src/autotest/planner/triage/TriageViewPresenter.java   
    2010-04-09 13:56:05.000000000 -0700
@@ -2,6 +2,7 @@
 
 import autotest.common.JsonRpcCallback;
 import autotest.common.JsonRpcProxy;
+import autotest.common.ui.HasTabVisible;
 import autotest.planner.TestPlanSelector;
 
 import com.google.gwt.json.client.JSONArray;
@@ -9,7 +10,7 @@
 import com.google.gwt.json.client.JSONString;
 import com.google.gwt.json.client.JSONValue;
 
-public class TriageViewPresenter {
+public class TriageViewPresenter implements TestPlanSelector.Listener {
     
     public interface Display {
         public void setLoading(boolean loading);
@@ -19,9 +20,12 @@
     
     private TestPlanSelector selector;
     private Display display;
+    private HasTabVisible tab;
     
-    public TriageViewPresenter(TestPlanSelector selector) {
+    public TriageViewPresenter(TestPlanSelector selector, HasTabVisible tab) {
         this.selector = selector;
+        this.tab = tab;
+        selector.addListener(this);
     }
     
     public void bindDisplay(Display display) {
@@ -64,4 +68,11 @@
             table.renderDisplay();
         }
     }
+
+    @Override
+    public void onPlanSelected() {
+        if (tab.isTabVisible()) {
+            refresh();
+        }
+    }
 }
--- autotest/frontend/client/src/autotest/planner/triage/TriageViewTab.java     
2010-04-05 13:07:24.000000000 -0700
+++ autotest/frontend/client/src/autotest/planner/triage/TriageViewTab.java     
2010-04-09 13:56:05.000000000 -0700
@@ -12,7 +12,7 @@
     private TriageViewDisplay display = new TriageViewDisplay();
     
     public TriageViewTab(TestPlanSelector selector) {
-        presenter = new TriageViewPresenter(selector);
+        presenter = new TriageViewPresenter(selector, this);
     }
     
     @Override
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to