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
