BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
dataset.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: dataset.h,v 1.1.4.1 2007/03/25 21:25:41 oliver Exp $
5 //
6 
7 #ifndef BALL_VIEW_DATATYPE_DATASET_H
8 #define BALL_VIEW_DATATYPE_DATASET_H
9 
10 #ifndef BALL_DATATYPE_STRING_H
11 # include <BALL/DATATYPE/string.h>
12 #endif
13 
14 #ifndef BALL_DATATYPE_HASHMAP_H
15 # include <BALL/DATATYPE/hashMap.h>
16 #endif
17 
18 #ifndef BALL_DATATYPE_HASHSET_H
19 # include <BALL/DATATYPE/hashSet.h>
20 #endif
21 
22 #ifndef BALL_CONCEPT_EMBEDDABLE_H
23 # include <BALL/CONCEPT/embeddable.h>
24 #endif
25 
26 #include <QtGui/QMenu>
27 #include <QtGui/QTreeWidgetItem>
28 
29 namespace BALL
30 {
31  class Composite;
32 
33  namespace VIEW
34  {
35  class DatasetControl;
36  class DatasetMessage;
37  class MainControl;
38  class DataMessage;
39 
59  {
60  public:
61 
65 
68  Dataset();
69 
72  Dataset(const Dataset& dataset);
73 
76  virtual ~Dataset();
77 
80  virtual void clear();
81 
83 
86 
89  void set(const Dataset& v);
90 
94  const Dataset& operator = (const Dataset& v);
95 
97  void setName(String name) { name_ = name;}
98 
100  String getName() const { return name_;}
101 
103  void setType(String type) { type_ = type;}
104 
106  String getType() const { return type_;}
107 
109  void setComposite(Composite* composite) { composite_ = composite;}
110 
112  Composite* getComposite() const { return composite_;}
113 
115  void dump(std::ostream& s, Size depth) const;
116  //
118 
119  protected:
120 
124  };
125 
126 
129 #define BALL_CREATE_DATASET(TYPE)\
130  class BALL_VIEW_EXPORT TYPE##Dataset\
131  : public Dataset\
132  {\
133  public :\
134  \
135  TYPE##Dataset(TYPE* data = 0)\
136  : Dataset(),\
137  data_(data)\
138  {}\
139  \
140  TYPE##Dataset(const TYPE##Dataset& set)\
141  : Dataset(set),\
142  data_(set.data_)\
143  {}\
144  \
145  TYPE* getData() { return data_;}\
146  \
147  void setData(TYPE* data) { data_ = data;}\
148  \
149  TYPE* data_;\
150  };
151 
152 
189  : public QObject,
190  public Embeddable
191  {
192  Q_OBJECT
193 
194  friend class DatasetControl;
195 
196  public:
197 
199 
200 
202 
204  DatasetController(DatasetController& dc);
205 
207  virtual ~DatasetController();
208 
210  void setDatasetControl(DatasetControl* dc) { control_ = dc;}
211 
213  DatasetControl* getDatasetControl() { return control_;}
214 
223  virtual bool handle(DatasetMessage* msg);
224 
226  virtual bool insertDataset(Dataset* set);
227 
229  virtual bool deleteDataset(Dataset* set);
230 
235  virtual bool createMenuEntries();
236 
241  virtual QMenu* buildContextMenu(QTreeWidgetItem* item);
242 
244  vector<Dataset*> getDatasets();
245 
247  vector<Dataset*> getSelectedDatasets();
248 
252  Dataset* getSelectedDataset();
253 
256  bool hasDataset(Dataset* set);
257 
259  bool hasItem(QTreeWidgetItem* item);
260 
262  Dataset* getDataset(QTreeWidgetItem* item);
263 
266  String getType() { return type_;}
267 
274  virtual void checkMenu(MainControl& mc);
275 
281  vector<String> getSupportedFileFormats() { return file_formats_;}
282 
283  public slots:
284 
286  virtual bool write();
287 
292  bool open();
293 
295  virtual bool deleteDatasets();
296 
298  virtual bool deleteDataset();
299 
300  protected:
301 
303  void setStatusbarText(const String& text, bool important = false);
304  void setStatusbarText(const QString& text, bool important = false);
305 
306  virtual bool write(Dataset* /*set*/, String /*filetype*/, String /*filename*/);
307  virtual Dataset* open(String /*filetype*/, String /*filename*/);
308 
309  String getFileTypes_();
310  String getNameFromFileName_(String filename);
311  QAction* insertMenuEntry_(Position pid, const String& name, const char* slot,
312  const String& description = "", QKeySequence accel = QKeySequence());
313 
316  virtual void deleteDataset_(Dataset*) {};
317 
318  String type_;
319  vector<String> file_formats_;
321  vector<QAction*> actions_;
325  };
326 
327  } // namespace VIEW
328 } // namespace BALL
329 
330 #endif // BALL_VIEW_DATATYPE_DATASET_H