190 lines
5.1 KiB
Java
Raw Normal View History

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* $Header:$
*/
package index;
import org.apache.beehive.netui.pageflow.Forward;
import org.apache.beehive.netui.pageflow.PageFlowController;
import org.apache.beehive.netui.pageflow.annotations.Jpf;
import org.apache.beehive.netui.tools.testrecorder.shared.config.Category;
import org.apache.beehive.netui.tools.testrecorder.shared.config.TestDefinition;
import org.apache.beehive.netui.tools.testrecorder.shared.config.TestDefinitions;
import org.apache.beehive.netui.tools.testrecorder.server.TestRecorderFilter;
import java.io.File;
import java.util.Iterator;
import java.util.List;
@Jpf.Controller (
simpleActions={
@Jpf.SimpleAction(name="begin", path="index.jsp")
},
longLived = true
)
public class Controller extends PageFlowController
{
private final String ROW_ON_STYLE = "row";
private final String ROW_OFF_STYLE = "altRow";
private final String TESTS = " Tests";
transient private TestDefinitions _td;
transient private Category[] _cats;
private String _cat = "bvt";
private boolean _rowOn = false;
public Iterator getCategories()
{
CatIterator it = new CatIterator(_cats,_cat);
return it;
}
public Iterator getTests()
{
TestIterator it = new TestIterator(_td.getCategories().getTests(_cat));
return it;
}
public String getTitle() {
Category c = _td.getCategories().getCategory(_cat);
String d = c.getDescription();
int pos = d.indexOf("Tests");
return c.getDescription() + ((pos != -1) ? "" : TESTS);
}
public String getRowStyle() {
_rowOn = !_rowOn;
return (_rowOn) ? ROW_ON_STYLE : ROW_OFF_STYLE;
}
protected void onCreate()
{
TestDefinitions td = TestRecorderFilter.instance().getTestDefinitions();
if (td == null) {
System.err.println("Didn't find the test Definitions");
}
_td = td;
_cats = _td.getCategories().getCategories();
}
@Jpf.Action(
forwards = {
@Jpf.Forward(
name = "success",
path = "index.jsp")
})
public Forward selectList()
{
_rowOn = false;
String cat = getRequest().getParameter("target");
if (cat != null) {
_cat = cat;
}
return new Forward( "success" );
}
public class CatIterator implements Iterator
{
private Category[] _cats;
private int pos;
private Category _cat;
private String _selCat;
public CatIterator(Category[] cats, String selCat) {
_cats = cats;
_selCat = selCat;
pos = 0;
}
public String getName() {
return _cat.getName();
}
public String getDescription() {
return _cat.getDescription();
}
public String getSelection() {
return (_cat.getName().equals(_selCat)) ? "uberlink" : null;
}
public boolean hasNext()
{
return (pos < _cats.length);
}
public Object next()
{
_cat = _cats[pos++];
return this;
}
public void remove()
{
throw new RuntimeException("Iterator does not support remove.");
}
}
public class TestIterator implements Iterator
{
private List _list;
private int _cur;
private TestDefinition _test;
public TestIterator(List l)
{
_list = l;
_cur = 0;
}
public String getName()
{
return _test.getName();
}
public boolean isDiff()
{
File file = new File(_test.getResultDiffFilePath());
return file.exists();
}
public String getDescription()
{
return _test.getDescription();
}
//*********************************** ITERATOR ******************************************
public boolean hasNext()
{
return (_cur != _list.size());
}
public Object next()
{
_test = (TestDefinition) _list.get(_cur++);
return this;
}
public void remove()
{
throw new RuntimeException("Iterator does not support remove.");
}
}
}