1 from Model import Model
2 from utils import toUnicodeWithWarning
4 class CurveModel(Model):
5 def __init__(self, controller, table=None, index=-1):
6 Model.__init__(self, controller)
7 self._title = "Curve %d" % self.getID()
9 self._yaxisIndex = index # column index in the table
10 self._xaxisIndex = 0 # By default the first column of the table is used for the X-s
13 ret = CurveModel(self._controller)
14 ret._title = self._title
15 ret._table = self._table # TO CHECK: deep copy here? (I think not needed in Python ...)
16 ret._yaxisIndex = self._yaxisIndex
17 ret._xaxisIndex = self._xaxisIndex
20 def setTable(self, t, silent=False):
23 self.notifyChange("DataChange")
28 def extendData(self, t, silent=False):
31 self.notifyChange("DataChange")
35 self.notifyChange("DataChange")
37 def setTitle(self, ti, silent=False):
38 ti = toUnicodeWithWarning(ti, "CurveModel::setTitle()")
41 self.notifyChange("CurveTitleChange")
46 def getYAxisIndex(self):
47 return self._yaxisIndex
49 def setYAxisIndex(self, idx, silent=False):
50 self._yaxisIndex = idx
52 self.notifyChange("YAxisIndexChange")
54 def getXAxisIndex(self):
55 return self._xaxisIndex
57 def setXAxisIndex(self, idx, silent=False):
58 sh = self._table.getShape()
60 raise ValueError("Index out of bound (is %d, but max is %d)" % (idx, sh[1]))
61 self._xaxisIndex = idx
63 self.notifyChange("XAxisIndexChange")