OpendTect  6.3
uiposprovider.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: Bert
8  Date: Feb 2008
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uiiocommon.h"
14 #include "uicompoundparsel.h"
15 #include "uidialog.h"
16 #include "uiposprovgroup.h"
17 #include "iopar.h"
18 
19 class uiButton;
20 class uiGenInput;
21 namespace Pos { class Provider; }
22 class uiPosProvGroup;
23 class TrcKeyZSampling;
24 
29 public:
30 
31  struct Setup : public uiPosProvGroup::Setup
32  {
33  enum ChoiceType { All, OnlySeisTypes, OnlyRanges, RangewithPolygon,
34  VolumeTypes };
35 
36  Setup( bool is_2d, bool with_step, bool with_z )
37  : uiPosProvGroup::Setup(is_2d,with_step,with_z)
38  , seltxt_(uiStrings::sPosition(2))
39  , allownone_(false)
40  , useworkarea_(true)
41  , choicetype_(OnlyRanges) {}
42  virtual ~Setup() {}
43 
44  mDefSetupMemb(uiString,seltxt)
45  mDefSetupMemb(ChoiceType,choicetype)
46  mDefSetupMemb(bool,allownone)
47  mDefSetupMemb(bool,useworkarea)
48  };
49 
50  uiPosProvider(uiParent*,const Setup&);
51 
52  void usePar(const IOPar&);
53  bool fillPar(IOPar&) const;
54  void setExtractionDefaults();
55 
56  void setSampling(const TrcKeyZSampling&);
57  void getSampling(TrcKeyZSampling&,const IOPar* =0) const;
58 
59  Pos::Provider* createProvider() const;
60 
61  bool is2D() const { return setup_.is2d_; }
62  bool isAll() const { return !curGrp(); }
63 
64 protected:
65 
67  uiButton* fullsurvbut_;
68  uiButton* openbut_;
69  uiButton* savebut_;
72 
73  void selChg(CallBacker*);
74  void fullSurvPush(CallBacker*);
75  void openCB(CallBacker*);
76  void saveCB(CallBacker*);
77  uiPosProvGroup* curGrp() const;
78 };
79 
80 
84 {
85 public:
86 
88 
89  uiPosProvSel(uiParent*,const Setup&);
90  ~uiPosProvSel();
91 
92  void usePar(const IOPar&);
93  void fillPar( IOPar& iop ) const { iop.merge(iop_); }
94 
95  Pos::Provider* curProvider() { return prov_; }
96  const Pos::Provider* curProvider() const { return prov_; }
97 
98  const TrcKeyZSampling& envelope() const;
99  void setInput(const TrcKeyZSampling&,bool chgtype=true);
100  void setInput(const TrcKeyZSampling& initcs,
101  const TrcKeyZSampling& ioparcs);
102  void setInputLimit(const TrcKeyZSampling&);
103  const TrcKeyZSampling& inputLimit() const { return setup_.tkzs_; }
104 
105  bool isAll() const;
106  void setToAll();
107 
108 protected:
109 
110  Setup setup_;
114 
115  void doDlg(CallBacker*);
116  BufferString getSummary() const;
117  void setCSToAll() const;
118  void setProvFromCS();
119  void mkNewProv(bool updsumm=true);
120 };
121 
122 
127 public:
128  typedef uiPosProvider::Setup Setup;
129 
130  uiPosProvDlg(uiParent*,const Setup&,const uiString&);
131  ~uiPosProvDlg();
132 
133  void setSampling(const TrcKeyZSampling&);
134  void getSampling(TrcKeyZSampling&,const IOPar* =0) const;
135 
136 protected:
137  bool acceptOK();
138 
140 };
Definition: uigroup.h:53
Pos::Provider * curProvider()
Definition: uiposprovider.h:95
#define mExpClass(module)
Definition: commondefs.h:157
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
FixedString Setup()
Definition: keystrs.h:113
const Pos::Provider * curProvider() const
Definition: uiposprovider.h:96
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:31
Pos::Provider * prov_
Definition: uiposprovider.h:112
Single-line element allowing multi-parameter to be set via a dialog.
Definition: uicompoundparsel.h:29
uiGenInput * selfld_
Definition: uiposprovider.h:66
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Definition: uiposprovider.h:33
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
void merge(const IOPar &)
merge entries using the set() command
void fillPar(IOPar &iop) const
Definition: uiposprovider.h:93
bool isAll() const
Definition: uiposprovider.h:62
uiButton * openbut_
Definition: uiposprovider.h:68
Definition: uistrings.h:22
Definition: uiposprovider.h:31
IOPar iop_
Definition: uiposprovider.h:111
Definition: uistring.h:88
Definition: uiparent.h:24
bool is2D() const
Definition: uiposprovider.h:61
Definition: uidialog.h:40
const TrcKeyZSampling & inputLimit() const
Definition: uiposprovider.h:103
Definition: uiposprovgroup.h:25
ObjectSet< uiPosProvGroup > grps_
Definition: uiposprovider.h:70
ChoiceType
Definition: uiposprovider.h:33
FixedString Provider()
Definition: keystrs.h:103
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
group for providing positions, usually for 2D or 3D seismics
Definition: uiposprovgroup.h:21
Setup setup_
Definition: uiposprovider.h:110
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
TrcKeyZSampling & tkzs_
Definition: uiposprovider.h:113
General Input Element.
Definition: uigeninput.h:56
FixedString All()
Definition: keystrs.h:34
Position.
Definition: commontypes.h:38
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:129
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
uiButton * fullsurvbut_
Definition: uiposprovider.h:67
Setup(bool is_2d, bool with_step, bool with_z)
Definition: uiposprovider.h:36
uiButton * savebut_
Definition: uiposprovider.h:69
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Dialog to capture a user&#39;s Pos::Provider wishes.
Definition: uiposprovider.h:125
lets user choose a way to provide positions
Definition: uiposprovider.h:27
CompoundParSel to capture a user&#39;s Pos::Provider wishes.
Definition: uiposprovider.h:83
Setup setup_
Definition: uiposprovider.h:71
uiPosProvider::Setup Setup
Definition: uiposprovider.h:87
virtual ~Setup()
Definition: uiposprovider.h:42
uiPosProvider * selfld_
Definition: uiposprovider.h:139

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