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)
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)
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)
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)
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)
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)
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)
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)
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)
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)