import sys, os
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt

from SalomeToCenosUI import groupChoiceUI


class SalomeMeshToCenos(groupChoiceUI):
    def __init__(self, vList, aList, lList, mList, parent=None):
        self._wasOk = False
        self.volumeList = vList
        self.areaList = aList
        self.lineList = lList
        self.meshGroupList = mList
        groupChoiceUI.__init__(self, parent)
        self.setupUi()
		
    def setupUi(self):
        groupChoiceUI.setupUi(self, self.volumeList, self.areaList, self.lineList, self.meshGroupList)
        self.handleSelectAll(self.selectAll)
        self.handleDeselectAll(self.deselectAll)
        self.handleMeshToCenos(self.accept)
		
				
    def handleSelectAll(self,callbackFunction):
        self.selectAllButton.pressed.connect(callbackFunction)
		
    def handleDeselectAll(self,callbackFunction):
        self.deselectAllButton.pressed.connect(callbackFunction)
		
    def handleMeshToCenos(self,callbackFunction):
        self.meshToCenosBtn.pressed.connect(callbackFunction)
		
    def selectAll(self):
        """Selects all checkboxes"""
        for cb in self.checkBoxes :
            cb.setChecked(True)

    def deselectAll(self):
        """Deselects all checkboxes"""
        for cb in self.checkBoxes :
            cb.setChecked(False)
		
    def meshToCenos(self):
        """Copies all selected geometry groups to mesh groups"""
        for cb in self.checkBoxes :
            cb.setChecked(False)
		
    def accept(self):
        self._wasOk = True
        QtWidgets.QDialog.accept(self)
		
    def getSelectedGroupNames(self):
        """returns list of names of all selcted checkboxes"""
        checkedList = []
        for cb in self.checkBoxes :
            if cb.isChecked():
                checkedList.append(cb.text())
        return checkedList
			
    def getMovingMesh(self):
        """returns true if moving mesh was selected"""
        # previously meshMotion checkbox was used
        # now dump script always
        return True
        # if self.multiMesh.isChecked():
            # return True
        # else:
            # return False
		
    def wasOk(self):
        return self._wasOk
			
