def set_infiltration_cell(self, column):
     # text plus button for infiltration editor
     option_section = self.project.find_section('OPTIONS')
     tb = TextPlusButton(self)
     tb.textbox.setText(option_section.infiltration)
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_infilt(column))
     self.tblGeneric.setCellWidget(18, column, tb)
 def set_infiltration_cell(self, column):
     # text plus button for infiltration editor
     option_section = self.project.find_section('OPTIONS')
     tb = TextPlusButton(self)
     tb.textbox.setText(option_section.infiltration)
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_infilt(column))
     self.tblGeneric.setCellWidget(18, column, tb)
 def set_infiltration_cell(self, row, column):
     # text plus button for infiltration editor
     tb = TextPlusButton(self)
     tb.textbox.setText(self.project.options.infiltration)
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_infilt(column))
     self.tblGeneric.setItem(row, column, QTableWidgetItem(''))
     self.tblGeneric.setCellWidget(row, column, tb)
 def set_groundwater_cell(self, row, column):
     # text plus button for groundwater editor
     tb = TextPlusButton(self)
     tb.textbox.setText('NO')
     for value in self.project.groundwater.value:
         if value.subcatchment == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_groundwater(column))
     self.tblGeneric.setCellWidget(row, column, tb)
 def set_channel_cell(self, column):
     # text plus button for demand categories editor
     # xsection = CrossSection()
     tb = TextPlusButton(self)
     if self.defaults is not None and self.defaults.xsection is not None:
         self.channel_geom = self.defaults.xsection.shape.name
     tb.textbox.setText(self.channel_geom)
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_channel(column, self.defaults))
     self.tbl_3.setCellWidget(4, 0, tb)
 def set_initial_buildup_cell(self, row, column):
     # text plus button for initial buildup
     tb = TextPlusButton(self)
     tb.textbox.setText('NONE')
     for value in self.project.loadings.value:
         if value.subcatchment_name == str(self.tblGeneric.item(0, column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_loadings_controls(column))
     self.tblGeneric.setCellWidget(row, column, tb)
Example #7
0
 def set_quality_cell(self, column):
     # text plus button for source quality editor
     tb = TextPlusButton(self)
     section = self.project.find_section('SOURCES')
     sources_list = section.value[0:]
     for source in sources_list:
         if source.name == str(self.tblGeneric.item(0, column).text()):
             tb.textbox.setText(str(source.baseline_strength))
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_quality(column))
     self.tblGeneric.setCellWidget(16, column, tb)
Example #8
0
 def set_cross_section_cell(self, column):
     # text plus button for cross section
     tb = TextPlusButton(self)
     for value in self.project.xsections.value:
         if value.link == str(self.tblGeneric.item(0, column).text()):
             tb.textbox.setText(value.shape.name)
             self.tblGeneric.setItem(
                 6, column, QtGui.QTableWidgetItem(value.geometry1))
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.show_cross_section(column))
     self.tblGeneric.setCellWidget(5, column, tb)
