Commit 510bee11 authored by Youcef Aouad's avatar Youcef Aouad
Browse files

LCS -data

No related merge requests found
Pipeline #56083 passed with stages
in 58 seconds
Showing with 34 additions and 214 deletions
+34 -214
...@@ -127,15 +127,11 @@ class LateralContributionAdisTS(SQLSubModel): ...@@ -127,15 +127,11 @@ class LateralContributionAdisTS(SQLSubModel):
execute(f"DELETE FROM lateral_contribution_adists WHERE id = {self.id}") execute(f"DELETE FROM lateral_contribution_adists WHERE id = {self.id}")
execute(f"DELETE FROM lateral_contribution_data_adists WHERE lc = {self.id}") execute(f"DELETE FROM lateral_contribution_data_adists WHERE lc = {self.id}")
node = -1
if self._node is not None:
node = self._node
sql = ( sql = (
"INSERT INTO " + "INSERT INTO " +
"lateral_contribution_adists(id, pollutant, edge, begin_kp, end_kp) " + "lateral_contribution_adists(id, pollutant, edge, begin_kp, end_kp) " +
"VALUES (" + "VALUES (" +
f"{self.id}, {self._pollutant}, " + f"{self.id}, {self._pollutant}, {self.edge}, " +
f"{self._begin_kp}, {self._end_kp}" + f"{self._begin_kp}, {self._end_kp}" +
")" ")"
) )
......
...@@ -35,10 +35,9 @@ from PyQt5.QtWidgets import ( ...@@ -35,10 +35,9 @@ from PyQt5.QtWidgets import (
) )
from View.LateralContributionsAdisTS.UndoCommand import ( from View.LateralContributionsAdisTS.UndoCommand import (
SetNameCommand, SetEdgeCommand, SetTypeCommand, SetEdgeCommand,
SetBeginCommand, SetEndCommand, SetBeginCommand, SetEndCommand,
AddCommand, DelCommand, SortCommand, AddCommand, DelCommand,
MoveCommand, PasteCommand, DuplicateCommand,
) )
from View.Tools.PamhyrTable import PamhyrTableModel from View.Tools.PamhyrTable import PamhyrTableModel
...@@ -156,19 +155,19 @@ class TableModel(PamhyrTableModel): ...@@ -156,19 +155,19 @@ class TableModel(PamhyrTableModel):
if self._headers[column] == "edge": if self._headers[column] == "edge":
self._undo.push( self._undo.push(
SetEdgeCommand( SetEdgeCommand(
self._lst, self._tab, row, self._data.edge(value) self._lcs_list, self._lst, row, self._data.edge(value).id
) )
) )
elif self._headers[column] == "begin_kp": elif self._headers[column] == "begin_kp":
self._undo.push( self._undo.push(
SetBeginCommand( SetBeginCommand(
self._lst, self._tab, row, value self._lcs_list, self._lst, row, value
) )
) )
elif self._headers[column] == "end_kp": elif self._headers[column] == "end_kp":
self._undo.push( self._undo.push(
SetEndCommand( SetEndCommand(
self._lst, self._tab, row, value self._lcs_list, self._lst, row, value
) )
) )
except Exception as e: except Exception as e:
...@@ -195,55 +194,13 @@ class TableModel(PamhyrTableModel): ...@@ -195,55 +194,13 @@ class TableModel(PamhyrTableModel):
self._undo.push( self._undo.push(
DelCommand( DelCommand(
self._lst, self._tab, rows self._lst, rows
) )
) )
self.endRemoveRows() self.endRemoveRows()
self.layoutChanged.emit() self.layoutChanged.emit()
def sort(self, _reverse, parent=QModelIndex()):
self.layoutAboutToBeChanged.emit()
self._undo.push(
SortCommand(
self._lst, self._tab, False
)
)
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._lst, self._tab, "up", row
)
)
self.endMoveRows()
self.layoutChanged.emit()
def move_down(self, index, parent=QModelIndex()):
if row > len(self._lst):
return
target = row
self.beginMoveRows(parent, row + 1, row + 1, parent, target)
self._undo_stack.push(
MoveCommand(
self._lst, self._tab, "down", row
)
)
self.endMoveRows()
self.layoutChanged.emit()
...@@ -28,93 +28,55 @@ from Model.LateralContributionsAdisTS.LateralContributionsAdisTSList import ( ...@@ -28,93 +28,55 @@ from Model.LateralContributionsAdisTS.LateralContributionsAdisTSList import (
LateralContributionsAdisTSList LateralContributionsAdisTSList
) )
class SetNameCommand(QUndoCommand):
def __init__(self, lcs, tab, index, new_value):
QUndoCommand.__init__(self)
self._lcs = lcs
self._tab = tab
self._index = index
self._old = self._lcs.get(self._tab, self._index).name
self._new = str(new_value)
def undo(self):
self._lcs.get(self._tab, self._index).name = self._old
def redo(self):
self._lcs.get(self._tab, self._index).name = self._new
class SetBeginCommand(QUndoCommand): class SetBeginCommand(QUndoCommand):
def __init__(self, lcs, tab, index, new_value): def __init__(self, lcs, lcs_lst, index, new_value):
QUndoCommand.__init__(self) QUndoCommand.__init__(self)
self._lcs = lcs self._lcs = lcs
self._tab = tab self._lcs_lst = lcs_lst
self._index = index self._index = index
self._old = self._lcs.get(self._tab, self._index).begin_kp self._old = self._lcs_lst[self._index].begin_kp
self._new = float(new_value) self._new = float(new_value)
def undo(self): def undo(self):
self._lcs.get(self._tab, self._index).begin_kp = float(self._old) self._lcs_lst[self._index].begin_kp = float(self._old)
def redo(self): def redo(self):
self._lcs.get(self._tab, self._index).begin_kp = float(self._new) self._lcs_lst[self._index].begin_kp = float(self._new)
class SetEndCommand(QUndoCommand): class SetEndCommand(QUndoCommand):
def __init__(self, lcs, tab, index, new_value): def __init__(self, lcs, lcs_lst, index, new_value):
QUndoCommand.__init__(self) QUndoCommand.__init__(self)
self._lcs = lcs self._lcs = lcs
self._tab = tab self._lcs_lst = lcs_lst
self._index = index self._index = index
self._old = self._lcs.get(self._tab, self._index).end_kp self._old = self._lcs_lst[self._index].end_kp
self._new = float(new_value) self._new = float(new_value)
def undo(self): def undo(self):
self._lcs.get(self._tab, self._index).end_kp = float(self._old) self._lcs_lst[self._index].end_kp = float(self._old)
def redo(self): def redo(self):
self._lcs.get(self._tab, self._index).end_kp = float(self._new) self._lcs_lst[self._index].end_kp = float(self._new)
class SetEdgeCommand(QUndoCommand): class SetEdgeCommand(QUndoCommand):
def __init__(self, lcs, tab, index, edge): def __init__(self, lcs, lcs_lst, index, edge):
QUndoCommand.__init__(self) QUndoCommand.__init__(self)
self._lcs = lcs self._lcs = lcs
self._tab = tab self._lcs_lst = lcs_lst
self._index = index self._index = index
self._old = self._lcs.get(self._tab, self._index).edge self._old = self._lcs_lst[self._index].edge
self._new = edge self._new = edge
def undo(self): def undo(self):
self._lcs.get(self._tab, self._index).edge = self._old self._lcs_lst[self._index].edge = self._old
def redo(self): def redo(self):
self._lcs.get(self._tab, self._index).edge = self._new self._lcs_lst[self._index].edge = self._new
class SetTypeCommand(QUndoCommand):
def __init__(self, lcs, tab, index, _type):
QUndoCommand.__init__(self)
self._lcs = lcs
self._tab = tab
self._index = index
self._type = _type
self._old = self._lcs.get(self._tab, self._index)
self._new = self._lcs.get(self._tab, self._index)\
.convert(self._type)
def undo(self):
self._lcs.set(self._tab, self._index, self._old)
def redo(self):
self._lcs.set(self._tab, self._index, self._new)
class AddCommand(QUndoCommand): class AddCommand(QUndoCommand):
def __init__(self, pollutant, lcs, lcs_lst, index): def __init__(self, pollutant, lcs, lcs_lst, index):
...@@ -137,113 +99,22 @@ class AddCommand(QUndoCommand): ...@@ -137,113 +99,22 @@ class AddCommand(QUndoCommand):
class DelCommand(QUndoCommand): class DelCommand(QUndoCommand):
def __init__(self, lcs, tab, rows): def __init__(self, lcs, rows):
QUndoCommand.__init__(self) QUndoCommand.__init__(self)
self._lcs = lcs self._lcs = lcs
self._tab = tab
self._rows = rows self._rows = rows
self._bc = [] self._bc = []
for row in rows: for row in rows:
self._bc.append((row, self._lcs.get(self._tab, row))) self._bc.append((row, self._lcs[row]))
self._bc.sort() self._bc.sort()
def undo(self): def undo(self):
for row, el in self._bc: for row, el in self._bc:
self._lcs.insert(self._tab, row, el) self._lcs.insert(row, el)
def redo(self):
self._lcs.delete_i(self._tab, self._rows)
class SortCommand(QUndoCommand):
def __init__(self, lcs, tab, _reverse):
QUndoCommand.__init__(self)
self._lcs = lcs
self._tab = tab
self._reverse = _reverse
self._old = self._lcs.get_tab(self._tab)
self._indexes = None
def undo(self):
ll = self._lcs.get_tab(self._tab)
self._lcs.sort(
self._tab,
key=lambda x: self._indexes[ll.index(x)]
)
def redo(self):
self._lcs.sort(
self._tab,
reverse=self._reverse,
key=lambda x: x.name
)
if self._indexes is None:
self._indexes = list(
map(
lambda p: self._old.index(p),
self._lcs.get_tab(self._tab)
)
)
self._old = None
class MoveCommand(QUndoCommand):
def __init__(self, lcs, tab, up, i):
QUndoCommand.__init__(self)
self._lcs = lcs
self._tab = tab
self._up = up == "up"
self._i = i
def undo(self):
if self._up:
self._lcs.move_up(self._tab, self._i)
else:
self._lcs.move_down(self._tab, self._i)
def redo(self): def redo(self):
if self._up: for row in self._rows:
self._lcs.move_up(self._tab, self._i) del self._lcs[row]
else:
self._lcs.move_down(self._tab, self._i)
class PasteCommand(QUndoCommand):
def __init__(self, lcs, tab, row, bc):
QUndoCommand.__init__(self)
self._lcs = lcs
self._tab = tab
self._row = row
self._bc = deepcopy(bc)
self._bc.reverse()
def undo(self):
self._lcs.delete(self._tab, self._bc)
def redo(self):
for bc in self._bc:
self._lcs.insert(self._tab, self._row, bc)
class DuplicateCommand(QUndoCommand):
def __init__(self, lcs, tab, rows, bc):
QUndoCommand.__init__(self)
self._lcs = lcs
self._tab = tab
self._rows = rows
self._bc = deepcopy(bc)
self._bc.reverse()
def undo(self):
self._lcs.delete(self._tab, self._bc)
def redo(self):
for bc in self._lcs:
self._lcs.insert(self._tab, self._rows[0], bc)
...@@ -39,12 +39,6 @@ from PyQt5.QtWidgets import ( ...@@ -39,12 +39,6 @@ from PyQt5.QtWidgets import (
QComboBox, QVBoxLayout, QHeaderView, QTabWidget, QComboBox, QVBoxLayout, QHeaderView, QTabWidget,
) )
from View.LateralContributionsAdisTS.UndoCommand import (
SetNameCommand, SetEdgeCommand, SetTypeCommand,
AddCommand, DelCommand, SortCommand,
MoveCommand, PasteCommand, DuplicateCommand,
)
from View.LateralContributionsAdisTS.Table import ( from View.LateralContributionsAdisTS.Table import (
TableModel, ComboBoxDelegate TableModel, ComboBoxDelegate
) )
...@@ -179,16 +173,18 @@ class LateralContributionAdisTSWindow(PamhyrWindow): ...@@ -179,16 +173,18 @@ class LateralContributionAdisTSWindow(PamhyrWindow):
tab = "liquid" tab = "liquid"
if len(rows) > 0: if len(rows) > 0:
edge = self._study.river\ edge_id = self._study.river\
.lateral_contributions_adists.lst[rows[0]]\ .lateral_contributions_adists.lst[rows[0]]\
.edge .edge
if edge:
if edge_id:
edge = next(filter(lambda e: e.id == edge_id, self._study.river.edges()))
data = edge.reach data = edge.reach
lc = self._lcs.get(tab, rows[0]) lc = self._lcs.lst[rows[0]]
highlight = (lc.begin_kp, lc.end_kp) highlight = (lc.begin_kp, lc.end_kp)
for delegate in self._delegate_kp: for delegate in self._delegate_kp:
delegate.data = edge delegate.data = edge
self.plot = PlotXY( self.plot = PlotXY(
canvas=self.canvas, canvas=self.canvas,
......
No preview for this file type
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment