Isis 3.0
Home
AbstractTreeItem.h
Go to the documentation of this file.
1 #ifndef AbstractTreeItem_H
2 #define AbstractTreeItem_H
3 
4 #include <QObject>
5 
6 class QFontMetrics;
7 template< typename T > class QList;
8 class QString;
9 class QVariant;
10 
11 
12 namespace Isis {
13  class ControlCubeGraphNode;
14  class ControlPoint;
15  class ControlMeasure;
16 
17  namespace CnetViz {
18 
31  class AbstractTreeItem : public QObject {
32 
33  Q_OBJECT
34 
35  public:
41  };
42 
43 
44  public:
46  virtual ~AbstractTreeItem();
47 
48  AbstractTreeItem *parent() const;
49  void setParent(AbstractTreeItem *newParent);
50 
51  int row() const;
52 
53  // These methods are designed to be implemented either by
54  // AbstractParentItem or AbstractLeafItem.
55  virtual void addChild(AbstractTreeItem *child) = 0;
56  virtual QList< AbstractTreeItem * > getChildren() const = 0;
57  virtual AbstractTreeItem *childAt(int row) const = 0;
58  virtual int childCount() const = 0;
59  virtual AbstractTreeItem *getFirstVisibleChild() const = 0;
60  virtual AbstractTreeItem *getLastVisibleChild() const = 0;
61  virtual int indexOf(AbstractTreeItem *child) const = 0;
62  virtual void setFirstVisibleChild(AbstractTreeItem *child) = 0;
63  virtual void setLastVisibleChild(AbstractTreeItem *child) = 0;
64 
65  // These methods are designed to be implemented either by
66  // AbstractPointItem, AbstractMeasureItem, AbstractSerialItem,
67  // or AbstractNullDataItem.
68  virtual QVariant getData() const = 0;
69  virtual QVariant getData(QString columnTitle) const = 0;
70  virtual void setData(QString const &columnTitle,
71  QString const &newData) = 0;
72  virtual bool isDataEditable(QString columnTitle) const = 0;
73  virtual void deleteSource() = 0;
74  virtual InternalPointerType getPointerType() const = 0;
75  virtual void *getPointer() const = 0;
76 
77  // There are things that every AbstractTreeItem can do.
78  virtual QString getFormattedData() const;
79  virtual QString getFormattedData(QString columnTitle) const;
80 
81  virtual bool hasMeasure(ControlMeasure *) const;
82  virtual bool hasNode(ControlCubeGraphNode *) const;
83  virtual bool hasPoint(ControlPoint *) const;
84 
85  virtual AbstractTreeItem *getNextVisiblePeer() const;
86  virtual void setNextVisiblePeer(AbstractTreeItem *next);
87 
88  virtual void setExpanded(bool newState);
89  virtual bool isExpanded() const;
90 
91  virtual void setSelected(bool newState);
92  virtual void setSelectable(bool newSelectable);
93  virtual bool isSelected() const;
94  virtual bool isSelectable() const;
95 
96  virtual void setVisible(bool newState);
97  virtual bool isVisible() const;
98 
99  virtual int getDataWidth() const;
100  virtual int getDepth() const;
101 
102  virtual void setLastVisibleFilteredItem(AbstractTreeItem *item);
103  virtual const AbstractTreeItem *getLastVisibleFilteredItem() const;
104 
105  protected slots:
106  virtual void sourceDeleted() = 0;
107 
108  protected:
109  virtual void calcDataWidth(int avgCharWidth);
110  static double catchNull(QString);
111  static QString catchNull(QVariant);
112 
113 
114  // disable copying of this class
115  private:
117  AbstractTreeItem &operator=(AbstractTreeItem const &);
118 
119 
120  private:
121  AbstractTreeItem *m_nextVisibleItem;
122  AbstractTreeItem *m_parentItem;
123  bool m_expanded;
124  bool m_selectable;
125  bool m_selected;
126  bool m_visible;
127  int m_dataWidth;
128  };
129  }
130 }
131 
132 #endif
virtual void setSelectable(bool newSelectable)
Definition: AbstractTreeItem.cpp:123
virtual void setData(QString const &columnTitle, QString const &newData)=0
Serial Number with added functionality for Control Networks.
Definition: ControlCubeGraphNode.h:67
virtual const AbstractTreeItem * getLastVisibleFilteredItem() const
Definition: AbstractTreeItem.cpp:181
virtual AbstractTreeItem * getNextVisiblePeer() const
Definition: AbstractTreeItem.cpp:69
virtual void setLastVisibleChild(AbstractTreeItem *child)=0
virtual bool isSelectable() const
Definition: AbstractTreeItem.cpp:133
virtual int getDepth() const
Definition: AbstractTreeItem.cpp:159
static double catchNull(QString)
Definition: AbstractTreeItem.cpp:216
virtual void setFirstVisibleChild(AbstractTreeItem *child)=0
virtual bool hasPoint(ControlPoint *) const
Definition: AbstractTreeItem.cpp:79
virtual void setExpanded(bool newState)
Definition: AbstractTreeItem.cpp:109
virtual void * getPointer() const =0
virtual bool isDataEditable(QString columnTitle) const =0
virtual AbstractTreeItem * getLastVisibleChild() const =0
virtual void setLastVisibleFilteredItem(AbstractTreeItem *item)
Definition: AbstractTreeItem.cpp:173
virtual void calcDataWidth(int avgCharWidth)
Definition: AbstractTreeItem.cpp:186
virtual bool isSelected() const
Definition: AbstractTreeItem.cpp:128
virtual void setNextVisiblePeer(AbstractTreeItem *next)
Definition: AbstractTreeItem.cpp:74
Base class for an item in the tree.
Definition: AbstractTreeItem.h:31
virtual bool hasNode(ControlCubeGraphNode *) const
Definition: AbstractTreeItem.cpp:99
AbstractTreeItem * parent() const
Definition: AbstractTreeItem.cpp:39
virtual void addChild(AbstractTreeItem *child)=0
void setParent(AbstractTreeItem *newParent)
Definition: AbstractTreeItem.cpp:44
A single control point.
Definition: ControlPoint.h:339
AbstractTreeItem(AbstractTreeItem *parent=0)
Definition: AbstractTreeItem.cpp:22
Definition: AbstractTreeItem.h:38
Definition: AbstractTreeItem.h:37
virtual bool isVisible() const
Definition: AbstractTreeItem.cpp:143
virtual void setVisible(bool newState)
Definition: AbstractTreeItem.cpp:138
Definition: AbstractTreeItem.h:40
virtual ~AbstractTreeItem()
Definition: AbstractTreeItem.cpp:33
Definition: BoxcarCachingAlgorithm.h:29
int row() const
Definition: AbstractTreeItem.cpp:49
virtual AbstractTreeItem * getFirstVisibleChild() const =0
a control measurement
Definition: ControlMeasure.h:171
virtual void setSelected(bool newState)
Definition: AbstractTreeItem.cpp:118
virtual int indexOf(AbstractTreeItem *child) const =0
virtual bool hasMeasure(ControlMeasure *) const
Definition: AbstractTreeItem.cpp:89
virtual InternalPointerType getPointerType() const =0
virtual QList< AbstractTreeItem * > getChildren() const =0
Definition: AbstractTreeItem.h:39
virtual bool isExpanded() const
Definition: AbstractTreeItem.cpp:113
virtual AbstractTreeItem * childAt(int row) const =0
virtual QString getFormattedData() const
Definition: AbstractTreeItem.cpp:59
virtual QVariant getData() const =0
virtual int getDataWidth() const
Definition: AbstractTreeItem.cpp:148
InternalPointerType
Definition: AbstractTreeItem.h:36
virtual int childCount() const =0