Example #9
0
 def set_treatment_cell(self, column):
     # text plus button for treatments editor
     tb = TextPlusButton(self)
     tb.textbox.setText("NO")
     treatment_list = self.project.treatment.value[0:]
     for value in treatment_list:
         if value.node == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_treatments(column))
     self.tblGeneric.setCellWidget(6, column, tb)
 def set_quality_cell(self, column):
     # text plus button for source quality editor
     tb = TextPlusButton(self)
     name = str(self.tblGeneric.item(0, column).text())
     try:
         source = self.project_section.value[name]
         tb.textbox.setText(str(source.baseline_strength))
     except:
         pass
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_quality(column))
     self.tblGeneric.setCellWidget(8, column, tb)
 def set_treatment_cell(self, column):
     # text plus button for treatments editor
     tb = TextPlusButton(self)
     tb.textbox.setText("NO")
     treatment_section = self.project.find_section("TREATMENT")
     treatment_list = treatment_section.value[0:]
     for value in treatment_list:
         if value.node == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_treatments(column))
     self.tblGeneric.setCellWidget(6, column, tb)
 def set_initial_buildup_cell(self, column):
     # text plus button for initial buildup
     tb = TextPlusButton(self)
     tb.textbox.setText('NONE')
     loadings_section = self.project.find_section('LOADINGS')
     loadings_list = loadings_section.value[0:]
     for value in loadings_list:
         if value.subcatchment_name == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_loadings_controls(column))
     self.tblGeneric.setCellWidget(23, column, tb)
 def set_deep_equation(self, column):
     # text plus button for custom deep equation
     tb = TextPlusButton(self)
     tb.textbox.setText('NO')
     groundwater_section = self.project.groundwater
     groundwater_list = groundwater_section.value[0:]
     for value in groundwater_list:
         if value.subcatchment == str(self.tblGeneric.item(0,column).text()) and len(value.custom_deep_flow_equation) > 0:
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_deep(column))
     self.tblGeneric.setCellWidget(15, column, tb)
 def set_groundwater_cell(self, column):
     # text plus button for groundwater editor
     tb = TextPlusButton(self)
     tb.textbox.setText('NO')
     groundwater_section = self.project.groundwater
     groundwater_list = groundwater_section.value[0:]
     for value in groundwater_list:
         if value.subcatchment == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_groundwater(column))
     self.tblGeneric.setCellWidget(19, column, tb)
 def set_initial_buildup_cell(self, column):
     # text plus button for initial buildup
     tb = TextPlusButton(self)
     tb.textbox.setText('NONE')
     loadings_section = self.project.find_section('LOADINGS')
     loadings_list = loadings_section.value[0:]
     for value in loadings_list:
         if value.subcatchment_name == str(
                 self.tblGeneric.item(0, column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_loadings_controls(column))
     self.tblGeneric.setCellWidget(23, column, tb)
 def set_land_use_cell(self, column):
     # text plus button for land use coverages
     tb = TextPlusButton(self)
     section = self.project.find_section("COVERAGES")
     coverage_list = section.value[0:]
     coverage_count = 0
     for value in coverage_list:
         if value.subcatchment_name == str(self.tblGeneric.item(0,column).text()):
             coverage_count += 1
     tb.textbox.setText(str(coverage_count))
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_coverage_controls(column))
     self.tblGeneric.setCellWidget(22, column, tb)
 def set_lid_control_cell(self, column):
     # text plus button for lid controls
     tb = TextPlusButton(self)
     section = self.project.find_section("LID_USAGE")
     lid_list = section.value[0:]
     lid_count = 0
     for value in lid_list:
         if value.subcatchment_name == str(self.tblGeneric.item(0,column).text()):
             lid_count += 1
     tb.textbox.setText(str(lid_count))
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_lid_controls(column))
     self.tblGeneric.setCellWidget(21, column, tb)
 def set_seepage_loss_cell(self, column):
     # text plus button for seepage loss editor
     tb = TextPlusButton(self)
     tb.textbox.setText("NO")
     storage_section = self.project.find_section("STORAGE")
     storage_list = storage_section.value[0:]
     for value in storage_list:
         if value.name == str(self.tblGeneric.item(0, column).text()):
             if value.seepage_hydraulic_conductivity > '0':
                 tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_seepage_loss(column))
     self.tblGeneric.setCellWidget(12, column, tb)
 def set_land_use_cell(self, row, column):
     # text plus button for land use coverages
     tb = TextPlusButton(self)
     section = self.project.find_section("COVERAGES")
     coverage_list = section.value[0:]
     coverage_count = 0
     for value in coverage_list:
         if value.subcatchment_name == str(self.tblGeneric.item(0,column).text()):
             coverage_count += 1
     tb.textbox.setText(str(coverage_count))
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_coverage_controls(column))
     self.tblGeneric.setCellWidget(row, column, tb)
 def set_deep_equation(self, column):
     # text plus button for custom deep equation
     tb = TextPlusButton(self)
     tb.textbox.setText('NO')
     groundwater_section = self.project.groundwater
     groundwater_list = groundwater_section.value[0:]
     for value in groundwater_list:
         if value.subcatchment == str(
                 self.tblGeneric.item(0, column).text()) and len(
                     value.custom_deep_flow_equation) > 0:
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_deep(column))
     self.tblGeneric.setCellWidget(15, column, tb)
 def set_lid_control_cell(self, column):
     # text plus button for lid controls
     tb = TextPlusButton(self)
     section = self.project.find_section("LID_USAGE")
     lid_list = section.value[0:]
     lid_count = 0
     for value in lid_list:
         if value.subcatchment_name == str(
                 self.tblGeneric.item(0, column).text()):
             lid_count += 1
     tb.textbox.setText(str(lid_count))
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_lid_controls(column))
     self.tblGeneric.setCellWidget(21, column, tb)
Example #22
0
 def set_treatment_cell(self, column):
     # text plus button for treatments editor
     tb = TextPlusButton(self)
     tb.textbox.setText("NO")
     treatment_section = self.project.find_section("TREATMENT")
     treatment_list = treatment_section.value[0:]
     for value in treatment_list:
         if value.node == str(self.tblGeneric.item(0, column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_treatments(column))
     row = self.header_index("treatment")
     if row >= 0:
         self.tblGeneric.setCellWidget(row, column, tb)
Example #23
0
 def set_lateral_equation(self, column):
     # text plus button for custom lateral equation
     tb = TextPlusButton(self)
     tb.textbox.setText('NO')
     gwf_section = self.project.gwf
     gwf_list = gwf_section.value[0:]
     for value in gwf_list:
         if (value.subcatchment_name == str(
                 self.tblGeneric.item(0, column).text())
                 and len(value.custom_equation) > 0
                 and value.groundwater_flow_type
                 == GroundwaterFlowType.LATERAL):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_lateral(column))
     self.tblGeneric.setCellWidget(14, column, tb)
