|
SMTK
@SMTK_VERSION@
Simulation Modeling Tool Kit
|
17 #ifndef smtk_attribute_ItemDefinition_h
18 #define smtk_attribute_ItemDefinition_h
20 #include "smtk/CoreExports.h"
23 #include "smtk/attribute/Item.h"
24 #include "smtk/attribute/Tag.h"
25 #include "smtk/common/Categories.h"
26 #include "smtk/common/Deprecation.h"
58 std::queue<std::pair<std::string, smtk::attribute::ItemDefinitionPtr>> UnresolvedExpItems;
60 : ToResource(*resource)
68 const std::string& name()
const {
return m_name; }
73 const std::string& label()
const {
return (!m_label.empty() ? m_label : m_name); }
75 void setLabel(
const std::string& newLabel) { m_label = newLabel; }
77 int version()
const {
return m_version; }
78 void setVersion(
int myVersion) { m_version = myVersion; }
80 bool isOptional()
const {
return m_isOptional; }
82 void setIsOptional(
bool isOptionalValue) { m_isOptional = isOptionalValue; }
85 bool isEnabledByDefault()
const {
return m_isEnabledByDefault; }
87 void setIsEnabledByDefault(
bool isEnabledByDefaultValue)
89 m_isEnabledByDefault = isEnabledByDefaultValue;
108 m_localCategories = catExp;
116 return m_combinationMode;
120 m_combinationMode = mode;
127 unsigned int advanceLevel(
int mode = 0)
const
129 return (mode == 1 ? m_advanceLevel[1] : m_advanceLevel[0]);
131 unsigned int localAdvanceLevel(
int mode = 0)
const
133 return (mode == 1 ? m_localAdvanceLevel[1] : m_localAdvanceLevel[0]);
135 void setLocalAdvanceLevel(
int mode,
unsigned int level);
137 void setLocalAdvanceLevel(
unsigned int level);
142 void unsetLocalAdvanceLevel(
int mode = 0);
145 bool hasLocalAdvanceLevelInfo(
int mode = 0)
const
147 return (mode == 1 ? m_hasLocalAdvanceLevelInfo[1] : m_hasLocalAdvanceLevelInfo[0]);
149 const std::string& detailedDescription()
const {
return m_detailedDescription; }
150 void setDetailedDescription(
const std::string& text) { m_detailedDescription = text; }
152 const std::string& briefDescription()
const {
return m_briefDescription; }
153 void setBriefDescription(
const std::string& text) { m_briefDescription = text; }
156 const Tags&
tags()
const {
return m_tags; }
161 const Tag* tag(
const std::string& name)
const;
162 Tag* tag(
const std::string& name);
167 bool addTag(
const Tag& tag);
168 bool removeTag(
const std::string& name);
172 const shared_ptr<units::System>&
unitSystem()
const {
return m_unitSystem; }
173 SMTK_DEPRECATED_IN_25_06(
"Use unitSystem() instead.")
174 const shared_ptr<units::System>& unitsSystem()
const {
return m_unitSystem; }
186 ItemDefinition(
const std::string& myname);
188 virtual void applyCategories(
191 virtual void applyAdvanceLevels(
192 const unsigned int& readLevelFromParent,
193 const unsigned int& writeLevelFromParent);
198 virtual void setUnitSystem(
const shared_ptr<units::System>& unitSystem);
199 SMTK_DEPRECATED_IN_25_06(
"Use setUnitSystem() instead.")
200 virtual
void setUnitsSystem(const shared_ptr<units::System>& unitsSystem)
202 this->setUnitSystem(unitsSystem);
207 bool m_isEnabledByDefault;
209 common::Categories::Expression m_localCategories;
210 common::Categories m_categories;
211 std::string m_detailedDescription;
212 std::string m_briefDescription;
213 bool m_hasLocalAdvanceLevelInfo[2];
214 unsigned int m_localAdvanceLevel[2];
215 unsigned int m_advanceLevel[2];
216 attribute::Tags m_tags;
218 std::shared_ptr<units::System> m_unitSystem;
222 const std::string m_name;
The main namespace for the Simulation Modeling Tool Kit (SMTK).
Definition: doc.h:33
Type
Definition: Item.h:65
Stores the definition of an attribute.
Definition: Definition.h:49
Definition: Categories.h:166
Definition: ItemDefinition.h:43
void setLocalCategories(const smtk::common::Categories::Expression &catExp)
Sets the local categories.
Definition: ItemDefinition.h:106
smtk::common::Categories::CombinationMode categoryInheritanceMode() const
Determines how the Definition should combine its local category Set with the category constraints bei...
Definition: ItemDefinition.h:114
A definition for attribute items that store smtk::resource::PersistentObjectPtr as values.
Definition: ReferenceItemDefinition.h:40
Definition: ItemDefinition.h:53
const Tags & tags() const
return the smtk::attribute::Tags associated with the Definition
Definition: ItemDefinition.h:156
const smtk::common::Categories & categories() const
Returns the categories (both explicitly assigned and inherited) associated to the Item Definition.
Definition: ItemDefinition.h:96
void setCategoryInheritanceMode(smtk::common::Categories::CombinationMode mode)
Determines how the Definition should combine its local category Set with the category constraints bei...
Definition: ItemDefinition.h:118
const shared_ptr< units::System > & unitSystem() const
Return the unitSystem of the Definition.
Definition: ItemDefinition.h:172
smtk::common::Categories::Expression & localCategories()
Returns the categories::Expression explicitly assigned to the Items Definition.
Definition: ItemDefinition.h:99
CombinationMode
Definition: Categories.h:36
Definition: ValueItemDefinition.h:41
Store information about attribute definitions and instances.
Definition: Resource.h:80
Represents the category constraints associated with smtk objects such as Attributes,...
Definition: Categories.h:33
smtk::shared_ptr< smtk::attribute::Item > ItemPtr
Definition: PublicPointerDefs.h:407
Macros for dealing with shared-pointer classes.
A GroupItemDefinition represents a collection of Item Definitions.
Definition: GroupItemDefinition.h:32
#define smtkTypeMacroBase(...)
Add typedefs to a class for identifcation.
Definition: SharedFromThis.h:153
Definition: Categories.h:225
smtk::shared_ptr< smtk::attribute::ItemDefinition > ItemDefinitionPtr
Definition: PublicPointerDefs.h:413
smtk::shared_ptr< smtk::attribute::Resource > ResourcePtr
Definition: PublicPointerDefs.h:544