SMTK
@SMTK_VERSION@
Simulation Modeling Tool Kit
|
Go to the documentation of this file.
14 #ifndef smtk_attribute_GroupItemDefinition_h
15 #define smtk_attribute_GroupItemDefinition_h
17 #include "smtk/attribute/ItemDefinition.h"
43 std::size_t numberOfItemDefinitions()
const {
return m_itemDefs.size(); }
47 : (
static_cast<unsigned int>(ith) >= m_itemDefs.size()
49 : m_itemDefs[
static_cast<std::size_t
>(ith)]);
53 typename smtk::internal::shared_ptr_type<T>::SharedPointerType addItemDefinition(
54 const std::string& inName)
57 typename SharedTypes::SharedPointerType item;
60 if (this->findItemPosition(inName) < 0)
62 std::size_t n = m_itemDefs.size();
63 item = SharedTypes::RawPointerType::New(inName);
66 item->setIsOptional(
true);
69 static_cast<ItemDefinition*
>(item.get())->setUnitsSystem(m_unitsSystem);
70 m_itemDefs.push_back(item);
71 m_itemDefPositions[inName] =
static_cast<int>(n);
85 int findItemPosition(
const std::string& name)
const;
95 void setIsExtensible(
bool mode);
98 std::size_t numberOfRequiredGroups()
const {
return m_numberOfRequiredGroups; }
101 bool setNumberOfRequiredGroups(std::size_t gsize);
130 bool hasSubGroupLabels()
const {
return !m_labels.empty(); }
139 bool setMaxNumberOfGroups(std::size_t esize);
141 void setSubGroupLabel(std::size_t element,
const std::string& elabel);
142 void setCommonSubGroupLabel(
const std::string& elabel);
143 bool usingCommonSubGroupLabel()
const {
return m_useCommonLabel; }
144 std::string subGroupLabel(std::size_t element)
const;
155 GroupItemDefinition(
const std::string& myname);
156 void applyCategories(
159 void applyAdvanceLevels(
160 const unsigned int& readLevelFromParent,
161 const unsigned int& writeLevelFromParent)
override;
162 void setUnitsSystem(
const shared_ptr<units::System>& unitsSystem)
override;
163 std::vector<smtk::attribute::ItemDefinitionPtr> m_itemDefs;
164 std::map<std::string, int> m_itemDefPositions;
165 std::vector<std::string> m_labels;
166 std::size_t m_numberOfRequiredGroups = 1;
167 std::size_t m_maxNumberOfGroups = 0;
168 bool m_isExtensible =
false;
169 bool m_useCommonLabel =
false;
170 bool m_isConditional =
false;
171 unsigned int m_maxNumberOfChoices = 0;
172 unsigned int m_minNumberOfChoices = 0;
177 inline int GroupItemDefinition::findItemPosition(
const std::string& inName)
const
179 std::map<std::string, int>::const_iterator it;
180 it = m_itemDefPositions.find(inName);
181 if (it == m_itemDefPositions.end())
The main namespace for the Simulation Modeling Tool Kit (SMTK).
Definition: doc.h:33
bool isConditional() const
Returns or sets the definition's conditional property.
Definition: GroupItemDefinition.h:111
Type
Definition: Item.h:56
A group item represents an array of structures in SMTK.
Definition: GroupItem.h:48
void setMaxNumberOfChoices(unsigned int value)
Returns or sets the default maximum number of choices that must be set for GroupItems,...
Definition: GroupItemDefinition.h:126
std::size_t maxNumberOfGroups() const
Returns or Sets the maximum number of groups that items from this def can have.
Definition: GroupItemDefinition.h:136
Definition: Categories.h:146
Definition: ItemDefinition.h:42
unsigned int maxNumberOfChoices() const
Returns or sets the default maximum number of choices that must be set for GroupItems,...
Definition: GroupItemDefinition.h:127
Definition: PublicPointerDefs.h:756
void setMinNumberOfChoices(unsigned int value)
Returns or sets the default minimum number of choices that must be set for GroupItems,...
Definition: GroupItemDefinition.h:118
smtk::shared_ptr< smtk::attribute::GroupItemDefinition > GroupItemDefinitionPtr
Definition: PublicPointerDefs.h:517
Definition: ItemDefinition.h:52
unsigned int minNumberOfChoices() const
Returns or sets the default minimum number of choices that must be set for GroupItems,...
Definition: GroupItemDefinition.h:119
#define smtkTypeMacro(...)
Add typedefs to a class for identifcation.
Definition: SharedFromThis.h:128
void setIsConditional(bool value)
Returns or sets the definition's conditional property.
Definition: GroupItemDefinition.h:110
Represents the category constraints associated with an Attribute, Attribute Definition,...
Definition: Categories.h:32
smtk::shared_ptr< smtk::attribute::Item > ItemPtr
Definition: PublicPointerDefs.h:474
A GroupItemDefinition represents a collection of Item Definitions.
Definition: GroupItemDefinition.h:32
smtk::shared_ptr< smtk::attribute::ItemDefinition > ItemDefinitionPtr
Definition: PublicPointerDefs.h:480
bool isExtensible() const
Returns or sets the def's extensibility property.
Definition: GroupItemDefinition.h:94