Example #24
0
    def set_cross_section_cell(self, column):
        # text plus button for cross section
        tb = TextPlusButton(self)
        xsection = None
        link_id = self.tblGeneric.item(0, column).text()
        if len(self.project.xsections.value) > 0:
            for value in self.project.xsections.value:
                if value.link == link_id:
                    tb.textbox.setText(value.shape.name)
                    self.tblGeneric.setItem(6, column,
                                            QTableWidgetItem(value.geometry1))
                    self.tblGeneric.setItem(
                        18, column, QTableWidgetItem(value.culvert_code))
                    xsection = value
                    break
        else:
            if self._main_form and self._main_form.project_settings and \
                    self._main_form.project_settings.xsection:
                value = self._main_form.project_settings.xsection
                tb.textbox.setText(value.shape.name)
                self.tblGeneric.setItem(6, column,
                                        QTableWidgetItem(value.geometry1))
                self.tblGeneric.setItem(18, column,
                                        QTableWidgetItem(value.culvert_code))

        if not xsection:
            # create new xsection
            xsection = CrossSection()
            if self._main_form and self._main_form.project_settings and \
                    self._main_form.project_settings.xsection:
                self._main_form.project_settings.apply_default_attributes(
                    xsection)
                tb.textbox.setText(xsection.shape.name)
                self.tblGeneric.setItem(6, column,
                                        QTableWidgetItem(xsection.geometry1))
                self.tblGeneric.setItem(
                    18, column, QTableWidgetItem(xsection.culvert_code))
                xsection.link = link_id
                if self._main_form.project:
                    self._main_form.project.xsections.value.append(xsection)

        tb.textbox.setEnabled(False)
        tb.column = column
        tb.button.clicked.connect(self.show_cross_section(column))
        self.tblGeneric.setCellWidget(5, column, tb)
Example #25
0
 def set_inflow_cell(self, column):
     tb = TextPlusButton(self)
     tb.textbox.setText("NO")
     direct_list = self.project.inflows.value[0:]
     for value in direct_list:
         if value.node == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     dry_list = self.project.dwf.value[0:]
     for value in dry_list:
         if value.node == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     rdii_list = self.project.rdii.value[0:]
     for value in rdii_list:
         if value.node == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_inflows(column))
     self.tblGeneric.setCellWidget(5, column, tb)
 def set_infilmodel_cell(self, column):
     # text plus button for demand categories editor
     tb = TextPlusButton(self)
     self.infil_model = E_InfilModel.HORTON.name
     if self.defaults:
         self.infil_model = self.defaults.properties_sub_values[self.defaults.infil_model_key]
         # if self.qsettings.contains(self.default_key_infilmodel):
         #     model_obj = self.qsettings.value(self.default_key_infilmodel)
         #     # model_name = type(model_obj)
         #     if model_obj is not None:
         #         self.infil_model = unicode(model_obj.model_type().name)
         # else:
         #     self.infil_model = unicode(self.qsettings.value("Defaults/" + self.properties[len(self.properties) - 1],
         #                                                self.infil_model))
     tb.textbox.setText(self.infil_model)
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_infilmodel(column))
     self.tbl_2.setCellWidget(self.tbl_2.rowCount() - 1, 0, tb)
