refactoring: refacto LC.

setup.py
Pierre-Antoine Rouby 2023-10-04 11:26:43 +02:00
parent ea3654f1f8
commit 500885ec4d
8 changed files with 77 additions and 71 deletions

View File

@ -19,7 +19,7 @@
from datetime import datetime
from tools import timer, trace
from View.Plot.APlot import APlot
from View.Tools.PamhyrPlot import PamhyrPlot
from PyQt5.QtCore import (
QCoreApplication
@ -29,15 +29,19 @@ from View.LateralContribution.Edit.translate import *
_translate = QCoreApplication.translate
class Plot(APlot):
def __init__(self, canvas=None, data=None,
mode = "time", toolbar=None):
class Plot(PamhyrPlot):
def __init__(self, mode = "time", data=None,
canvas=None, trad=None, toolbar=None,
parent=None):
super(Plot, self).__init__(
canvas = canvas,
trad = trad,
data = data,
toolbar=toolbar
toolbar = toolbar,
parent = parent
)
self._table_headers = self._trad.get_dict("table_headers")
self._mode = mode
def custom_ticks(self):
@ -105,10 +109,10 @@ class Plot(APlot):
# Plot label
header = self.data.header
self.canvas.axes.set_xlabel(
table_headers[header[0]], color='black', fontsize=10
self._table_headers[header[0]], color='black', fontsize=10
)
self.canvas.axes.set_ylabel(
table_headers[header[1]], color='black', fontsize=10
self._table_headers[header[1]], color='black', fontsize=10
)
self.canvas.axes.autoscale_view(True, True, True)

View File

@ -36,11 +36,10 @@ from PyQt5.QtWidgets import (
QHeaderView,
)
from View.Plot.MplCanvas import MplCanvas
from View.Plot.PamhyrToolbar import PamhyrPlotToolbar
from View.Tools.Plot.PamhyrCanvas import MplCanvas
from View.Tools.Plot.PamhyrToolbar import PamhyrPlotToolbar
from View.LateralContribution.translate import long_types
from View.LateralContribution.Edit.translate import table_headers, retranslate
from View.LateralContribution.Edit.translate import LCETranslate
from View.LateralContribution.Edit.Table import TableModel
from View.LateralContribution.Edit.Plot import Plot
@ -54,6 +53,7 @@ class EditLateralContributionWindow(PamhyrWindow):
study=None, config=None,
parent=None):
self._data = data
trad = LCETranslate()
name = self._pamhyr_name
if self._data is not None:
@ -63,13 +63,14 @@ class EditLateralContributionWindow(PamhyrWindow):
_translate("Edit lateral contribution", self._pamhyr_name) +
f" - {study.name} " +
f" - {self._data.name} ({self._data.id}) " +
f"({long_types[self._data.lctype]} - {edge_name})"
f"({trad.get_dict('long_types')[self._data.lctype]} - {edge_name})"
)
super(EditLateralContributionWindow, self).__init__(
title = name,
study = study,
config = config,
trad = trad,
parent = parent
)
@ -78,17 +79,17 @@ class EditLateralContributionWindow(PamhyrWindow):
self.setup_connections()
def setup_table(self):
retranslate()
headers = {}
for h in self._data.header:
headers[h] = table_headers[h]
self._delegate_time = PamhyrExTimeDelegate(
data = self._data,
mode = self._study.time_system,
parent = self
)
headers = {}
table_headers = self._trad.get_dict("table_headers")
for h in self._data.header:
headers[h] = table_headers[h]
table = self.find(QTableView, "tableView")
self._table = TableModel(
table_view = table,
@ -99,6 +100,7 @@ class EditLateralContributionWindow(PamhyrWindow):
},
data = self._data,
undo = self._undo_stack,
trad = self._trad,
opt_data = self._study.time_system
)
@ -121,6 +123,8 @@ class EditLateralContributionWindow(PamhyrWindow):
data = self._data,
mode = self._study.time_system,
toolbar = self.toolbar,
trad = self._trad,
parent = self
)
self.plot.draw()

