diff --git a/src/SimNDT/gui/checkSimulationController.py b/src/SimNDT/gui/checkSimulationController.py new file mode 100644 index 0000000..5a1b260 --- /dev/null +++ b/src/SimNDT/gui/checkSimulationController.py @@ -0,0 +1,136 @@ +__author__ = 'Miguel Molero' + +import os, sys +import numpy as np +from PySide.QtCore import * +from PySide.QtGui import * + +from SimNDT.gui.ui_checksimulation import Ui_checkSimulationDialog +from SimNDT.gui.Warnings import WarningParms +import SimNDT.gui.constants as c + + +import SimNDT.core.checkSimulation as CheckSim + + + +class CheckSimulation(QDialog, Ui_checkSimulationDialog): + + def __init__(self, Scenario, Materials, Boundaries, Transducers, Inspection, Signal, Simulation, parent = None): + super(CheckSimulation, self).__init__(parent) + self.setupUi(self) + + + + self.closePushButton.pressed.connect(self.close) + + self.treeWidget.clear() + self.dispatcher = ['Scenario', 'Materials','Boundary','Inspection Method', 'Simulation Setup'] + + self.treeWidget.setColumnCount(2) + self.treeWidget.setHeaderLabels(["Setup","Comments"]) + self.treeWidget.setAlternatingRowColors(True) + self.treeWidget.header().resizeSection(0, 220) + + + self.Boundaries = Boundaries + self.Scenario = Scenario + self.Inspection = Inspection + + self.passAll = False + + scenario_tree = QTreeWidgetItem(self.treeWidget) + scenario_tree.setText(0,"Scenario") + scenario_tree.setIcon(0,QIcon(":/mark.png")) + + + material_tree = QTreeWidgetItem(self.treeWidget) + material_tree.setText(0,"Material") + material_tree.setIcon(0,QIcon(":/mark.png")) + + + self.message1 = None + self.message2 = None + self.message3 = None + self.message4 = None + self.message5 = None + + case = CheckSim.labels(Scenario, Materials) + + if case == 1: + self.message1 = "Number of labels in scenario is higher than the number of the defined materials. " + + #elif case == 2: + # self.message1 = "Number of labels in scenario is lower than the number of the defined materials. " + + + case = CheckSim.materials(Materials) + if case == 1: + self.message2 = "Repeated labels in Materials!!!. " + + case = CheckSim.isLabelsEquals(Scenario, Materials) + if case == 1: + self.message3 = "Scenario Labels do not coincide with Material Labels!!!. " + + + message = "" + if self.message1 is not None: + message +=self.message1 + material_tree.setIcon(0,QIcon(":/cross.png")) + + if self.message2 is not None: + message += self.message2 + material_tree.setIcon(0,QIcon(":/cross.png")) + + if self.message3 is not None: + message += self.message3 + material_tree.setIcon(0,QIcon(":/cross.png")) + + material_tree.setText(1,message) + + + + Scenario, Boundaries, isChange = CheckSim.boundariesReLoad(Scenario, Materials,Boundaries, Transducers[0], Inspection, Simulation) + + + if isChange: + self.Boundaries = Boundaries + self.Scenario = Scenario + self.message4 = "Found error, but fixed: All boundaries with Air Layers" + + + boundary_tree = QTreeWidgetItem(self.treeWidget) + boundary_tree.setText(0,"Boundaries Conditions") + boundary_tree.setIcon(0,QIcon(":/mark.png")) + + if self.message4 is not None: + boundary_tree.setText(1,self.message4) + + self.Inspection.setInspection(Scenario, Transducers[0], Simulation) + + + signal_tree = QTreeWidgetItem(self.treeWidget) + signal_tree.setText(0,"Signal Setup") + signal_tree.setIcon(0,QIcon(":/mark.png")) + + t = Simulation.t + try: + source = Signal.generate(t) + except Exception as e: + self.message5 = "Signal does not fit in the Simulation Time, Increase the Simulation Time to solve this issue" + signal_tree.setText(1,self.message5) + signal_tree.setIcon(0,QIcon(":/cross.png")) + + if self.message1 is None and self.message2 is None \ + and self.message3 is None and self.message4 is None\ + and self.message5 is None: + self.passAll = True + + + + def close(self): + + if self.passAll: + QDialog.accept(self) + else: + QDialog.reject(self)