Example #27
0
 def set_demand_cell(self, column):
     # text plus button for demand categories editor
     tb = TextPlusButton(self)
     section = self.project.find_section('DEMANDS')
     demands_list = section.value[0:]
     demand_count = 0
     for demand in demands_list:
         if demand.junction_name == str(self.tblGeneric.item(0, column).text()):
             demand_count += 1
     if demand_count == 0:
         # did not find any in demands table, so use whats in junction table
         section = self.project.find_section('JUNCTIONS')
         junctions_list = section.value[0:]
         for junction in junctions_list:
             if junction.name == str(self.tblGeneric.item(0, column).text()):
                 demand_count += 1
     tb.textbox.setText(str(demand_count))
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_demands(column))
     self.tblGeneric.setCellWidget(8, column, tb)
 def set_inflow_cell(self, column):
     tb = TextPlusButton(self)
     tb.textbox.setText("NO")
     direct_section = self.project.find_section("INFLOWS")
     direct_list = direct_section.value[0:]
     for value in direct_list:
         if value.node == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     dry_section = self.project.find_section("DWF")
     dry_list = dry_section.value[0:]
     for value in dry_list:
         if value.node == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     rdii_section = self.project.find_section("RDII")
     rdii_list = rdii_section.value[0:]
     for value in rdii_list:
         if value.node == str(self.tblGeneric.item(0,column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_inflows(column))
     self.tblGeneric.setCellWidget(5, column, tb)
Example #29
0
 def set_inflow_cell(self, column):
     tb = TextPlusButton(self)
     tb.textbox.setText("NO")
     direct_section = self.project.find_section("INFLOWS")
     direct_list = direct_section.value[0:]
     for value in direct_list:
         if value.node == str(self.tblGeneric.item(0, column).text()):
             tb.textbox.setText('YES')
     dry_section = self.project.find_section("DWF")
     dry_list = dry_section.value[0:]
     for value in dry_list:
         if value.node == str(self.tblGeneric.item(0, column).text()):
             tb.textbox.setText('YES')
     rdii_section = self.project.find_section("RDII")
     rdii_list = rdii_section.value[0:]
     for value in rdii_list:
         if value.node == str(self.tblGeneric.item(0, column).text()):
             tb.textbox.setText('YES')
     tb.textbox.setEnabled(False)
     tb.column = column
     tb.button.clicked.connect(self.make_show_inflows(column))
     row = self.header_index("inflow")
     if row >= 0:
         self.tblGeneric.setCellWidget(row, column, tb)
    def set_cross_section_cell(self, column):
        # text plus button for cross section
        tb = TextPlusButton(self)
        xsection = None
        link_id = self.tblGeneric.item(0, column).text()
        if len(self.project.xsections.value) > 0:
            for value in self.project.xsections.value:
                if value.link == link_id:
                    tb.textbox.setText(value.shape.name)
                    self.tblGeneric.setItem(6, column,
                                            QTableWidgetItem(value.geometry1))
                    self.tblGeneric.setItem(
                        18, column, QTableWidgetItem(value.culvert_code))
                    xsection = value
                    break
        else:
            if self._main_form and self._main_form.project_settings and \
                    self._main_form.project_settings.xsection:
                value = self._main_form.project_settings.xsection
                tb.textbox.setText(value.shape.name)
                self.tblGeneric.setItem(6, column,
                                        QTableWidgetItem(value.geometry1))
                self.tblGeneric.setItem(18, column,
                                        QTableWidgetItem(value.culvert_code))

        if not xsection:
            # create new xsection
            xsection = CrossSection()
            if self._main_form and self._main_form.project_settings and \
                    self._main_form.project_settings.xsection:
                self._main_form.project_settings.apply_default_attributes(
                    xsection)
                tb.textbox.setText(xsection.shape.name)
                self.tblGeneric.setItem(6, column,
                                        QTableWidgetItem(xsection.geometry1))
                self.tblGeneric.setItem(
                    18, column, QTableWidgetItem(xsection.culvert_code))
                xsection.link = link_id
                if self._main_form.project:
                    self._main_form.project.xsections.value.append(xsection)

        tb.textbox.setEnabled(False)
        tb.column = column
        tb.button.clicked.connect(self.show_cross_section(column))
        self.tblGeneric.setCellWidget(5, column, tb)

        shapename = tb.textbox.text()
        if shapename == 'IRREGULAR':
            # display max depth as ymax-ymin
            if len(self.project.xsections.value) > 0:
                for value in self.project.xsections.value:
                    if value.link == link_id:
                        transect_id = value.geometry1
                        transect = self.project.transects.value[transect_id]
                        if isinstance(transect, Transect):
                            ymax = 0
                            ymin = 9999
                            for value in transect.stations:
                                yval = float(value[0])
                                if yval > ymax:
                                    ymax = yval
                                if yval < ymin:
                                    ymin = yval
                            self.tblGeneric.setItem(
                                6, column, QTableWidgetItem(str(ymax - ymin)))
        if shapename == 'HORIZ_ELLIPSE' or shapename == 'VERT_ELLIPSE' or shapename == 'ARCH' or shapename == 'IRREGULAR' or shapename == 'DUMMY':
            # disable editing for the max depth field
            item = QTableWidgetItem(self.tblGeneric.item(6, column).text())
            item.setFlags(item.flags() & ~QtCore.Qt.ItemIsEditable
                          & ~QtCore.Qt.ItemIsSelectable)
            self.tblGeneric.setItem(6, column, item)
        else:
            item = QTableWidgetItem(self.tblGeneric.item(6, column).text())
            item.setFlags(item.flags() | QtCore.Qt.ItemIsEditable
                          | QtCore.Qt.ItemIsSelectable
                          | QtCore.Qt.ItemIsUserCheckable
                          | QtCore.Qt.ItemIsDragEnabled)
            self.tblGeneric.setItem(6, column, item)