Isis 3.0 Programmer Reference
Back | Home
MeasureTableModel.cpp
1 #include "IsisDebug.h"
2 
3 #include "MeasureTableModel.h"
4 
5 #include <iostream>
6 
7 #include <QDebug>
8 #include <QList>
9 #include <QMessageBox>
10 #include <QStringList>
11 #include <QVariant>
12 
13 #include "ControlMeasure.h"
14 #include "ControlMeasure.h"
15 #include "Distance.h"
16 #include "IException.h"
17 #include "IString.h"
18 #include "Latitude.h"
19 #include "Longitude.h"
20 #include "SpecialPixel.h"
21 
22 #include "AbstractTableDelegate.h"
23 #include "AbstractMeasureItem.h"
24 #include "TableColumn.h"
25 #include "TableColumnList.h"
26 #include "MeasureTableDelegate.h"
27 #include "AbstractTreeModel.h"
28 
29 
30 namespace Isis {
31  namespace CnetViz {
32  MeasureTableModel::MeasureTableModel(AbstractTreeModel *model) :
33  AbstractTableModel(model, new MeasureTableDelegate) {
34  connect(model, SIGNAL(filterCountsChanged(int, int)),
35  this, SLOT(calculateFilterCounts()));
36  connect(model,
37  SIGNAL(treeSelectionChanged(QList< AbstractTreeItem * >)),
38  this,
39  SLOT(handleTreeSelectionChanged(QList< AbstractTreeItem * >)));
40  }
41 
42 
43  MeasureTableModel::~MeasureTableModel() {
44  }
45 
46 
47  QList< AbstractTreeItem * > MeasureTableModel::getItems(
48  int start, int end) {
49  return getSortedItems(start, end, AbstractTreeModel::MeasureItems);
50  }
51 
52 
53  QList< AbstractTreeItem * > MeasureTableModel::getItems(
54  AbstractTreeItem *item1, AbstractTreeItem *item2) {
55  return getSortedItems(item1, item2, AbstractTreeModel::MeasureItems);
56  }
57 
58 
59  int MeasureTableModel::getVisibleRowCount() const {
60  return getDataModel()->getVisibleItemCount(
61  AbstractTreeModel::MeasureItems, true);
62  }
63 
64 
65  QList< AbstractTreeItem * > MeasureTableModel::getSelectedItems() {
66  return getDataModel()->getSelectedItems(
67  AbstractTreeModel::MeasureItems, true);
68  }
69 
70 
71  QString MeasureTableModel::getWarningMessage(AbstractTreeItem const *row,
72  TableColumn const *column, QString valueToSave) const {
73  return getMeasureWarningMessage(row, column, valueToSave);
74  }
75 
76 
77  void MeasureTableModel::setGlobalSelection(bool selected) {
78  return getDataModel()->setGlobalSelection(selected,
79  AbstractTreeModel::MeasureItems);
80  }
81 
82 
83  void MeasureTableModel::calculateFilterCounts() {
84  int visible = getDataModel()->getVisibleItemCount(
85  AbstractTreeModel::MeasureItems, true);
86  int total = getDataModel()->getItemCount(
87  AbstractTreeModel::MeasureItems);
88 
89  emit filterCountsChanged(visible, total);
90  }
91 
92 
93  int MeasureTableModel::indexOfVisibleItem(
94  AbstractTreeItem const *item) const {
95  return getDataModel()->indexOfVisibleItem(item,
96  AbstractTreeModel::MeasureItems, true);
97  }
98 
99 
100  QString MeasureTableModel::getMeasureWarningMessage(
101  AbstractTreeItem const *row, TableColumn const *column,
102  QString valueToSave) {
103  QString colTitle = column->getTitle();
104  AbstractMeasureItem::Column colType =
105  AbstractMeasureItem::getColumn(colTitle);
106 
107  QString warningText;
108 
109  if (colType == AbstractMeasureItem::EditLock &&
110  valueToSave.toLower() == "no" &&
111  row->getFormattedData(colTitle).toLower() == "yes") {
112  QString pointColTitle =
113  AbstractMeasureItem::getColumnName(AbstractMeasureItem::PointId);
114  warningText = "Are you sure you want to unlock control measure [" +
115  row->getFormattedData() + "] in point [" +
116  row->getFormattedData(pointColTitle) + "] for editing?";
117  }
118 
119  return warningText;
120  }
121 
122 
123  void MeasureTableModel::handleTreeSelectionChanged(
124  QList< AbstractTreeItem * > newlySelectedItems) {
125  AbstractTableModel::handleTreeSelectionChanged(
126  newlySelectedItems, AbstractTreeItem::Measure);
127  }
128 
129 
130  TableColumnList *MeasureTableModel::createColumns() {
131  return AbstractMeasureItem::createColumns();
132  }
133  }
134 }
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:23:22