c81ef7976651d6495002ff8a09e2e2c4607e75e6
[idea/community.git] / platform / smRunner / src / com / intellij / execution / testframework / sm / runner / ui / TestResultsViewer.java
1 /*
2  * Copyright 2000-2009 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.execution.testframework.sm.runner.ui;
17
18 import com.intellij.execution.testframework.AbstractTestProxy;
19 import com.intellij.execution.testframework.sm.runner.SMTestProxy;
20 import com.intellij.openapi.Disposable;
21 import org.jetbrains.annotations.Nullable;
22
23 /**
24  * @author Roman Chernyatchik
25  */
26 public interface TestResultsViewer extends Disposable {
27   /**
28    * Fake Root for toplevel test suits/tests
29    * @return root
30    */
31   SMTestProxy getTestsRootNode();
32
33   /**
34    * Selects test or suite in Tests tree and notify about selection changed
35    * @param proxy
36    */
37   void selectAndNotify(@Nullable AbstractTestProxy proxy);
38
39   void addEventsListener(EventsListener listener);
40
41   void setShowStatisticForProxyHandler(PropagateSelectionHandler handler);
42
43   /**
44    * If handler for statistics was set this method will execute it
45    */
46   void showStatisticsForSelectedProxy();
47
48   interface EventsListener extends TestProxyTreeSelectionListener {
49     void onTestingStarted(TestResultsViewer sender);
50     void onTestingFinished(TestResultsViewer sender);
51     void onTestNodeAdded(TestResultsViewer sender, SMTestProxy test);
52   }
53 }