Skip to content

Commit af44477

Browse files
DropDown Menu for Visualization Table (#170)
1 parent d484231 commit af44477

File tree

2 files changed

+61
-7
lines changed

2 files changed

+61
-7
lines changed

src/petab_gui/controllers/table_controllers.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1315,3 +1315,61 @@ def __init__(
13151315
undo_stack=undo_stack,
13161316
mother_controller=mother_controller,
13171317
)
1318+
1319+
def setup_completers(self):
1320+
"""Set completers for the visualization table."""
1321+
table_view = self.view.table_view
1322+
# plotTypeSimulation
1323+
index = self.model.return_column_index("plotTypeSimulation")
1324+
if index and index > -1:
1325+
self.completers["plotTypeSimulation"] = ComboBoxDelegate(
1326+
["LinePlot", "BarPlot", "ScatterPlot"]
1327+
)
1328+
table_view.setItemDelegateForColumn(
1329+
index, self.completers["plotTypeSimulation"]
1330+
)
1331+
# plotTypeData
1332+
index = self.model.return_column_index("plotTypeData")
1333+
if index and index > -1:
1334+
self.completers["plotTypeData"] = ComboBoxDelegate(
1335+
["MeanAndSD", "MeanAndSEM", "replicate", "provided"]
1336+
)
1337+
table_view.setItemDelegateForColumn(
1338+
index, self.completers["plotTypeData"]
1339+
)
1340+
# datasetId
1341+
index = self.model.return_column_index("datasetId")
1342+
if index and index > -1:
1343+
self.completers["datasetId"] = ColumnSuggestionDelegate(
1344+
self.mother_controller.model.measurement, "datasetId"
1345+
)
1346+
table_view.setItemDelegateForColumn(
1347+
index, self.completers["datasetId"]
1348+
)
1349+
# yValues
1350+
index = self.model.return_column_index("yValues")
1351+
if index and index > -1:
1352+
self.completers["yValues"] = ColumnSuggestionDelegate(
1353+
self.mother_controller.model.observable, "observableId"
1354+
)
1355+
table_view.setItemDelegateForColumn(
1356+
index, self.completers["yValues"]
1357+
)
1358+
# xScale
1359+
index = self.model.return_column_index("xScale")
1360+
if index and index > -1:
1361+
self.completers["xScale"] = ComboBoxDelegate(
1362+
["lin", "log", "log10", "order"]
1363+
)
1364+
table_view.setItemDelegateForColumn(
1365+
index, self.completers["xScale"]
1366+
)
1367+
# yScale
1368+
index = self.model.return_column_index("yScale")
1369+
if index and index > -1:
1370+
self.completers["yScale"] = ComboBoxDelegate(
1371+
["lin", "log", "log10", "order"]
1372+
)
1373+
table_view.setItemDelegateForColumn(
1374+
index, self.completers["yScale"]
1375+
)

src/petab_gui/models/pandas_table_model.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,9 @@ def return_column_index(self, column_name):
670670
Returns:
671671
int: The view column index for the given column name, or -1
672672
"""
673-
pass
673+
if column_name in self._data_frame.columns:
674+
return self._data_frame.columns.get_loc(column_name)
675+
return -1
674676

675677
def unique_values(self, column_name):
676678
"""Return a list of unique values in a specified column.
@@ -1115,12 +1117,6 @@ def get_default_values(self, index, changed: dict | None = None):
11151117
else:
11161118
command.redo()
11171119

1118-
def return_column_index(self, column_name):
1119-
"""Return the index of a column."""
1120-
if column_name in self._data_frame.columns:
1121-
return self._data_frame.columns.get_loc(column_name)
1122-
return -1
1123-
11241120

11251121
class ObservableModel(IndexedPandasTableModel):
11261122
"""Table model for the observable data."""

0 commit comments

Comments
 (0)