...11import org.testng.IReporter;12import org.testng.ISuite;13import org.testng.internal.Utils;14import org.testng.reporters.Files;15import org.testng.reporters.XMLStringBuffer;16import org.testng.reporters.jq.BannerPanel;17import org.testng.reporters.jq.ChronologicalPanel;18import org.testng.reporters.jq.GroupPanel;19import org.testng.reporters.jq.INavigatorPanel;20import org.testng.reporters.jq.IgnoredMethodsPanel;21import org.testng.reporters.jq.Model;22import org.testng.reporters.jq.NavigatorPanel;23import org.testng.reporters.jq.ReporterPanel;24import org.testng.reporters.jq.SuitePanel;25import org.testng.reporters.jq.TestNgXmlPanel;26import org.testng.reporters.jq.TestPanel;27import org.testng.reporters.jq.TimesPanel;28import org.testng.xml.XmlSuite;29import java.io.File;30import java.io.IOException;31import java.io.InputStream;32import java.util.Arrays;33import java.util.List;34public class Main implements IReporter {35 private static final String[] RESOURCES = new String[] {36 "jquery-1.7.1.min.js", "testng-reports.css", "testng-reports.js",37 "passed.png", "failed.png", "skipped.png", "navigator-bullet.png",38 "bullet_point.png", "collapseall.gif"39 };40 private Model m_model;41 private String m_outputDirectory;42 @Override43 public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites,44 String outputDirectory) {45 m_model = new Model(suites);46 m_outputDirectory = outputDirectory;47 XMLStringBuffer xsb = new XMLStringBuffer(" ");48 // Generate the top banner49 new BannerPanel(m_model).generate(xsb);50 // All the panels selectable from the navigator51 List<INavigatorPanel> panels = Arrays.<INavigatorPanel>asList(52 new TestNgXmlPanel(m_model),53 new TestPanel(m_model),54 new GroupPanel(m_model),55 new TimesPanel(m_model),56 new ReporterPanel(m_model),57 new IgnoredMethodsPanel(m_model),58 new ChronologicalPanel(m_model));59 // Generate the navigator on the left hand side60 new NavigatorPanel(m_model, panels).generate(xsb);61 xsb.push(D, C, "wrapper");...