OpendTect  6.6
uiattrdesced.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: N. Hemstra
8  Date: May 2005
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uiattributesmod.h"
15 #include "uigroup.h"
16 #include "uiattribfactory.h"
17 #include "changetracker.h"
18 #include "paramsetget.h"
19 #include "datapack.h"
20 #include "helpview.h"
21 
22 namespace Attrib { class Desc; class DescSet; class DescSetMan; };
23 namespace ZDomain { class Info; }
24 
25 class uiAttrDescEd;
26 class uiAttrSel;
27 class uiAttrSelData;
28 class uiImagAttrSel;
29 class uiSteeringSel;
30 class uiSteerAttrSel;
31 
32 using namespace Attrib;
33 
38 mExpClass(uiAttributes) EvalParam
39 {
40 public:
41  EvalParam( const char* lbl, const char* par1=0,
42  const char* par2=0, int idx=mUdf(int) )
43  : label_(lbl), par1_(par1), par2_(par2), pgidx_(idx)
44  , evaloutput_(false) {}
45 
46  bool operator==(const EvalParam& ep) const
47  {
48  return label_==ep.label_ && par1_==ep.par1_ &&
49  par2_==ep.par2_ && pgidx_==ep.pgidx_;
50  }
51 
55  int pgidx_;
57 
58 };
59 
60 
66 {
67 public:
68  virtual ~uiAttrDescEdCreater() {}
69  virtual uiAttrDescEd* create(uiParent*) const = 0;
70 
71 };
72 
73 
82 mExpClass(uiAttributes) uiAttrDescEd : public uiGroup
84 public:
85 
86  virtual ~uiAttrDescEd();
87 
88  HelpKey helpKey() const { return helpkey_; }
89  HelpKey videoKey() const { return videokey_; }
90  void setVideoKey( const HelpKey& k ) { videokey_ = k; }
91 
93  void setDescSet( DescSet* ds ) { ads_ = ds; }
94  Desc* curDesc() { return desc_; }
95  const Desc* curDesc() const { return desc_; }
96 
98  const ZDomain::Info* getZDomainInfo() const;
99 
101  virtual uiString commit(Desc* desc=0);
105 
106  virtual int getOutputIdx(float val) const { return (int)val; }
107  virtual float getOutputValue(int idx) const { return (float)idx; }
108  virtual void setOutputStep(float step) {}
109 
110  virtual void getEvalParams(TypeSet<EvalParam>&) const {}
111 
112  virtual const char* attribName() const = 0;
113  const char* displayName() const { return dispname_; }
114  void setDisplayName(const char* nm ) { dispname_ = nm; }
115 
116  enum DomainType { Both, Time, Depth };
117  DomainType domainType() const { return domtyp_; }
118  void setDomainType( DomainType t ) { domtyp_ = t; }
119 
120  enum DimensionType { AnyDim, Only3D, Only2D };
121  DimensionType dimensionType() const { return dimtyp_; }
122  void setDimensionType( DimensionType t ) { dimtyp_ = t; }
123 
124  bool is2D() const { return is2d_; }
125 
126  void setNeedInputUpdate() { needinpupd_ = true; }
127 
129 
130  static const char* getInputAttribName(uiAttrSel*,const Desc&);
131 
132  static const char* timegatestr();
133  static const char* frequencystr();
134  static const char* stepoutstr();
135  static const char* filterszstr();
136 
137 protected:
138 
139  uiAttrDescEd(uiParent*,bool is2d,const HelpKey&);
140 
141  virtual bool setParameters(const Desc&) { return true; }
142  virtual bool getParameters(Desc&) { return true; }
143  virtual bool setInput(const Desc&) { return true; }
144  virtual bool getInput(Desc&) { return true; }
145  virtual bool setOutput(const Desc&) { return true; }
146  virtual bool getOutput(Desc&);
147 
148  virtual bool areUIParsOK() { return true; }
149 
150  void fillOutput(Desc&,int selout);
151  void fillInp(uiAttrSel*,Desc&,int);
154 
155  void putInp(uiAttrSel*,const Desc&,int inpnr);
156  void putInp(uiSteerAttrSel*,const Desc&,int inpnr);
157  void putInp(uiSteeringSel*,const Desc&,int inpnr);
158 
159  bool needInputUpdate() const { return needinpupd_; }
160 
162  const uiString& post) const;
164  { return zDepLabel( uiString::emptyString(),
165  tr("gate")); }
167  { return zDepLabel( uiString::emptyString(),
168  tr("shift"));}
169  bool zIsTime() const;
170 
172  uiAttrSel* createInpFld(bool is2d,const char* txt=0);
173  uiAttrSel* createInpFld(const uiAttrSelData&,const char* txt=0);
177 
185  bool is2d_;
188 
190 
191  static const char* sKeyOtherGrp();
192  static const char* sKeyBasicGrp();
193  static const char* sKeyFilterGrp();
194  static const char* sKeyFreqGrp();
195  static const char* sKeyPatternGrp();
196  static const char* sKeyStatsGrp();
197  static const char* sKeyPositionGrp();
198  static const char* sKeyDipGrp();
199 
200  static uiString sInputTypeError(int input);
201 
202 
203 
204 private:
205 
209 
210 };
211 
212 
213 #define mDeclReqAttribUIFns \
214 protected: \
215  static uiAttrDescEd* createInstance(uiParent*,bool); \
216  static int factoryid_; \
217 public: \
218  static void initClass(); \
219  static void removeClass(); \
220  virtual const char* attribName() const; \
221  static int factoryID() { return factoryid_; }
222 
223 
224 #define mInitAttribUIPars( clss, attr, displaynm, grp, domtyp, dimtyp ) \
225 \
226 int clss::factoryid_ = -1; \
227 \
228 void clss::initClass() \
229 { \
230  factoryid_ = uiAF().add( displaynm, attr::attribName(), grp, \
231  clss::createInstance, (int)domtyp, (int)dimtyp ); \
232 } \
233 \
234 void clss::removeClass() \
235 { uiAF().remove( attr::attribName() ); } \
236 \
237 uiAttrDescEd* clss::createInstance( uiParent* p, bool is2d ) \
238 { \
239  uiAttrDescEd* de = new clss( p, is2d ); \
240  de->setDisplayName( displaynm ); \
241  de->setDomainType( domtyp ); \
242  de->setDimensionType( dimtyp ); \
243  return de; \
244 } \
245 \
246 const char* clss::attribName() const \
247 { \
248  return attr::attribName(); \
249 }
250 
251 #define mInitAttribUI( clss, attr, displaynm, grp ) \
252  mInitAttribUIPars(clss,attr,displaynm,grp,uiAttrDescEd::Both, \
253  uiAttrDescEd::AnyDim)
254 
uiAttrDescEd::DimensionType
DimensionType
Definition: uiattrdesced.h:120
uiAttrDescEd::setDisplayName
void setDisplayName(const char *nm)
Definition: uiattrdesced.h:114
ZDomain
Definition: zdomain.h:20
ZDomain::Info
Information of z-domain.
Definition: zdomain.h:93
uiAttrDescEd::zDepLabel
uiString zDepLabel(const uiString &pre, const uiString &post) const
EvalParam::operator==
bool operator==(const EvalParam &ep) const
Definition: uiattrdesced.h:46
uiAttrDescEd::areUIParsOK
virtual bool areUIParsOK()
Definition: uiattrdesced.h:148
uiAttrDescEd::errmsg_
uiString errmsg_
Definition: uiattrdesced.h:183
uiImagAttrSel
User interface element for getting attribute with both real and imaginary part.
Definition: uiattrsel.h:248
uiAttrDescEd::createImagInpFld
uiImagAttrSel * createImagInpFld(bool is2d)
uiAttrDescEd::attribName
virtual const char * attribName() const =0
uiAttrDescEd::sKeyDipGrp
static const char * sKeyDipGrp()
uiAttrDescEd::setDimensionType
void setDimensionType(DimensionType t)
Definition: uiattrdesced.h:122
uiAttrDescEd::Time
@ Time
Definition: uiattrdesced.h:116
uiAttrDescEd::sKeyStatsGrp
static const char * sKeyStatsGrp()
uiAttrDescEd::fillInp
void fillInp(uiAttrSel *, Desc &, int)
uiAttrDescEd::curDesc
Desc * curDesc()
Definition: uiattrdesced.h:94
uiAttrDescEd::createInpFld
uiAttrSel * createInpFld(const uiAttrSelData &, const char *txt=0)
uiAttrDescEd::gateLabel
uiString gateLabel() const
Definition: uiattrdesced.h:163
EvalParam::evaloutput_
bool evaloutput_
Definition: uiattrdesced.h:56
uiAttrDescEd::sKeyFreqGrp
static const char * sKeyFreqGrp()
uiAttrDescEd
Attribute description editor.
Definition: uiattrdesced.h:83
uiSteerAttrSel
Definition: uisteeringsel.h:24
uiAttrDescEd::setDataPackInp
virtual void setDataPackInp(const TypeSet< DataPack::FullID > &)
HelpKey
Definition: helpview.h:50
uiAttrDescEd::Only3D
@ Only3D
Definition: uiattrdesced.h:120
uiAttrDescEd::errMsgStr
uiString errMsgStr(Desc *desc)
ChangeTracker
Updates a variable when changes occur.
Definition: changetracker.h:25
uiAttrDescEd::sKeyPositionGrp
static const char * sKeyPositionGrp()
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
uiAttrDescEd::sKeyOtherGrp
static const char * sKeyOtherGrp()
uiAttrDescEd::attrnm_
BufferString attrnm_
Definition: uiattrdesced.h:180
EvalParam::EvalParam
EvalParam(const char *lbl, const char *par1=0, const char *par2=0, int idx=mUdf(int))
Definition: uiattrdesced.h:41
uiAttrDescEd::setVideoKey
void setVideoKey(const HelpKey &k)
Definition: uiattrdesced.h:90
uiAttrDescEd::is2d_
bool is2d_
Definition: uiattrdesced.h:185
uiAttrDescEd::sInputTypeError
static uiString sInputTypeError(int input)
uiAttrDescEd::fillInp
void fillInp(uiSteeringSel *, Desc &, int)
uiAttrSelData
User interface for attribute selection data.
Definition: uiattrsel.h:39
uiAttrDescEd::frequencystr
static const char * frequencystr()
uiAttrDescEd::createInpFld
uiAttrSel * createInpFld(bool is2d, const char *txt=0)
uiAttrDescEd::dispname_
BufferString dispname_
Definition: uiattrdesced.h:206
uiAttrDescEd::curDesc
const Desc * curDesc() const
Definition: uiattrdesced.h:95
uiAttrDescEd::getEvalParams
virtual void getEvalParams(TypeSet< EvalParam > &) const
Definition: uiattrdesced.h:110
uiAttrDescEd::sKeyBasicGrp
static const char * sKeyBasicGrp()
uiAttrDescEd::setOutputStep
virtual void setOutputStep(float step)
Definition: uiattrdesced.h:108
uiAttrDescEd::zIsTime
bool zIsTime() const
uiAttrDescEd::putInp
void putInp(uiSteerAttrSel *, const Desc &, int inpnr)
uigroup.h
uiAttrDescEdCreater::create
virtual uiAttrDescEd * create(uiParent *) const =0
uiAttrDescEd::fillInp
void fillInp(uiSteerAttrSel *, Desc &, int)
uiAttrDescEd::setParameters
virtual bool setParameters(const Desc &)
Definition: uiattrdesced.h:141
uiAttrDescEd::is2D
bool is2D() const
Definition: uiattrdesced.h:124
uiAttrDescEd::~uiAttrDescEd
virtual ~uiAttrDescEd()
uiAttrDescEd::videoKey
HelpKey videoKey() const
Definition: uiattrdesced.h:89
paramsetget.h
uiAttrDescEd::timegatestr
static const char * timegatestr()
uiAttrDescEdCreater
Attribute description editor creator.
Definition: uiattrdesced.h:66
uiAttrDescEd::stepoutstr
static const char * stepoutstr()
uiAttrDescEd::getOutputIdx
virtual int getOutputIdx(float val) const
Definition: uiattrdesced.h:106
uiAttrDescEd::getInput
virtual bool getInput(Desc &)
Definition: uiattrdesced.h:144
uiAttrDescEdCreater::~uiAttrDescEdCreater
virtual ~uiAttrDescEdCreater()
Definition: uiattrdesced.h:68
uiAttrDescEd::adsman_
DescSetMan * adsman_
Definition: uiattrdesced.h:208
uiGroup
Definition: uigroup.h:54
uiAttrDescEd::uiAttrDescEd
uiAttrDescEd(uiParent *, bool is2d, const HelpKey &)
uiAttrDescEd::chtr_
ChangeTracker chtr_
Definition: uiattrdesced.h:171
changetracker.h
uiAttrDescEd::setNeedInputUpdate
void setNeedInputUpdate()
Definition: uiattrdesced.h:126
uiAttrDescEd::dimensionType
DimensionType dimensionType() const
Definition: uiattrdesced.h:121
uiAttrDescEd::dpfids_
TypeSet< DataPack::FullID > dpfids_
Definition: uiattrdesced.h:189
uiAttrDescEd::putInp
void putInp(uiSteeringSel *, const Desc &, int inpnr)
uiAttrDescEd::filterszstr
static const char * filterszstr()
uiAttrDescEd::getInputAttribName
static const char * getInputAttribName(uiAttrSel *, const Desc &)
uiAttrDescEd::setDescSet
void setDescSet(DescSet *ds)
Definition: uiattrdesced.h:93
uiSteeringSel
Attribute Steering ui element: data + selection of type.
Definition: uisteeringsel.h:56
uiAttrDescEd::fillOutput
void fillOutput(Desc &, int selout)
sKey::Depth
FixedString Depth()
Definition: keystrs.h:60
uiAttrSel
User interface element for storing attribute desc selection.
Definition: uiattrsel.h:174
EvalParam::par2_
BufferString par2_
Definition: uiattrdesced.h:54
uiAttrDescEd::putInp
void putInp(uiAttrSel *, const Desc &, int inpnr)
uiAttrDescEd::getOutput
virtual bool getOutput(Desc &)
datapack.h
uiAttrDescEd::desc_
Desc * desc_
Definition: uiattrdesced.h:207
uiAttrDescEd::setOutput
virtual bool setOutput(const Desc &)
Definition: uiattrdesced.h:145
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
uiAttrDescEd::videokey_
HelpKey videokey_
Definition: uiattrdesced.h:179
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
uiAttrDescEd::sKeyPatternGrp
static const char * sKeyPatternGrp()
uiAttrDescEd::getParameters
virtual bool getParameters(Desc &)
Definition: uiattrdesced.h:142
uiAttrDescEd::getOutputValue
virtual float getOutputValue(int idx) const
Definition: uiattrdesced.h:107
uiAttrDescEd::zdomaininfo_
const ZDomain::Info * zdomaininfo_
Definition: uiattrdesced.h:187
uiAttrDescEd::dimtyp_
DimensionType dimtyp_
Definition: uiattrdesced.h:182
Attrib::DescSetMan
Manages attribute description set.
Definition: attribdescsetman.h:28
EvalParam::pgidx_
int pgidx_
Definition: uiattrdesced.h:55
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
uiString::emptyString
static const uiString & emptyString()
Definition: uistring.h:300
uiAttrDescEd::commit
virtual uiString commit(Desc *desc=0)
EvalParam::label_
BufferString label_
Definition: uiattrdesced.h:52
uiAttrDescEd::helpkey_
HelpKey helpkey_
Definition: uiattrdesced.h:178
uiattribfactory.h
uiAttrDescEd::setDesc
void setDesc(Desc *, DescSetMan *)
uiAttrDescEd::getInputDescFromDP
Desc * getInputDescFromDP(uiAttrSel *) const
uiAttrDescEd::ads_
DescSet * ads_
Definition: uiattrdesced.h:184
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
uiAttrDescEd::needinpupd_
bool needinpupd_
Definition: uiattrdesced.h:186
uiAttrDescEd::domtyp_
DomainType domtyp_
Definition: uiattrdesced.h:181
uiParent
Definition: uiparent.h:26
EvalParam::par1_
BufferString par1_
Definition: uiattrdesced.h:53
uiIOObjSel::helpkey_
HelpKey helpkey_
Definition: uiioobjsel.h:113
uiAttrDescEd::shiftLabel
uiString shiftLabel() const
Definition: uiattrdesced.h:166
uiAttrDescEd::getZDomainInfo
const ZDomain::Info * getZDomainInfo() const
uiAttrDescEd::mODTextTranslationClass
mODTextTranslationClass(uiAttrDescEd)
Only2D
@ Only2D
Definition: commontypes.h:41
uiAttrDescEd::setInput
virtual bool setInput(const Desc &)
Definition: uiattrdesced.h:143
uiAttrDescEd::domainType
DomainType domainType() const
Definition: uiattrdesced.h:117
uiAttrDescEd::setZDomainInfo
void setZDomainInfo(const ZDomain::Info *)
Attrib::DescSet
Set of attribute descriptions.
Definition: attribdescset.h:35
Attrib
Semblance Attribute.
Definition: attribdataholder.h:25
uiAttrDescEd::helpKey
HelpKey helpKey() const
Definition: uiattrdesced.h:88
Attrib::Desc
Description of an attribute in an Attrib::DescSet. Each attribute has a name (e.g....
Definition: attribdesc.h:89
uiAttrDescEd::displayName
const char * displayName() const
Definition: uiattrdesced.h:113
uiAttrDescEd::getInputDPID
bool getInputDPID(uiAttrSel *, DataPack::FullID &) const
EvalParam
Description of attribute parameters to evaluate.
Definition: uiattrdesced.h:39
uiAttrDescEd::needInputUpdate
bool needInputUpdate() const
Definition: uiattrdesced.h:159
uiAttrDescEd::DomainType
DomainType
Definition: uiattrdesced.h:116
uiAttrDescEd::sKeyFilterGrp
static const char * sKeyFilterGrp()
helpview.h
uiAttrDescEd::setDomainType
void setDomainType(DomainType t)
Definition: uiattrdesced.h:118
TypeSet
Sets of (small) copyable elements.
Definition: commontypes.h:29

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