blob: 7ebc743b42de92fdc32fd3daaa34a29ed08925b5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2016 Parasoft and University of Eindhoven.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Janusz Studzizba(Parasoft) - initial API and implementation
* Dariusz Oszczedlowski(Parasoft) - initial API and implementation
* Magdalena Gniewek(Parasoft) - initial API and implementation
* Michal Wlodarczyk(Parasoft) - initial API and implementation
* Alex Aroyo (UE) - Metrics reports implementation
*******************************************************************************/
package org.eclipse.opencert.webapp.reports.view.metrics;
import org.eclipse.opencert.webapp.reports.containers.AssuranceProjectWrapper;
import org.eclipse.opencert.webapp.reports.export.docx.MetricsEstimationReportDocxGenerator;
import org.eclipse.opencert.webapp.reports.view.common.AbstractBaselineFrameworkReport;
import org.eclipse.opencert.webapp.reports.view.common.GUIMode;
import org.eclipse.opencert.webapp.reports.view.common.IReport;
import org.eclipse.opencert.webapp.reports.view.common.ReportID;
import org.eclipse.opencert.webapp.reports.view.export.ExportToDocxPanel;
import com.vaadin.annotations.Theme;
import com.vaadin.server.VaadinService;
import com.vaadin.ui.Component;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.HorizontalSplitPanel;
@Theme("opencerttheme")
public class MetricsEstimationReport extends AbstractBaselineFrameworkReport implements IReport
{
private MetricsEstimationTreeMenu metricsEstimationTreeMenu;
private final ExportToDocxPanel _exportTopDocxPanel;
private final MetricsEstimationReportDocxGenerator docxGenerator;
public MetricsEstimationReport()
{
final String basePath = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath();
docxGenerator = new MetricsEstimationReportDocxGenerator(basePath);
_exportTopDocxPanel = new ExportToDocxPanel(docxGenerator);
addBaselineChangeListener(_exportTopDocxPanel);
}
@Override
public String getTitle()
{
return "Metrics Estimation report";
}
@Override
public Component getMainComponent(GUIMode guiMode)
{
HorizontalSplitPanel mainComponent = new HorizontalSplitPanel();
metricsEstimationTreeMenu = new MetricsEstimationTreeMenu();
addBaselineChangeListener(metricsEstimationTreeMenu);
MetricsImplementationPanel metricsImplementationPanel = new MetricsImplementationPanel();
MetricsEstimationTreeMenu metricsETM = metricsEstimationTreeMenu;
metricsETM.addMetricsEstimationTreeMenuListener(metricsImplementationPanel);
metricsETM.addMetricsEstimationTreeMenuListener(docxGenerator);
mainComponent.setFirstComponent(metricsEstimationTreeMenu);
mainComponent.setSplitPosition(17);
mainComponent.setLocked(true);
mainComponent.setSecondComponent(metricsImplementationPanel);
return mainComponent;
}
@Override
public ReportID getReportID()
{
return ReportID.METRICS_ESTIMATION;
}
@Override
public Component getExportToDocxComponent() {
HorizontalLayout panel = new HorizontalLayout();
panel.addComponent(_exportTopDocxPanel.getButton());
return panel;
}
@Override
public void projectChanged(AssuranceProjectWrapper newProject)
{
super.projectChanged(newProject);
_exportTopDocxPanel.setNewProject(newProject);
metricsEstimationTreeMenu.setCurrentProject(newProject);
}
}