/* * This file is part of ReqTracker. * * Copyright (C) 2015 Taleh Didover, Florian Gerdes, Dmitry Gorelenkov, * Rajab Hassan Kaoneka, Katsiaryna Krauchanka, Tobias Polzer, * Gayathery Sathya, Lukas Tajak * * ReqTracker is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * ReqTracker is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with ReqTracker. If not, see <http://www.gnu.org/licenses/>. */ package de.fau.osr.gui.View; import de.fau.osr.bl.RequirementsTraceabilityMatrix; import de.fau.osr.bl.RequirementsTraceabilityMatrixByImpact; import de.fau.osr.gui.util.SpiceTraceabilityProgressBar; import javax.swing.*; import java.awt.EventQueue; import java.awt.event.WindowEvent; import java.io.IOException; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.FutureTask; public class TracabilityMatrix_View { /** * shows the traceability matrix window with filled in data * @param requirementsTraceabilityMatrix matrix to show */ public void showTraceabilityMatrix(RequirementsTraceabilityMatrix requirementsTraceabilityMatrix){ try { TraceabilityMatrixViewHandler trMatrix = new TraceabilityMatrixViewHandler(); trMatrix.setRequirementsTraceabilityMatrix(requirementsTraceabilityMatrix); trMatrix.initTable(); trMatrix.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); trMatrix.setVisible(true); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * shows the traceability matrix (by impact) window with filled in data * @param requirementsTraceabilityMatrixByImpact the matrix which contains the info for traceability */ public void showTraceabilityMatrixByImpact(RequirementsTraceabilityMatrixByImpact requirementsTraceabilityMatrixByImpact){ TraceabilityMatrixByImpactViewHandler trMatrixByImpact = new TraceabilityMatrixByImpactViewHandler(); trMatrixByImpact.contentPane.setRequirementsTraceabilityMatrix(requirementsTraceabilityMatrixByImpact); trMatrixByImpact.contentPane.initTable(); trMatrixByImpact.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); trMatrixByImpact.setVisible(true); } public void showTraceabilityMatrixByImpactInTabbedView(RequirementsTraceabilityMatrixByImpact requirementsTraceabilityMatrixByImpact,TraceabilityMatrixByImpactViewHandlerPanel traceabilityMatrixByImpactViewHandlerPanel){ traceabilityMatrixByImpactViewHandlerPanel.setRequirementsTraceabilityMatrix(requirementsTraceabilityMatrixByImpact); traceabilityMatrixByImpactViewHandlerPanel.initTable(); } /** * method to show progress bar for the processing of traceability matrix by impact values * @param tr */ public void showTraceabilityMatrixByImpactProgressBar(RequirementsTraceabilityMatrixByImpact tr){ final FutureTask<SpiceTraceabilityProgressBar> progressBarTask = new FutureTask<>( () -> { SpiceTraceabilityProgressBar result = new SpiceTraceabilityProgressBar(); result.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); result.setProgressBarContent("Generating Traceability Matrix (by Impact)"); result.setVisible(true); return result; }); EventQueue.invokeLater(progressBarTask); try { tr.setProgressBar(progressBarTask.get()); } catch (InterruptedException | ExecutionException e) { throw new RuntimeException(e); } } }