View File

@ -18,9 +18,16 @@
from PyQt5.QtCore import QCoreApplication
from View.Tools.PamhyrTranslate import PamhyrTranslate
from View.LateralContribution.translate import LCTranslate
_translate = QCoreApplication.translate
table_headers = {
class LCETranslate(LCTranslate):
def __init__(self):
super(LCETranslate, self).__init__()
self._sub_dict["table_headers"] = {
"x": _translate("LateralContribution", "X"),
"y": _translate("LateralContribution", "Y"),
"time": _translate("LateralContribution", "Time"),
@ -28,11 +35,3 @@ table_headers = {
"discharge": _translate("LateralContribution", "Discharge (m³/s)"),
"z": _translate("LateralContribution", "Z (m)")
}
def retranslate():
table_headers["x"] = _translate("LateralContribution", "X")
table_headers["y"] = _translate("LateralContribution", "Y")
table_headers["time"] = _translate("LateralContribution", "Time")
table_headers["date"] = _translate("LateralContribution", "Date")
table_headers["discharge"] = _translate("LateralContribution", "Discharge (m³/s)")
table_headers["z"] = _translate("LateralContribution", "Z (m)")

View File

@ -46,22 +46,24 @@ from Model.LateralContribution.LateralContributionTypes import (
)
from View.Tools.PamhyrTable import PamhyrTableModel
from View.LateralContribution.translate import *
from View.LateralContribution.translate import LC_types
logger = logging.getLogger()
_translate = QCoreApplication.translate
class ComboBoxDelegate(QItemDelegate):
def __init__(self, data=None, mode="type", tab="", parent=None):
def __init__(self, data=None, mode="type", tab="", trad = None, parent=None):
super(ComboBoxDelegate, self).__init__(parent)
self._data = data
self._mode = mode
self._tab = tab
self._trad = trad
def createEditor(self, parent, option, index):
self.editor = QComboBox(parent)
long_types = self._trad.get_dict("long_types")
if self._mode == "type":
lst = list(
@ -108,6 +110,7 @@ class TableModel(PamhyrTableModel):
def _setup_lst(self):
self._lst = self._data.lateral_contribution
self._tab = self._opt_data
self._long_types = self._trad.get_dict("long_types")
def rowCount(self, parent):
return self._lst.len(self._tab)
@ -123,7 +126,7 @@ class TableModel(PamhyrTableModel):
return self._lst.get(self._tab, row).name
elif self._headers[column] == "type":
t = self._lst.get(self._tab, row).lctype
return long_types[t]
return self._long_types[t]
elif self._headers[column] == "edge":
n = self._lst.get(self._tab, row).edge
if n is None:
@ -151,7 +154,7 @@ class TableModel(PamhyrTableModel):
)
)
elif self._headers[column] == "type":
key = next(k for k, v in long_types.items() if v == value)
key = next(k for k, v in self._long_types.items() if v == value)
self._undo.push(
SetTypeCommand(
self._lst, self._tab, row, LC_types[key]

View File

@ -53,16 +53,13 @@ from View.LateralContribution.Table import (
TableModel, ComboBoxDelegate
)
from View.Plot.MplCanvas import MplCanvas
from View.Tools.Plot.PamhyrCanvas import MplCanvas
from View.Geometry.PlotXY import PlotXY
from View.LateralContribution.translate import (
long_types, table_headers, LC_types,
retranslate,
LC_types, LCTranslate,
)
from View.LateralContribution.Edit.Window import EditLateralContributionWindow
_translate = QCoreApplication.translate
logger = logging.getLogger()
class LateralContributionWindow(PamhyrWindow):
@ -75,6 +72,7 @@ class LateralContributionWindow(PamhyrWindow):
super(LateralContributionWindow, self).__init__(
title = name,
study = study,
trad = LCTranslate(),
config = config,
parent=parent
)
@ -86,7 +84,6 @@ class LateralContributionWindow(PamhyrWindow):
self.setup_connections()
def setup_table(self):
retranslate()
self._table = {}
for t in ["liquid", "solid", "suspenssion"]:
@ -94,19 +91,21 @@ class LateralContributionWindow(PamhyrWindow):
data = self._study.river,
mode = "type",
tab = t,
trad = self._trad,
parent=self
)
self._delegate_edge = ComboBoxDelegate(
data = self._study.river,
mode = "edge",
tab = t,
trad = self._trad,
parent=self
)
table = self.find(QTableView, f"tableView_{t}")
self._table[t] = TableModel(
table_view = table,
table_headers = table_headers,
table_headers = self._trad.get_dict("table_headers"),
editable_headers = True,
delegates = {
"type": self._delegate_type,
@ -114,6 +113,7 @@ class LateralContributionWindow(PamhyrWindow):
},
data = self._study.river,
undo = self._undo_stack,
trad = self._trad,
opt_data = t,
)
table.setModel(self._table[t])

View File

@ -18,27 +18,14 @@
from PyQt5.QtCore import QCoreApplication
from View.Tools.PamhyrTranslate import PamhyrTranslate
from Model.LateralContribution.LateralContributionTypes import (
NotDefined, LateralContrib, Rain, Evaporation,
)
_translate = QCoreApplication.translate
long_types = {
"ND": _translate("LateralContribution", "Not defined"),
"LC": _translate("LateralContribution", "Lateral contribution"),
"RA": _translate("LateralContribution", "Rain"),
"EV": _translate("LateralContribution", "Evaporation"),
}
table_headers = {
"name": _translate("LateralContribution", "Name"),
"type": _translate("LateralContribution", "Type"),
"edge": _translate("LateralContribution", "Reach"),
"begin_kp": _translate("LateralContribution", "Begin kp (m)"),
"end_kp": _translate("LateralContribution", "End kp (m)")
}
LC_types = {
"ND": NotDefined,
"LC": LateralContrib,
@ -46,14 +33,21 @@ LC_types = {
"EV": Evaporation,
}
def retranslate():
table_headers["name"] = _translate("LateralContribution", "Name")
table_headers["type"] = _translate("LateralContribution", "Type")
table_headers["edge"] = _translate("LateralContribution", "Reach")
table_headers["begin_kp"] = _translate("LateralContribution", "Begin kp (m)")
table_headers["end_kp"] = _translate("LateralContribution", "End kp (m)")
class LCTranslate(PamhyrTranslate):
def __init__(self):
super(LCTranslate, self).__init__()
long_types["ND"] = _translate("LateralContribution", "Not defined")
long_types["LC"] = _translate("LateralContribution", "Lateral contribution")
long_types["RA"] = _translate("LateralContribution", "Rain")
long_types["EV"] = _translate("LateralContribution", "Evaporation")
self._sub_dict["long_types"] = {
"ND": _translate("LateralContribution", "Not defined"),
"LC": _translate("LateralContribution", "Lateral contribution"),
"RA": _translate("LateralContribution", "Rain"),
"EV": _translate("LateralContribution", "Evaporation"),
}
self._sub_dict["table_headers"] = {
"name": _translate("LateralContribution", "Name"),
"type": _translate("LateralContribution", "Type"),
"edge": _translate("LateralContribution", "Reach"),
"begin_kp": _translate("LateralContribution", "Begin kp (m)"),
"end_kp": _translate("LateralContribution", "End kp (m)")
}

View File

@ -46,7 +46,7 @@ from View.About.Window import AboutWindow
from View.Network.Window import NetworkWindow
from View.Geometry.Window import GeometryWindow
from View.BoundaryCondition.Window import BoundaryConditionWindow
# from View.LateralContribution.Window import LateralContributionWindow
from View.LateralContribution.Window import LateralContributionWindow
# from View.InitialConditions.Window import InitialConditionsWindow
# from View.Stricklers.Window import StricklersWindow
# from View.Frictions.Window import FrictionsWindow

View File

@ -18,6 +18,8 @@
import logging
from datetime import datetime, timedelta
from PyQt5.QtCore import (
QModelIndex, QRect, QTime, QDateTime,
)