Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Isis 3 Programmer Reference
AbstractTreeItem.h
1#ifndef AbstractTreeItem_H
2#define AbstractTreeItem_H
3
9
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <QObject>
13
14class QFontMetrics;
15template< typename T > class QList;
16class QString;
17class QVariant;
18
19
20namespace Isis {
21 class ControlPoint;
22 class ControlMeasure;
23
39 class AbstractTreeItem : public QObject {
40 Q_OBJECT
41
42 public:
43 enum InternalPointerType {
44 None,
45 Point,
46 Measure,
47 ImageAndNet,
48 };
49
50
51 public:
52 AbstractTreeItem(AbstractTreeItem *parent = 0);
53 virtual ~AbstractTreeItem();
54
55 AbstractTreeItem *parent() const;
56 void setParent(AbstractTreeItem *newParent);
57
58 int row() const;
59
60 // These methods are designed to be implemented either by
61 // AbstractParentItem or AbstractLeafItem.
62 virtual void addChild(AbstractTreeItem *child) = 0;
63 virtual QList< AbstractTreeItem * > getChildren() const = 0;
64 virtual AbstractTreeItem *childAt(int row) const = 0;
65 virtual int childCount() const = 0;
66 virtual AbstractTreeItem *getFirstVisibleChild() const = 0;
67 virtual AbstractTreeItem *getLastVisibleChild() const = 0;
68 virtual int indexOf(AbstractTreeItem *child) const = 0;
69 virtual void setFirstVisibleChild(AbstractTreeItem *child) = 0;
70 virtual void setLastVisibleChild(AbstractTreeItem *child) = 0;
71
72 // These methods are designed to be implemented either by
73 // AbstractPointItem, AbstractMeasureItem, AbstractSerialItem,
74 // or AbstractNullDataItem.
75 virtual QVariant getData() const = 0;
76 virtual QVariant getData(QString columnTitle) const = 0;
77 virtual void setData(QString const &columnTitle,
78 QString const &newData) = 0;
79 virtual bool isDataEditable(QString columnTitle) const = 0;
80 virtual void deleteSource() = 0;
81 virtual InternalPointerType getPointerType() const = 0;
82 virtual void *getPointer() const = 0;
83
84 // There are things that every AbstractTreeItem can do.
85 virtual QString getFormattedData() const;
86 virtual QString getFormattedData(QString columnTitle) const;
87
88 virtual bool hasMeasure(ControlMeasure *) const;
89 virtual bool hasImage(QString imageSerial) const;
90 virtual bool hasPoint(ControlPoint *) const;
91
92 virtual AbstractTreeItem *getNextVisiblePeer() const;
93 virtual void setNextVisiblePeer(AbstractTreeItem *next);
94
95 virtual void setExpanded(bool newState);
96 virtual bool isExpanded() const;
97
98 virtual void setSelected(bool newState);
99 virtual void setSelectable(bool newSelectable);
100 virtual bool isSelected() const;
101 virtual bool isSelectable() const;
102
103 virtual void setVisible(bool newState);
104 virtual bool isVisible() const;
105
106 virtual int getDataWidth() const;
107 virtual int getDepth() const;
108
109 virtual void setLastVisibleFilteredItem(AbstractTreeItem *item);
110 virtual const AbstractTreeItem *getLastVisibleFilteredItem() const;
111
112 protected slots:
113 virtual void sourceDeleted() = 0;
114
115 protected:
116 virtual void calcDataWidth(int avgCharWidth);
117 static double catchNull(QString);
118 static QString catchNull(QVariant);
119
120
121 // disable copying of this class
122 private:
123 AbstractTreeItem(AbstractTreeItem const &);
124 AbstractTreeItem &operator=(AbstractTreeItem const &);
125
126
127 private:
128 AbstractTreeItem *m_nextVisibleItem;
129 AbstractTreeItem *m_parentItem;
130 bool m_expanded;
131 bool m_selectable;
132 bool m_selected;
133 bool m_visible;
134 int m_dataWidth;
135 };
136}
137
138#endif
a control measurement
A single control point.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16