mirror of https://gitlab.com/pamhyr/pamhyr2
DIF Complete
parent
de72e2e96b
commit
1e4761609d
|
|
@ -245,7 +245,7 @@ class D90AdisTSWindow(PamhyrWindow):
|
|||
return
|
||||
|
||||
logger.debug(
|
||||
"IC: Paste: " +
|
||||
"D90: Paste: " +
|
||||
f"header = {header}, " +
|
||||
f"data = {data}"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ from PyQt5.QtWidgets import (
|
|||
|
||||
from View.Tools.PamhyrTable import PamhyrTableModel
|
||||
|
||||
from View.D90AdisTS.UndoCommand import (
|
||||
from View.DIFAdisTS.UndoCommand import (
|
||||
SetCommand, AddCommand, SetCommandSpec,
|
||||
DelCommand,
|
||||
)
|
||||
|
|
@ -69,6 +69,8 @@ class ComboBoxDelegate(QItemDelegate):
|
|||
lambda kp: str(kp), reach.reach.get_kp()
|
||||
)
|
||||
)
|
||||
elif self._mode == "method":
|
||||
val = self._data.dif_adists.lst[0].types
|
||||
else:
|
||||
val = list(
|
||||
map(
|
||||
|
|
@ -106,11 +108,11 @@ class ComboBoxDelegate(QItemDelegate):
|
|||
self.commitData.emit(self.sender())
|
||||
|
||||
|
||||
class D90TableModel(PamhyrTableModel):
|
||||
class DIFTableModel(PamhyrTableModel):
|
||||
def __init__(self, river=None, data=None, **kwargs):
|
||||
self._river = river
|
||||
|
||||
super(D90TableModel, self).__init__(data=data, **kwargs)
|
||||
super(DIFTableModel, self).__init__(data=data, **kwargs)
|
||||
|
||||
self._data = data
|
||||
|
||||
|
|
@ -127,8 +129,8 @@ class D90TableModel(PamhyrTableModel):
|
|||
row = index.row()
|
||||
column = index.column()
|
||||
|
||||
if self._headers[column] is "name":
|
||||
n = self._lst[row].name
|
||||
if self._headers[column] is "method":
|
||||
n = self._lst[row].method
|
||||
if n is None or n == "":
|
||||
return self._trad['not_associated']
|
||||
return n
|
||||
|
|
@ -147,8 +149,18 @@ class D90TableModel(PamhyrTableModel):
|
|||
if n is None:
|
||||
return self._trad['not_associated']
|
||||
return n
|
||||
elif self._headers[column] is "d90":
|
||||
n = self._lst[row].d90
|
||||
elif self._headers[column] is "dif":
|
||||
n = self._lst[row].dif
|
||||
if n is None:
|
||||
return self._trad['not_associated']
|
||||
return n
|
||||
elif self._headers[column] is "b":
|
||||
n = self._lst[row].b
|
||||
if n is None:
|
||||
return self._trad['not_associated']
|
||||
return n
|
||||
elif self._headers[column] is "c":
|
||||
n = self._lst[row].c
|
||||
if n is None:
|
||||
return self._trad['not_associated']
|
||||
return n
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ from PyQt5.QtWidgets import (
|
|||
|
||||
from View.Tools.PamhyrTable import PamhyrTableModel
|
||||
|
||||
from View.D90AdisTS.UndoCommand import (
|
||||
from View.DIFAdisTS.UndoCommand import (
|
||||
SetCommand,
|
||||
)
|
||||
|
||||
|
|
@ -43,9 +43,9 @@ logger = logging.getLogger()
|
|||
|
||||
_translate = QCoreApplication.translate
|
||||
|
||||
class D90TableDefaultModel(PamhyrTableModel):
|
||||
class DIFTableDefaultModel(PamhyrTableModel):
|
||||
def __init__(self, **kwargs):
|
||||
super(D90TableDefaultModel, self).__init__(**kwargs)
|
||||
super(DIFTableDefaultModel, self).__init__(**kwargs)
|
||||
|
||||
def data(self, index, role):
|
||||
if role != Qt.ItemDataRole.DisplayRole:
|
||||
|
|
@ -54,10 +54,23 @@ class D90TableDefaultModel(PamhyrTableModel):
|
|||
row = index.row()
|
||||
column = index.column()
|
||||
|
||||
if self._headers[column] is "name":
|
||||
return self._data[row].name
|
||||
elif self._headers[column] is "d90":
|
||||
n = self._data[row].d90
|
||||
if self._headers[column] is "method":
|
||||
n = self._data[row].method
|
||||
if n is None:
|
||||
return self._trad['not_associated']
|
||||
return n
|
||||
elif self._headers[column] is "dif":
|
||||
n = self._data[row].dif
|
||||
if n is None:
|
||||
return self._trad['not_associated']
|
||||
return n
|
||||
elif self._headers[column] is "b":
|
||||
n = self._data[row].b
|
||||
if n is None:
|
||||
return self._trad['not_associated']
|
||||
return n
|
||||
elif self._headers[column] is "c":
|
||||
n = self._data[row].c
|
||||
if n is None:
|
||||
return self._trad['not_associated']
|
||||
return n
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ from PyQt5.QtWidgets import (
|
|||
QMessageBox, QUndoCommand, QUndoStack,
|
||||
)
|
||||
|
||||
from Model.D90AdisTS.D90AdisTS import D90AdisTS
|
||||
from Model.D90AdisTS.D90AdisTSList import D90AdisTSList
|
||||
from Model.DIFAdisTS.DIFAdisTS import DIFAdisTS
|
||||
from Model.DIFAdisTS.DIFAdisTSList import DIFAdisTSList
|
||||
|
||||
|
||||
class SetCommand(QUndoCommand):
|
||||
|
|
@ -35,28 +35,40 @@ class SetCommand(QUndoCommand):
|
|||
self._row = row
|
||||
self._column = column
|
||||
|
||||
if self._column == "name":
|
||||
self._old = self._data[self._row].name
|
||||
elif self._column == "d90":
|
||||
self._old = self._data[self._row].d90
|
||||
if self._column == "method":
|
||||
self._old = self._data[self._row].method
|
||||
elif self._column == "dif":
|
||||
self._old = self._data[self._row].dif
|
||||
elif self._column == "b":
|
||||
self._old = self._data[self._row].b
|
||||
elif self._column == "c":
|
||||
self._old = self._data[self._row].c
|
||||
|
||||
_type = float
|
||||
if column == "name":
|
||||
if column == "method":
|
||||
_type = str
|
||||
|
||||
self._new = _type(new_value)
|
||||
|
||||
def undo(self):
|
||||
if self._column == "name":
|
||||
self._data[self._row].name = self._old
|
||||
elif self._column == "d90":
|
||||
self._data[self._row].d90 = self._old
|
||||
if self._column == "method":
|
||||
self._data[self._row].method = self._old
|
||||
elif self._column == "dif":
|
||||
self._data[self._row].dif = self._old
|
||||
elif self._column == "b":
|
||||
self._data[self._row].b = self._old
|
||||
elif self._column == "c":
|
||||
self._data[self._row].c = self._old
|
||||
|
||||
def redo(self):
|
||||
if self._column == "name":
|
||||
self._data[self._row].name = self._new
|
||||
elif self._column == "d90":
|
||||
self._data[self._row].d90 = self._new
|
||||
if self._column == "method":
|
||||
self._data[self._row].method = self._new
|
||||
elif self._column == "dif":
|
||||
self._data[self._row].dif = self._new
|
||||
elif self._column == "b":
|
||||
self._data[self._row].b = self._new
|
||||
elif self._column == "c":
|
||||
self._data[self._row].c = self._new
|
||||
|
||||
class SetCommandSpec(QUndoCommand):
|
||||
def __init__(self, data, row, column, new_value):
|
||||
|
|
@ -66,19 +78,23 @@ class SetCommandSpec(QUndoCommand):
|
|||
self._row = row
|
||||
self._column = column
|
||||
|
||||
if self._column == "name":
|
||||
self._old = self._data[self._row].name
|
||||
if self._column == "method":
|
||||
self._old = self._data[self._row].method
|
||||
elif self._column == "reach":
|
||||
self._old = self._data[self._row].reach
|
||||
elif self._column == "start_kp":
|
||||
self._old = self._data[self._row].start_kp
|
||||
elif self._column == "end_kp":
|
||||
self._old = self._data[self._row].end_kp
|
||||
elif self._column == "d90":
|
||||
self._old = self._data[self._row].d90
|
||||
elif self._column == "dif":
|
||||
self._old = self._data[self._row].dif
|
||||
elif self._column == "b":
|
||||
self._old = self._data[self._row].b
|
||||
elif self._column == "c":
|
||||
self._old = self._data[self._row].c
|
||||
|
||||
_type = float
|
||||
if column == "name":
|
||||
if column == "method":
|
||||
_type = str
|
||||
elif column == "reach":
|
||||
_type = int
|
||||
|
|
@ -86,28 +102,36 @@ class SetCommandSpec(QUndoCommand):
|
|||
self._new = _type(new_value)
|
||||
|
||||
def undo(self):
|
||||
if self._column == "name":
|
||||
self._data[self._row].name = self._old
|
||||
if self._column == "method":
|
||||
self._data[self._row].method = self._old
|
||||
elif self._column == "reach":
|
||||
self._data[self._row].reach = self._old
|
||||
elif self._column == "start_kp":
|
||||
self._data[self._row].start_kp = self._old
|
||||
elif self._column == "end_kp":
|
||||
self._data[self._row].end_kp = self._old
|
||||
elif self._column == "d90":
|
||||
self._data[self._row].d90 = self._old
|
||||
elif self._column == "dif":
|
||||
self._data[self._row].dif = self._old
|
||||
elif self._column == "b":
|
||||
self._data[self._row].b = self._old
|
||||
elif self._column == "c":
|
||||
self._data[self._row].c = self._old
|
||||
|
||||
def redo(self):
|
||||
if self._column == "name":
|
||||
self._data[self._row].name = self._new
|
||||
if self._column == "method":
|
||||
self._data[self._row].method = self._new
|
||||
elif self._column == "reach":
|
||||
self._data[self._row].reach = self._new
|
||||
elif self._column == "start_kp":
|
||||
self._data[self._row].start_kp = self._new
|
||||
elif self._column == "end_kp":
|
||||
self._data[self._row].end_kp = self._new
|
||||
elif self._column == "d90":
|
||||
self._data[self._row].d90 = self._new
|
||||
elif self._column == "dif":
|
||||
self._data[self._row].dif = self._new
|
||||
elif self._column == "b":
|
||||
self._data[self._row].b = self._new
|
||||
elif self._column == "c":
|
||||
self._data[self._row].c = self._new
|
||||
|
||||
class AddCommand(QUndoCommand):
|
||||
def __init__(self, data, ics_spec, index):
|
||||
|
|
|
|||
|
|
@ -43,19 +43,15 @@ from PyQt5.QtWidgets import (
|
|||
|
||||
from Modules import Modules
|
||||
|
||||
from View.InitialConditionsAdisTS.UndoCommand import (
|
||||
SetCommand,
|
||||
from View.DIFAdisTS.TableDefault import (
|
||||
DIFTableDefaultModel,
|
||||
)
|
||||
|
||||
from View.D90AdisTS.TableDefault import (
|
||||
D90TableDefaultModel,
|
||||
from View.DIFAdisTS.Table import (
|
||||
DIFTableModel, ComboBoxDelegate,
|
||||
)
|
||||
|
||||
from View.D90AdisTS.Table import (
|
||||
D90TableModel, ComboBoxDelegate,
|
||||
)
|
||||
|
||||
from View.D90AdisTS.translate import D90AdisTSTranslate
|
||||
from View.DIFAdisTS.translate import DIFAdisTSTranslate
|
||||
|
||||
from Solver.Mage import Mage8
|
||||
|
||||
|
|
@ -64,14 +60,14 @@ _translate = QCoreApplication.translate
|
|||
logger = logging.getLogger()
|
||||
|
||||
|
||||
class D90AdisTSWindow(PamhyrWindow):
|
||||
_pamhyr_ui = "D90AdisTS"
|
||||
_pamhyr_name = "D90 AdisTS"
|
||||
class DIFAdisTSWindow(PamhyrWindow):
|
||||
_pamhyr_ui = "DIFAdisTS"
|
||||
_pamhyr_name = "DIF AdisTS"
|
||||
|
||||
def __init__(self, data=None, study=None, config=None, parent=None):
|
||||
self._data = []
|
||||
self._data.append(data)
|
||||
trad = D90AdisTSTranslate()
|
||||
trad = DIFAdisTSTranslate()
|
||||
|
||||
name = (
|
||||
trad[self._pamhyr_name] +
|
||||
|
|
@ -79,7 +75,7 @@ class D90AdisTSWindow(PamhyrWindow):
|
|||
" - " + self._data[0].name
|
||||
)
|
||||
|
||||
super(D90AdisTSWindow, self).__init__(
|
||||
super(DIFAdisTSWindow, self).__init__(
|
||||
title=name,
|
||||
study=study,
|
||||
config=config,
|
||||
|
|
@ -89,7 +85,7 @@ class D90AdisTSWindow(PamhyrWindow):
|
|||
|
||||
self._hash_data.append(data)
|
||||
|
||||
self._d90_adists_lst = study.river.d90_adists
|
||||
self._dif_adists_lst = study.river.dif_adists
|
||||
|
||||
self.setup_table()
|
||||
|
||||
|
|
@ -101,11 +97,21 @@ class D90AdisTSWindow(PamhyrWindow):
|
|||
|
||||
table_default = self.find(QTableView, f"tableView")
|
||||
|
||||
self._table = D90TableDefaultModel(
|
||||
self._delegate_method = ComboBoxDelegate(
|
||||
trad=self._trad,
|
||||
data=self._study.river,
|
||||
ic_spec_lst=self._data[0]._data,
|
||||
parent=self,
|
||||
mode="method"
|
||||
)
|
||||
|
||||
self._table = DIFTableDefaultModel(
|
||||
table_view=table_default,
|
||||
table_headers=self._trad.get_dict("table_headers"),
|
||||
editable_headers=["name", "d90"],
|
||||
delegates={},
|
||||
editable_headers=["method", "dif", "b", "c"],
|
||||
delegates={
|
||||
"method": self._delegate_method
|
||||
},
|
||||
data=self._data,
|
||||
undo=self._undo_stack,
|
||||
trad=self._trad
|
||||
|
|
@ -148,11 +154,12 @@ class D90AdisTSWindow(PamhyrWindow):
|
|||
mode="kp"
|
||||
)
|
||||
|
||||
self._table_spec = D90TableModel(
|
||||
self._table_spec = DIFTableModel(
|
||||
table_view=self.table_spec,
|
||||
table_headers=self._trad.get_dict("table_headers_spec"),
|
||||
editable_headers=["name", "reach", "start_kp", "end_kp", "d90"],
|
||||
editable_headers=["method", "reach", "start_kp", "end_kp", "dif", "b", "c"],
|
||||
delegates={
|
||||
"method": self._delegate_method,
|
||||
"reach": self._delegate_reach,
|
||||
"start_kp": self._delegate_kp,
|
||||
"end_kp": self._delegate_kp
|
||||
|
|
@ -245,7 +252,7 @@ class D90AdisTSWindow(PamhyrWindow):
|
|||
return
|
||||
|
||||
logger.debug(
|
||||
"IC: Paste: " +
|
||||
"DIF: Paste: " +
|
||||
f"header = {header}, " +
|
||||
f"data = {data}"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -23,24 +23,28 @@ from View.Translate import MainTranslate
|
|||
_translate = QCoreApplication.translate
|
||||
|
||||
|
||||
class D90AdisTSTranslate(MainTranslate):
|
||||
class DIFAdisTSTranslate(MainTranslate):
|
||||
def __init__(self):
|
||||
super(D90AdisTSTranslate, self).__init__()
|
||||
super(DIFAdisTSTranslate, self).__init__()
|
||||
|
||||
self._dict["D90 AdisTS"] = _translate(
|
||||
"D90AdisTS", "D90 AdisTS")
|
||||
self._dict["DIF AdisTS"] = _translate(
|
||||
"DIFAdisTS", "DIF AdisTS")
|
||||
|
||||
self._dict["kp"] = self._dict["unit_kp"]
|
||||
|
||||
self._sub_dict["table_headers"] = {
|
||||
"name": self._dict["name"],
|
||||
"d90": _translate("Unit", "D90"),
|
||||
"method": self._dict["method"],
|
||||
"dif": _translate("Unit", "DIF"),
|
||||
"b": _translate("Unit", "Coeff b"),
|
||||
"c": _translate("Unit", "Coeff c"),
|
||||
}
|
||||
|
||||
self._sub_dict["table_headers_spec"] = {
|
||||
"name": self._dict["name"],
|
||||
"method": self._dict["method"],
|
||||
"reach": self._dict["reach"],
|
||||
"start_kp": _translate("Unit", "Start_KP (m)"),
|
||||
"end_kp": _translate("Unit", "End_KP (m)"),
|
||||
"d90": _translate("Unit", "D90"),
|
||||
"dif": _translate("Unit", "DIF"),
|
||||
"b": _translate("Unit", "Coeff b"),
|
||||
"c": _translate("Unit", "Coeff c"),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ from View.Debug.Window import ReplWindow
|
|||
from View.OutputKpAdisTS.Window import OutputKpAdisTSWindow
|
||||
from View.Pollutants.Window import PollutantsWindow
|
||||
from View.D90AdisTS.Window import D90AdisTSWindow
|
||||
from View.DIFAdisTS.Window import D90AdisTSWindow
|
||||
from View.DIFAdisTS.Window import DIFAdisTSWindow
|
||||
|
||||
# Optional internal display of documentation for make the application
|
||||
# package lighter...
|
||||
|
|
@ -891,23 +891,23 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
|||
D90AdisTS.show()
|
||||
|
||||
def open_dif(self):
|
||||
if len(self._study.river.d90_adists.lst) != 0:
|
||||
d90_default = self._study.river.d90_adists.lst[0]
|
||||
if len(self._study.river.dif_adists.lst) != 0:
|
||||
dif_default = self._study.river.dif_adists.lst[0]
|
||||
else:
|
||||
d90_default = self._study.river.d90_adists.new(0)
|
||||
dif_default = self._study.river.dif_adists.new(0)
|
||||
|
||||
if self.sub_window_exists(
|
||||
D90AdisTSWindow,
|
||||
data=[self._study, None, d90_default]
|
||||
DIFAdisTSWindow,
|
||||
data=[self._study, None, dif_default]
|
||||
):
|
||||
return
|
||||
|
||||
D90AdisTS = D90AdisTSWindow(
|
||||
DIFAdisTS = DIFAdisTSWindow(
|
||||
study=self._study,
|
||||
parent=self,
|
||||
data=d90_default
|
||||
data=dif_default
|
||||
)
|
||||
D90AdisTS.show()
|
||||
DIFAdisTS.show()
|
||||
|
||||
def open_pollutants(self):
|
||||
if self.sub_window_exists(
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ class CommonWordTranslate(PamhyrTranslate):
|
|||
"CommonWord", "Not associated"
|
||||
)
|
||||
|
||||
self._dict["method"] = _translate("CommonWord", "Method")
|
||||
|
||||
|
||||
class UnitTranslate(CommonWordTranslate):
|
||||
def __init__(self):
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MainWindow</class>
|
||||
<widget class="QMainWindow" name="MainWindow">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1024</width>
|
||||
<height>576</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QSplitter" name="splitter_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableView" name="tableView"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QSplitter" name="splitter">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<widget class="QWidget" name="verticalLayoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_1"/>
|
||||
</widget>
|
||||
<widget class="QWidget" name="verticalLayoutWidget_2">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2"/>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1024</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<widget class="QToolBar" name="toolBar">
|
||||
<property name="windowTitle">
|
||||
<string>toolBar</string>
|
||||
</property>
|
||||
<attribute name="toolBarArea">
|
||||
<enum>TopToolBarArea</enum>
|
||||
</attribute>
|
||||
<attribute name="toolBarBreak">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
Binary file not shown.
Loading…
Reference in New Issue