class DataPanel(QtGui.QFrame): def __init__(self, parent): QtGui.QFrame.__init__(self, parent) self.setFrameShape(QtGui.QFrame.StyledPanel) self.setFrameShadow(QtGui.QFrame.Plain) self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) layout = QtGui.QFormLayout() layout.setLabelAlignment(QtCore.Qt.AlignRight) self.dataModel = DataModel("") self.input = ComboChoice(self, enums.gen_data_file_format.INPUT_TYPES, "", "config/ensemble/gen_data_param_init") self.modelWrap(self.input, "input_format") self.output = ComboChoice(self, enums.gen_data_file_format.OUTPUT_TYPES, "", "config/ensemble/gen_data_param_output") self.modelWrap(self.output, "output_format") self.template_file = PathChooser(self, "", "config/ensemble/gen_data_template_file", True , must_be_set=False) self.modelWrap(self.template_file, "template_file") self.template_key = PathChooser(self, "", "config/ensemble/gen_data_template_key", True , must_be_set=False) self.modelWrap(self.template_key, "template_key") self.init_file_fmt = PathChooser(self, "", "config/ensemble/gen_data_init_file_fmt", True , must_be_set=False) self.modelWrap(self.init_file_fmt, "init_file_fmt") self.file_generated_by_enkf = PathChooser(self, "", "config/ensemble/gen_data_file_generated_by_enkf", True, must_be_set=False) self.modelWrap(self.file_generated_by_enkf, "enkf_outfile") self.file_loaded_by_enkf = PathChooser(self, "", "config/ensemble/gen_data_file_loaded_by_enkf", True, must_be_set=False) self.modelWrap(self.file_loaded_by_enkf, "enkf_infile") self.min_std = PathChooser(self, "", "config/ensemble/gen_data_min_std", True, must_be_set=False) self.modelWrap(self.min_std, "min_std") layout.addRow("Input:", self.input) layout.addRow("Output:", self.output) layout.addRow("Template file:", self.template_file) layout.addRow("Template key:", self.template_key) layout.addRow("Init files:", self.init_file_fmt) layout.addRow("Include file:", self.file_generated_by_enkf) layout.addRow("Min. std.:", self.min_std) layout.addRow("File loaded by EnKF:", self.file_loaded_by_enkf) button = QtGui.QPushButton() button.setText("Reload") button.setMaximumWidth(70) self.connect(button, QtCore.SIGNAL('clicked()'), self._reload) layout.addRow("Reload template:", button) self.setLayout(layout) def _reload(self): self.dataModel.emitUpdate() def modelWrap(self, widget, attribute): widget.initialize = ert_gui.widgets.helpedwidget.ContentModel.emptyInitializer widget.setter = lambda model, value: self.dataModel.set(attribute, value) widget.getter = lambda model: self.dataModel[attribute] def setDataModel(self, dataModel): self.dataModel = dataModel self.input.fetchContent() self.output.fetchContent() self.template_file.fetchContent() self.template_key.fetchContent() self.init_file_fmt.fetchContent() self.file_generated_by_enkf.fetchContent() self.file_loaded_by_enkf.fetchContent() self.min_std.fetchContent()
class DataPanel(QtGui.QFrame): def __init__(self, parent): QtGui.QFrame.__init__(self, parent) self.setFrameShape(QtGui.QFrame.StyledPanel) self.setFrameShadow(QtGui.QFrame.Plain) self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) layout = QtGui.QFormLayout() layout.setLabelAlignment(QtCore.Qt.AlignRight) self.dataModel = DataModel("") self.input = ComboChoice(self, enums.gen_data_file_format.INPUT_TYPES, "", "config/ensemble/gen_data_param_init") self.modelWrap(self.input, "input_format") self.output = ComboChoice(self, enums.gen_data_file_format.OUTPUT_TYPES, "", "config/ensemble/gen_data_param_output") self.modelWrap(self.output, "output_format") self.template_file = PathChooser(self, "", "config/ensemble/gen_data_template_file", True , must_be_set=False) self.modelWrap(self.template_file, "template_file") self.template_key = PathChooser(self, "", "config/ensemble/gen_data_template_key", True , must_be_set=False) self.modelWrap(self.template_key, "template_key") self.init_file_fmt = PathChooser(self, "", "config/ensemble/gen_data_init_file_fmt", True , must_be_set=False) self.modelWrap(self.init_file_fmt, "init_file_fmt") self.file_generated_by_enkf = PathChooser(self, "", "config/ensemble/gen_data_file_generated_by_enkf", True, must_be_set=False) self.modelWrap(self.file_generated_by_enkf, "enkf_outfile") self.file_loaded_by_enkf = PathChooser(self, "", "config/ensemble/gen_data_file_loaded_by_enkf", True, must_be_set=False) self.modelWrap(self.file_loaded_by_enkf, "enkf_infile") self.min_std = PathChooser(self, "", "config/ensemble/gen_data_min_std", True, must_be_set=False) self.modelWrap(self.min_std, "min_std") layout.addRow("Input:", self.input) layout.addRow("Output:", self.output) layout.addRow("Template file:", self.template_file) layout.addRow("Template key:", self.template_key) layout.addRow("Init files:", self.init_file_fmt) layout.addRow("Include file:", self.file_generated_by_enkf) layout.addRow("Min. std.:", self.min_std) layout.addRow("File loaded by EnKF:", self.file_loaded_by_enkf) button = QtGui.QPushButton() button.setText("Reload") button.setMaximumWidth(70) self.connect(button, QtCore.SIGNAL('clicked()'), self._reload) layout.addRow("Reload template:", button) self.setLayout(layout) def _reload(self): self.dataModel.emitUpdate() def modelWrap(self, widget, attribute): widget.initialize = ert_gui.widgets.helpedwidget.ContentModel.emptyInitializer widget.setter = lambda model, value: self.dataModel.set(attribute, value) widget.getter = lambda model: self.dataModel[attribute] def setDataModel(self, dataModel): self.dataModel = dataModel self.input.fetchContent() self.output.fetchContent() self.template_file.fetchContent() self.template_key.fetchContent() self.init_file_fmt.fetchContent() self.file_generated_by_enkf.fetchContent() self.file_loaded_by_enkf.fetchContent() self.min_std.fetchContent()
class FieldPanel(QtGui.QFrame): def __init__(self, parent): QtGui.QFrame.__init__(self, parent) self.setFrameShape(QtGui.QFrame.StyledPanel) self.setFrameShadow(QtGui.QFrame.Plain) self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) layout = QtGui.QFormLayout() layout.setLabelAlignment(QtCore.Qt.AlignRight) self.fieldModel = FieldModel("") self.fieldType = ComboChoice(self, field_type.values(), "", "config/ensemble/field_type") self.fieldType.setter = lambda model, value: self.typeChanged(field_type[str(value)]) self.fieldType.getter = lambda model: str(self.fieldModel["type"]) self.fieldType.initialize = ContentModel.emptyInitializer self.min = DoubleBox(self, "", "config/ensemble/field_min") self.modelWrap(self.min, "min") self.max = DoubleBox(self, "", "config/ensemble/field_max") self.modelWrap(self.max, "max") self.init = ComboChoice(self, ["None", "EXP", "EXP0", "LOG", "LN","LN0", "POW10", "ADD", "MUL", "RANDINT", "RANDFLOAT"], "", "config/ensemble/field_init") self.modelWrap(self.init, "init") self.output = ComboChoice(self, ["None", "EXP", "EXP0", "LOG", "LN","LN0", "POW10", "ADD", "MUL", "RANDINT", "RANDFLOAT"], "", "config/ensemble/field_output") self.modelWrap(self.output, "output") self.init_files = PathChooser(self, "", "config/ensemble/field_init_files", True) self.modelWrap(self.init_files, "init_files") self.file_generated_by_enkf = PathChooser(self, "", "config/ensemble/field_file_generated_by_enkf", True) self.modelWrap(self.file_generated_by_enkf, "enkf_outfile") self.file_loaded_by_enkf = PathChooser(self, "", "config/ensemble/field_file_loaded_by_enkf", True) self.modelWrap(self.file_loaded_by_enkf, "enkf_infile") self.min_std = PathChooser(self, "", "config/ensemble/field_min_std", True, must_be_set=False) self.modelWrap(self.min_std, "min_std") layout.addRow("Field type:", self.fieldType) layout.addRow("Include file:", self.file_generated_by_enkf) # generated by ERT layout.addRow("Init files:", self.init_files) layout.addRow("Min:", self.min) layout.addRow("Max:", self.max) layout.addRow("Init transformation:", self.init) layout.addRow("Output transformation:", self.output) layout.addRow("Min. std.:", self.min_std) layout.addRow("File loaded by EnKF:", self.file_loaded_by_enkf) self.setLayout(layout) self.typeChanged(field_type.ECLIPSE_RESTART) def modelWrap(self, widget, attribute): widget.initialize = ContentModel.emptyInitializer widget.setter = lambda model, value: self.fieldModel.set(attribute, value) widget.getter = lambda model: self.fieldModel[attribute] def typeChanged(self, value): setattr(self.fieldModel, "type", value) self.min.setEnabled(True) self.max.setEnabled(True) self.init.setEnabled(True) self.output.setEnabled(True) self.init_files.setEnabled(True) self.file_generated_by_enkf.setEnabled(True) self.file_loaded_by_enkf.setEnabled(True) self.min_std.setEnabled(True) if value == field_type.ECLIPSE_RESTART: self.init.setEnabled(False) self.output.setEnabled(False) self.init_files.setEnabled(False) self.file_generated_by_enkf.setEnabled(False) self.file_loaded_by_enkf.setEnabled(False) self.min_std.setEnabled(False) elif value == field_type.ECLIPSE_PARAMETER: self.file_loaded_by_enkf.setEnabled(False) def setFieldModel(self, fieldModel): self.fieldModel = fieldModel self.fieldType.fetchContent() self.min.fetchContent() self.max.fetchContent() self.init.fetchContent() self.output.fetchContent() self.init_files.fetchContent() self.file_generated_by_enkf.fetchContent() self.file_loaded_by_enkf.fetchContent() self.min_std.fetchContent()
class FieldPanel(QtGui.QFrame): def __init__(self, parent): QtGui.QFrame.__init__(self, parent) self.setFrameShape(QtGui.QFrame.StyledPanel) self.setFrameShadow(QtGui.QFrame.Plain) self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) layout = QtGui.QFormLayout() layout.setLabelAlignment(QtCore.Qt.AlignRight) self.fieldModel = FieldModel("") self.fieldType = ComboChoice(self, field_type.values(), "", "config/ensemble/field_type") self.fieldType.setter = lambda model, value: self.typeChanged(field_type[str(value)]) self.fieldType.getter = lambda model: str(self.fieldModel["type"]) self.fieldType.initialize = ContentModel.emptyInitializer self.min = DoubleBox(self, "", "config/ensemble/field_min") self.modelWrap(self.min, "min") self.max = DoubleBox(self, "", "config/ensemble/field_max") self.modelWrap(self.max, "max") self.init = ComboChoice(self, ["None", "EXP", "LOG", "POW10", "ADD", "MUL", "RANDINT", "RANDFLOAT"], "", "config/ensemble/field_init") self.modelWrap(self.init, "init") self.output = ComboChoice(self, ["None", "EXP", "LOG", "POW10", "ADD", "MUL", "RANDINT", "RANDFLOAT"], "", "config/ensemble/field_output") self.modelWrap(self.output, "output") self.init_files = PathChooser(self, "", "config/ensemble/field_init_files", True) self.modelWrap(self.init_files, "init_files") self.file_generated_by_enkf = PathChooser(self, "", "config/ensemble/field_file_generated_by_enkf", True) self.modelWrap(self.file_generated_by_enkf, "enkf_outfile") self.file_loaded_by_enkf = PathChooser(self, "", "config/ensemble/field_file_loaded_by_enkf", True) self.modelWrap(self.file_loaded_by_enkf, "enkf_infile") self.min_std = PathChooser(self, "", "config/ensemble/field_min_std", True, must_be_set=False) self.modelWrap(self.min_std, "min_std") layout.addRow("Field type:", self.fieldType) layout.addRow("Include file:", self.file_generated_by_enkf) # generated by ERT layout.addRow("Init files:", self.init_files) layout.addRow("Min:", self.min) layout.addRow("Max:", self.max) layout.addRow("Init transformation:", self.init) layout.addRow("Output transformation:", self.output) layout.addRow("Min. std.:", self.min_std) layout.addRow("File loaded by EnKF:", self.file_loaded_by_enkf) self.setLayout(layout) self.typeChanged(field_type.ECLIPSE_RESTART) def modelWrap(self, widget, attribute): widget.initialize = ContentModel.emptyInitializer widget.setter = lambda model, value: self.fieldModel.set(attribute, value) widget.getter = lambda model: self.fieldModel[attribute] def typeChanged(self, value): setattr(self.fieldModel, "type", value) self.min.setEnabled(True) self.max.setEnabled(True) self.init.setEnabled(True) self.output.setEnabled(True) self.init_files.setEnabled(True) self.file_generated_by_enkf.setEnabled(True) self.file_loaded_by_enkf.setEnabled(True) self.min_std.setEnabled(True) if value == field_type.ECLIPSE_RESTART: self.init.setEnabled(False) self.output.setEnabled(False) self.init_files.setEnabled(False) self.file_generated_by_enkf.setEnabled(False) self.file_loaded_by_enkf.setEnabled(False) self.min_std.setEnabled(False) elif value == field_type.ECLIPSE_PARAMETER: self.file_loaded_by_enkf.setEnabled(False) def setFieldModel(self, fieldModel): self.fieldModel = fieldModel self.fieldType.fetchContent() self.min.fetchContent() self.max.fetchContent() self.init.fetchContent() self.output.fetchContent() self.init_files.fetchContent() self.file_generated_by_enkf.fetchContent() self.file_loaded_by_enkf.fetchContent() self.min_std.fetchContent()