OpendTect  6.3
uiioobjselgrp.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: A.H. Bril
8  Date: April 2001
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uiiocommon.h"
14 #include "uigroup.h"
15 #include "dbkey.h"
16 #include "bufstringset.h"
17 
18 
19 class IOObj;
20 class CtxtIOObj;
21 class Translator;
22 class IOObjContext;
23 class uiGenInput;
24 class uiIOObjManipGroup;
25 class uiIOObjSelGrp;
26 class uiIOObjSelGrpManipSubj;
27 class uiListBox;
28 class uiButton;
29 class uiToolButton;
30 class uiIOObjInserter;
31 class uiListBoxChoiceIO;
33 
34 
46 public:
47 
49  {
50  public:
52  : choicemode_(cm)
53  , allowreloc_(false)
54  , allowremove_(true)
55  , allowsetdefault_(false)
56  , withinserters_(true)
57  , withwriteopts_(true)
58  , confirmoverwrite_(true) {}
59 
60  mDefSetupMemb(OD::ChoiceMode,choicemode);
61  mDefSetupMemb(bool,allowreloc);
62  mDefSetupMemb(bool,allowremove);
63  mDefSetupMemb(bool,allowsetdefault);
64  mDefSetupMemb(bool,withinserters);
65  mDefSetupMemb(bool,withwriteopts);
66  mDefSetupMemb(bool,confirmoverwrite);
67 
68  inline bool isMultiChoice() const
69  { return ::isMultiChoice( choicemode_ ); }
70 
71  };
72 
73 # define mDefuiIOObjSelGrpConstructors(ctxtclss) \
74  uiIOObjSelGrp(uiParent*,const ctxtclss&); \
75  uiIOObjSelGrp(uiParent*,const ctxtclss&, \
76  const uiString& seltxt); \
77  uiIOObjSelGrp(uiParent*,const ctxtclss&, \
78  const Setup&); \
79  uiIOObjSelGrp(uiParent*,const ctxtclss&, \
80  const uiString& seltxt,const Setup&)
81 
84  ~uiIOObjSelGrp();
85 
86  bool isEmpty() const;
87  int size() const;
88  inline bool isMultiChoice() const { return setup_.isMultiChoice(); }
89 
90  // mostly interesting for read
91  int currentItem() const;
92  DBKey currentID() const;
93  int nrChosen() const;
94  bool isChosen(int) const;
95  DBKey chosenID(int idx=0) const;
96  void getChosen(DBKeySet&) const;
97  void getChosen(BufferStringSet&) const;
98  void setCurrent(int);
99  void setCurrent(const DBKey&);
100  void setChosen(int,bool yn=true);
101  void setChosen(const DBKeySet&);
102  void chooseAll(bool yn=true);
103 
104  bool updateCtxtIOObj();
105  const CtxtIOObj& getCtxtIOObj() const { return ctio_; }
106  const IOObjContext& getContext() const;
107  void setContext(const IOObjContext&);
108  void setDefTranslator(const Translator*);
109 
110  uiGroup* getTopGroup() { return topgrp_; }
111  uiGenInput* getNameField() { return nmfld_; }
112  uiGenInput* getFilterField() { return filtfld_; }
113  uiListBox* getListField() { return listfld_; }
114  uiIOObjManipGroup* getManipGroup();
115  const DBKeySet& getIOObjIds() const { return ioobjids_; }
116 
117  void setConfirmOverwrite( bool yn )
118  { setup_.confirmoverwrite_ = yn; }
119  void setAskedToOverwrite( bool yn )
120  { asked2overwrite_ = yn; }
121  bool askedToOverwrite() const { return asked2overwrite_; }
122  void setSurveyDefaultSubsel(const char* subsel);
123 
124  virtual bool fillPar(IOPar&) const;
125  virtual void usePar(const IOPar&);
126 
133  void fullUpdate(const DBKey& kpselected);
134  void fullUpdate(int);
135 
136 protected:
137 
146 
150  uiIOObjSelGrpManipSubj* manipgrpsubj;
156  uiGroup* topgrp_;
157 
158  void fillListBox();
159  IOObj* getIOObj(int);
160  virtual bool createEntry(const char*);
161  IOObj* updStatusBarInfo(bool);
162  void triggerStatusMsg(const char*);
163 
164  void setInitial(CallBacker*);
165  void selChg(CallBacker*);
166  void choiceChg(CallBacker*);
167  void filtChg(CallBacker*);
168  void objInserted(CallBacker*);
169  void nameAvCB(CallBacker*);
170  void delPress(CallBacker*);
171  void makeDefaultCB(CallBacker*);
172  void readChoiceDone(CallBacker*);
173  void writeChoiceReq(CallBacker*);
174 
175 private:
176 
177  void init(const uiString& st=uiString::emptyString());
178  void mkTopFlds(const uiString&);
179  void mkWriteFlds();
180  void mkManipulators();
181 
182  friend class uiIOObjSelDlg;
183  friend class uiIOObjSelGrpManipSubj;
184 
185 };
Definition: uigroup.h:53
#define mExpClass(module)
Definition: commondefs.h:157
uiGenInput * getNameField()
Definition: uiioobjselgrp.h:111
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
ChoiceMode
What to choose from any list-type UI object.
Definition: oduicommon.h:40
Definition: ioobj.h:57
Definition: uiioobjselgrp.h:48
uiGroup * topgrp_
Definition: uiioobjselgrp.h:156
uiGroup * getTopGroup()
Definition: uiioobjselgrp.h:110
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Notifier< uiIOObjSelGrp > newStatusMsg
Definition: uiioobjselgrp.h:129
CtxtIOObj & ctio_
Definition: uiioobjselgrp.h:138
BufferString surveydefaultsubsel_
Definition: uiioobjselgrp.h:143
Notifier< uiIOObjSelGrp > selectionChanged
Definition: uiioobjselgrp.h:127
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
bool init()
uiListBox * listfld_
Definition: uiioobjselgrp.h:147
void setConfirmOverwrite(bool yn)
Definition: uiioobjselgrp.h:117
Definition: oduicommon.h:43
Definition: dbkey.h:98
const CtxtIOObj & getCtxtIOObj() const
Definition: uiioobjselgrp.h:105
Setup(OD::ChoiceMode cm=OD::ChooseOnlyOne)
Definition: uiioobjselgrp.h:51
static const uiString & emptyString()
Definition: uistring.h:107
DBKeySet ioobjids_
Definition: uiioobjselgrp.h:140
Definition: uistring.h:88
uiToolButton * mkdefbut_
Definition: uiioobjselgrp.h:152
uiGenInput * nmfld_
Definition: uiioobjselgrp.h:148
Set of BufferString objects.
Definition: bufstringset.h:25
uiIOObjSelWriteTranslator * wrtrselfld_
Definition: uiioobjselgrp.h:151
Holds an IOObjCtxt plus a pointer to an IOObj and/or an IOPar.
Definition: ctxtioobj.h:24
uiGenInput * getFilterField()
Definition: uiioobjselgrp.h:112
Definition: uiioobjseldlg.h:33
List Box.
Definition: uilistbox.h:73
bool askedToOverwrite() const
Definition: uiioobjselgrp.h:121
#define mDefuiIOObjSelGrpConstructors(ctxtclss)
Definition: uiioobjselgrp.h:73
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Notifier< uiIOObjSelGrp > itemChosen
Definition: uiioobjselgrp.h:128
BufferStringSet ioobjnms_
Definition: uiioobjselgrp.h:141
Allows save/restore of chosen items for a uiListBox.
Definition: uilistboxchoiceio.h:34
Buttongroup to manipulate an IODirEntryList.
Definition: uiioobjmanip.h:82
BufferStringSet dispnms_
Definition: uiioobjselgrp.h:142
uiGenInput * filtfld_
Definition: uiioobjselgrp.h:149
inserts a new object into the OD data store.
Definition: uiioobjinserter.h:30
General Input Element.
Definition: uigeninput.h:56
ObjectSet< uiIOObjInserter > inserters_
Definition: uiioobjselgrp.h:155
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:129
uiIOObjSelGrpManipSubj * manipgrpsubj
Definition: uiioobjselgrp.h:150
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
uiListBox * getListField()
Definition: uiioobjselgrp.h:113
Setup setup_
Definition: uiioobjselgrp.h:139
I/O Interpreter class for a certain object type.
Definition: transl.h:122
bool isMultiChoice() const
Definition: uiioobjselgrp.h:88
void setAskedToOverwrite(bool yn)
Definition: uiioobjselgrp.h:119
ObjectSet< const char > iconnms_
Definition: uiioobjselgrp.h:145
bool asked2overwrite_
Definition: uiioobjselgrp.h:144
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
bool isEmpty(const char *)
Group for selecting output translator.
Definition: uiioobjselwritetransl.h:78
Definition: uitoolbutton.h:20
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
ObjectSet< uiButton > insertbuts_
Definition: uiioobjselgrp.h:154
void selChg(CallBacker *)
const DBKeySet & getIOObjIds() const
Definition: uiioobjselgrp.h:115
bool isMultiChoice() const
Definition: uiioobjselgrp.h:68
bool isMultiChoice(OD::ChoiceMode cm)
Definition: oduicommon.h:89
uiListBoxChoiceIO * lbchoiceio_
Definition: uiioobjselgrp.h:153
Basic group for letting the user select an object.
Definition: uiioobjselgrp.h:44
Holds the context for selecting and/or creating IOObjs.
Definition: ioobjctxt.h:59

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017