diff --git a/src/Model/SedimentLayer/SedimentLayerList.py b/src/Model/SedimentLayer/SedimentLayerList.py index d2b662269cef4d574b6c75b493f3a8bc0c6bbe5f..e9025e01793303662497f9c36e65044e4fb30ecd 100644 --- a/src/Model/SedimentLayer/SedimentLayerList.py +++ b/src/Model/SedimentLayer/SedimentLayerList.py @@ -4,33 +4,17 @@ from tools import trace, timer from Model.DB import SQLSubModel from Model.Except import NotImplementedMethodeError +from Model.Tools.PamhyrList import PamhyrModelList from Model.SedimentLayer.SedimentLayer import SedimentLayer -class SedimentLayerList(SQLSubModel): +class SedimentLayerList(PamhyrModelList): _sub_classes = [SedimentLayer] - def __init__(self, status = None): - super(SedimentLayerList, self).__init__() - - self._status = status - self._sl = [] - - def __len__(self): - return len(self._sl) - - @classmethod - def _sql_create(cls, execute): - return cls._create_submodel(execute) - - @classmethod - def _sql_update(cls, execute, version): - return cls._update_submodel(execute, version) - @classmethod def _sql_load(cls, execute, data = None): new = cls(status = data["status"]) - new._sl = SedimentLayer._sql_load(execute, data) + new._lst = SedimentLayer._sql_load(execute, data) return new @@ -41,61 +25,17 @@ class SedimentLayerList(SQLSubModel): execute("DELETE FROM sedimentary_layer") execute("DELETE FROM sedimentary_layer_layer") - for sl in self._sl: + for sl in self._lst: ok &= sl._sql_save(execute, data) return ok @property def sediment_layers(self): - return self._sl.copy() - - def get(self, index): - return self._sl[index] - - def set(self, index, new): - self._sl[index] = new - self._status.modified() - - def insert(self, index, new): - self._sl.insert(index, new) - self._status.modified() + return self.lst def new(self, index): n = SedimentLayer(status = self._status) self.insert(index, n) self._status.modified() return n - - def delete(self, els): - for el in els: - self._sl.remove(el) - self._status.modified() - - def delete_i(self, indexes): - els = list( - map( - lambda x: x[1], - filter( - lambda x: x[0] in indexes, - enumerate(self._sl) - ) - ) - ) - self.delete(els) - - def move_up(self, index): - if index < len(self._sl): - next = index - 1 - - l = self._sl - l[index], l[next] = l[next], l[index] - self._status.modified() - - def move_down(self, index): - if index >= 0: - prev = index + 1 - - l = self._sl - l[index], l[prev] = l[prev], l[index] - self._status.modified() diff --git a/src/Model/Tools/PamhyrList.py b/src/Model/Tools/PamhyrList.py index 3446d85b04da8f473b1086e707d35f09b9cddc4b..bf8537dd1c0c3ab2003831d9f64bd627b2d598a7 100644 --- a/src/Model/Tools/PamhyrList.py +++ b/src/Model/Tools/PamhyrList.py @@ -45,7 +45,7 @@ class PamhyrModelList(SQLSubModel): @classmethod def _sql_update(cls, execute, version): - raise NotImplementedMethodeError(cls, cls._sql_update) + return cls._update_submodel(execute, version) @classmethod def _sql_load(cls, execute, data = None):