diff --git a/src/Model/LateralContributionsAdisTS/LateralContributionAdisTS.py b/src/Model/LateralContributionsAdisTS/LateralContributionAdisTS.py
index 0088fe8b..ce027028 100644
--- a/src/Model/LateralContributionsAdisTS/LateralContributionAdisTS.py
+++ b/src/Model/LateralContributionsAdisTS/LateralContributionAdisTS.py
@@ -49,7 +49,7 @@ class LateralContributionAdisTS(SQLSubModel):
self._begin_kp = 0.0
self._end_kp = 0.0
self._data = []
- self._header = []
+ self._header = ["time", "rate"]
self._types = [float, float]
LateralContributionAdisTS._id_cnt = max(
diff --git a/src/View/BoundaryConditionsAdisTS/Edit/UndoCommand.py b/src/View/BoundaryConditionsAdisTS/Edit/UndoCommand.py
index dbca067e..a7062077 100644
--- a/src/View/BoundaryConditionsAdisTS/Edit/UndoCommand.py
+++ b/src/View/BoundaryConditionsAdisTS/Edit/UndoCommand.py
@@ -45,13 +45,13 @@ class SetDataCommand(QUndoCommand):
if self._column == 0:
self._data._data[self._index] = (self._old,self._data._data[self._index][1])
else:
- self._data._data[self._index] = (self._data._data[self._index][1], self._old)
+ self._data._data[self._index] = (self._data._data[self._index][0], self._old)
def redo(self):
if self._column == 0:
self._data._data[self._index] = (self._new,self._data._data[self._index][1])
else:
- self._data._data[self._index] = (self._data._data[self._index][1], self._new)
+ self._data._data[self._index] = (self._data._data[self._index][0], self._new)
class AddCommand(QUndoCommand):
def __init__(self, data, index):
@@ -84,7 +84,7 @@ class DelCommand(QUndoCommand):
def undo(self):
for row, el in self._bc:
- self._data.insert(row, el)
+ self._data._data.insert(row, el)
def redo(self):
for row in self._rows:
diff --git a/src/View/LateralContributionsAdisTS/Edit/Plot.py b/src/View/LateralContributionsAdisTS/Edit/Plot.py
index 5405a501..9d10b5e0 100644
--- a/src/View/LateralContributionsAdisTS/Edit/Plot.py
+++ b/src/View/LateralContributionsAdisTS/Edit/Plot.py
@@ -31,7 +31,6 @@ _translate = QCoreApplication.translate
logger = logging.getLogger()
-
class Plot(PamhyrPlot):
def __init__(self, mode="time", data=None,
trad=None, canvas=None, toolbar=None,
diff --git a/src/View/LateralContributionsAdisTS/Edit/Table.py b/src/View/LateralContributionsAdisTS/Edit/Table.py
index c0ab3b44..303343e7 100644
--- a/src/View/LateralContributionsAdisTS/Edit/Table.py
+++ b/src/View/LateralContributionsAdisTS/Edit/Table.py
@@ -39,16 +39,11 @@ from PyQt5.QtWidgets import (
QTimeEdit, QDateTimeEdit, QItemDelegate,
)
-from Model.LateralContribution.LateralContributionTypes import (
- NotDefined, LateralContrib, Rain, Evaporation,
-)
-from View.LateralContribution.Edit.UndoCommand import (
+from View.LateralContributionsAdisTS.Edit.UndoCommand import (
SetDataCommand, AddCommand, DelCommand,
- SortCommand, MoveCommand, PasteCommand,
- DuplicateCommand,
)
-from View.LateralContribution.Edit.translate import *
+from View.LateralContributionsAdisTS.Edit.translate import *
_translate = QCoreApplication.translate
@@ -69,8 +64,8 @@ class TableModel(PamhyrTableModel):
value = QVariant()
if 0 <= column < 2:
- v = self._data.get_i(row)[column]
- if self._data.get_type_column(column) == float:
+ v = self._data._data[row][column]
+ if self._data._types[column] == float:
value = f"{v:.4f}"
elif self._data.header[column] == "time":
if self._opt_data == "time":
@@ -125,69 +120,3 @@ class TableModel(PamhyrTableModel):
self.endRemoveRows()
- def sort(self, _reverse, parent=QModelIndex()):
- self.layoutAboutToBeChanged.emit()
-
- self._undo.push(
- SortCommand(
- self._data, _reverse
- )
- )
-
- self.layoutAboutToBeChanged.emit()
- self.layoutChanged.emit()
-
- def move_up(self, row, parent=QModelIndex()):
- if row <= 0:
- return
-
- target = row + 2
-
- self.beginMoveRows(parent, row - 1, row - 1, parent, target)
-
- self._undo_stack.push(
- MoveCommand(
- self._data, "up", row
- )
- )
-
- self.endMoveRows()
- self.layoutChanged.emit()
-
- def move_down(self, index, parent=QModelIndex()):
- if row > len(self._data):
- return
-
- target = row
-
- self.beginMoveRows(parent, row + 1, row + 1, parent, target)
-
- self._undo_stack.push(
- MoveCommand(
- self._data, "down", row
- )
- )
-
- self.endMoveRows()
- self.layoutChanged.emit()
-
- def paste(self, row, header, data):
- if len(data) == 0:
- return
-
- self.layoutAboutToBeChanged.emit()
-
- self._undo.push(
- PasteCommand(
- self._data, row,
- list(
- map(
- lambda d: self._data.new_from_data(header, d),
- data
- )
- )
- )
- )
-
- self.layoutAboutToBeChanged.emit()
- self.layoutChanged.emit()
diff --git a/src/View/LateralContributionsAdisTS/Edit/UndoCommand.py b/src/View/LateralContributionsAdisTS/Edit/UndoCommand.py
index d56c6382..d09f5809 100644
--- a/src/View/LateralContributionsAdisTS/Edit/UndoCommand.py
+++ b/src/View/LateralContributionsAdisTS/Edit/UndoCommand.py
@@ -23,7 +23,7 @@ from PyQt5.QtWidgets import (
QMessageBox, QUndoCommand, QUndoStack,
)
-from Model.LateralContribution.LateralContribution import LateralContribution
+from Model.LateralContributionsAdisTS.LateralContributionAdisTS import LateralContributionAdisTS
class SetDataCommand(QUndoCommand):
@@ -33,15 +33,21 @@ class SetDataCommand(QUndoCommand):
self._data = data
self._index = index
self._column = column
- self._old = self._data.get_i(self._index)[self._column]
- _type = self._data.get_type_column(self._column)
+ self._old = self._data._data[self._index][self._column]
+ _type = self._data._types[self._column]
self._new = _type(new_value)
def undo(self):
- self._data._set_i_c_v(self._index, self._column, self._old)
+ if self._column == 0:
+ self._data._data[self._index] = (self._old, self._data._data[self._index][1])
+ else:
+ self._data._data[self._index] = (self._data._data[self._index][0], self._old)
def redo(self):
- self._data._set_i_c_v(self._index, self._column, self._new)
+ if self._column == 0:
+ self._data._data[self._index] = (self._new, self._data._data[self._index][1])
+ else:
+ self._data._data[self._index] = (self._data._data[self._index][0], self._new)
class AddCommand(QUndoCommand):
@@ -53,14 +59,13 @@ class AddCommand(QUndoCommand):
self._new = None
def undo(self):
- self._data.delete_i([self._index])
+ del self._data._data[self._index]
def redo(self):
if self._new is None:
- self._new = self._data.add(self._index)
+ self._new = self._data._data.insert(self._index, (self._data._types[0](0), self._data._types[1](0.0)))
else:
- self._data.insert(self._index, self._new)
-
+ self._data._data.insert(self._index, self._new)
class DelCommand(QUndoCommand):
def __init__(self, data, rows):
@@ -71,98 +76,13 @@ class DelCommand(QUndoCommand):
self._lc = []
for row in rows:
- self._lc.append((row, self._data.get_i(row)))
+ self._lc.append((row, self._data._data[row]))
self._lc.sort()
def undo(self):
for row, el in self._lc:
- self._data.insert(row, el)
+ self._data._data.insert(row, el)
def redo(self):
- self._data.delete_i(self._rows)
-
-
-class SortCommand(QUndoCommand):
- def __init__(self, data, _reverse):
- QUndoCommand.__init__(self)
-
- self._data = data
- self._reverse = _reverse
-
- self._old = self._data.data
- self._indexes = None
-
- def undo(self):
- ll = self._data.data
- self._data.sort(
- key=lambda x: self._indexes[ll.index(x)]
- )
-
- def redo(self):
- self._data.sort(
- _reverse=self._reverse,
- key=lambda x: x[0]
- )
- if self._indexes is None:
- self._indexes = list(
- map(
- lambda p: self._old.index(p),
- self._data.data
- )
- )
- self._old = None
-
-
-class MoveCommand(QUndoCommand):
- def __init__(self, data, up, i):
- QUndoCommand.__init__(self)
-
- self._data = data
- self._up = up == "up"
- self._i = i
-
- def undo(self):
- if self._up:
- self._data.move_up(self._i)
- else:
- self._data.move_down(self._i)
-
- def redo(self):
- if self._up:
- self._data.move_up(self._i)
- else:
- self._data.move_down(self._i)
-
-
-class PasteCommand(QUndoCommand):
- def __init__(self, data, row, lcs):
- QUndoCommand.__init__(self)
-
- self._data = data
- self._row = row
- self._lcs = lcs
- self._lcs.reverse()
-
- def undo(self):
- self._data.delete(self._lcs)
-
- def redo(self):
- for bc in self._lcs:
- self._data.insert(self._row, bc)
-
-
-class DuplicateCommand(QUndoCommand):
- def __init__(self, data, rows, bc):
- QUndoCommand.__init__(self)
-
- self._data = data
- self._rows = rows
- self._lc = deepcopy(bc)
- self._lc.reverse()
-
- def undo(self):
- self._data.delete(self._lc)
-
- def redo(self):
- for bc in self._lcs:
- self._data.insert(self._rows[0], bc)
+ for row in self._rows:
+ del self._data._data[row]
diff --git a/src/View/LateralContributionsAdisTS/Edit/Window.py b/src/View/LateralContributionsAdisTS/Edit/Window.py
index 53c774cb..b0ebea22 100644
--- a/src/View/LateralContributionsAdisTS/Edit/Window.py
+++ b/src/View/LateralContributionsAdisTS/Edit/Window.py
@@ -39,16 +39,16 @@ from PyQt5.QtWidgets import (
from View.Tools.Plot.PamhyrCanvas import MplCanvas
from View.Tools.Plot.PamhyrToolbar import PamhyrPlotToolbar
-from View.LateralContribution.Edit.translate import LCETranslate
-from View.LateralContribution.Edit.Table import TableModel
-from View.LateralContribution.Edit.Plot import Plot
+from View.LateralContributionsAdisTS.Edit.translate import LCETranslate
+from View.LateralContributionsAdisTS.Edit.Table import TableModel
+from View.LateralContributionsAdisTS.Edit.Plot import Plot
_translate = QCoreApplication.translate
-class EditLateralContributionWindow(PamhyrWindow):
- _pamhyr_ui = "EditLateralContribution"
- _pamhyr_name = "Edit lateral contribution"
+class EditLateralContributionAdisTSWindow(PamhyrWindow):
+ _pamhyr_ui = "EditLateralContributionAdisTS"
+ _pamhyr_name = "Edit lateral contribution AdisTS"
def __init__(self, data=None,
study=None, config=None,
@@ -57,17 +57,8 @@ class EditLateralContributionWindow(PamhyrWindow):
trad = LCETranslate()
name = trad[self._pamhyr_name]
- if self._data is not None:
- edge_name = (self._data.edge.name if self._data.edge is not None
- else trad['not_associated'])
- name += (
- f" - {study.name} " +
- f" - {self._data.name} ({self._data.id}) " +
- f"({trad.get_dict('long_types')[self._data.lctype]} - " +
- f"{edge_name})"
- )
- super(EditLateralContributionWindow, self).__init__(
+ super(EditLateralContributionAdisTSWindow, self).__init__(
title=name,
study=study,
config=config,
@@ -75,6 +66,17 @@ class EditLateralContributionWindow(PamhyrWindow):
parent=parent
)
+ if self._data is not None:
+ if self._data.edge is not None:
+ edge_name = next(filter(lambda edge: edge.id == self._data.edge, self._study.river.edges())).name
+ else:
+ edge_name = trad['not_associated']
+
+ name += (
+ f"{study.name} - " +
+ f"{edge_name})"
+ )
+
self._hash_data.append(data)
self.setup_table()
@@ -134,7 +136,6 @@ class EditLateralContributionWindow(PamhyrWindow):
def setup_connections(self):
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_del").triggered.connect(self.delete)
- self.find(QAction, "action_sort").triggered.connect(self.sort)
self._table.dataChanged.connect(self.update)
@@ -176,46 +177,6 @@ class EditLateralContributionWindow(PamhyrWindow):
self._table.delete(rows)
self.plot.update()
- def sort(self):
- self._table.sort(False)
- self.plot.update()
-
- def move_up(self):
- row = self.index_selected_row()
- self._table.move_up(row)
- self.plot.update()
-
- def move_down(self):
- row = self.index_selected_row()
- self._table.move_down(row)
- self.plot.update()
-
- def _copy(self):
- rows = self.index_selected_rows()
-
- table = []
- table.append(self._data.header)
-
- data = self._data.data
- for row in rows:
- table.append(list(data[row]))
-
- self.copyTableIntoClipboard(table)
-
- def _paste(self):
- header, data = self.parseClipboardTable()
-
- if len(data) == 0:
- return
-
- row = 0
- rows = self.index_selected_rows()
- if len(rows) != 0:
- row = rows[0]
-
- self._table.paste(row, header, data)
- self.plot.update()
-
def _undo(self):
self._table.undo()
self.plot.update()
diff --git a/src/View/LateralContributionsAdisTS/Edit/translate.py b/src/View/LateralContributionsAdisTS/Edit/translate.py
index eeb88930..2974577f 100644
--- a/src/View/LateralContributionsAdisTS/Edit/translate.py
+++ b/src/View/LateralContributionsAdisTS/Edit/translate.py
@@ -19,7 +19,7 @@
from PyQt5.QtCore import QCoreApplication
from View.Translate import MainTranslate
-from View.LateralContribution.translate import LCTranslate
+from View.LateralContributionsAdisTS.translate import LCTranslate
_translate = QCoreApplication.translate
@@ -27,15 +27,12 @@ _translate = QCoreApplication.translate
class LCETranslate(LCTranslate):
def __init__(self):
super(LCETranslate, self).__init__()
- self._dict["Edit lateral contribution"] = _translate(
- "LateralContribution", "Edit lateral contribution"
+ self._dict["Edit lateral contribution AdisTS"] = _translate(
+ "LateralContributionAdisTS", "Edit lateral contribution AdisTS"
)
self._sub_dict["table_headers"] = {
- "x": _translate("LateralContribution", "X"),
- "y": _translate("LateralContribution", "Y"),
"time": self._dict["time"],
"date": self._dict["date"],
- "discharge": self._dict["unit_discharge"],
- "z": self._dict["unit_elevation"],
+ "rate": _translate("LateralContributionAdisTS", "Mass Flow"),
}
diff --git a/src/View/LateralContributionsAdisTS/Window.py b/src/View/LateralContributionsAdisTS/Window.py
index 3f6a9988..9a9c1685 100644
--- a/src/View/LateralContributionsAdisTS/Window.py
+++ b/src/View/LateralContributionsAdisTS/Window.py
@@ -48,7 +48,7 @@ from View.Geometry.PlotXY import PlotXY
from View.LateralContributionsAdisTS.translate import (
LCTranslate,
)
-from View.LateralContributionsAdisTS.Edit.Window import EditLateralContributionWindow
+from View.LateralContributionsAdisTS.Edit.Window import EditLateralContributionAdisTSWindow
logger = logging.getLogger()
@@ -136,7 +136,6 @@ class LateralContributionAdisTSWindow(PamhyrWindow):
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_del").triggered.connect(self.delete)
self.find(QAction, "action_edit").triggered.connect(self.edit)
- self.find(QAction, "action_sort").triggered.connect(self.sort)
table = self.find(QTableView, f"tableView")
table.selectionModel()\
@@ -233,18 +232,17 @@ class LateralContributionAdisTSWindow(PamhyrWindow):
self._set_current_reach()
def edit(self):
- tab = self.current_tab()
rows = self.index_selected_rows()
for row in rows:
- data = self._lcs.get(tab, row)
+ data = self._lcs.lst[row]
if self.sub_window_exists(
- EditLateralContributionWindow,
+ EditLateralContributionAdisTSWindow,
data=[self._study, None, data]
):
continue
- win = EditLateralContributionWindow(
+ win = EditLateralContributionAdisTSWindow(
data=data,
study=self._study,
parent=self
diff --git a/src/View/ui/EditLateralContributionAdisTS.ui b/src/View/ui/EditLateralContributionAdisTS.ui
new file mode 100644
index 00000000..8b9f006b
--- /dev/null
+++ b/src/View/ui/EditLateralContributionAdisTS.ui
@@ -0,0 +1,105 @@
+
+
+ MainWindow
+
+
+
+ 0
+ 0
+ 800
+ 450
+
+
+
+
+ 0
+ 0
+
+
+
+ MainWindow
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Qt::Horizontal
+
+
+
+
+
+
+
+
+
+
+
+
+ toolBar
+
+
+ TopToolBarArea
+
+
+ false
+
+
+
+
+
+
+ false
+
+
+
+ ressources/add.pngressources/add.png
+
+
+ Add
+
+
+ Add a new point in boundary condition or lateral contribution
+
+
+ Ctrl+N
+
+
+
+
+
+ ressources/del.pngressources/del.png
+
+
+ Delete
+
+
+ Delete current selected rows
+
+
+ Ctrl+D
+
+
+
+
+
+
diff --git a/src/View/ui/LateralContributionsAdisTS.ui b/src/View/ui/LateralContributionsAdisTS.ui
index cc1b9f16..3ac8806c 100644
--- a/src/View/ui/LateralContributionsAdisTS.ui
+++ b/src/View/ui/LateralContributionsAdisTS.ui
@@ -69,7 +69,6 @@
-
@@ -119,18 +118,6 @@
Ctrl+E
-
-
-
- ressources/sort_A-Z.pngressources/sort_A-Z.png
-
-
- Sort
-
-
- Sort boundary condition by name
-
-
diff --git a/tests_cases/Enlargement/Enlargement.pamhyr b/tests_cases/Enlargement/Enlargement.pamhyr
index 6dc4a66a..7cbb7e4f 100644
Binary files a/tests_cases/Enlargement/Enlargement.pamhyr and b/tests_cases/Enlargement/Enlargement.pamhyr differ