SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
smtk::view::ComponentPhraseModel Class Reference

Present phrases describing a set of acceptable components held by a single resource. More...

#include <ComponentPhraseModel.h>

Inheritance diagram for smtk::view::ComponentPhraseModel:
[legend]
Collaboration diagram for smtk::view::ComponentPhraseModel:
[legend]

Public Types

using Observer = std::function< void(DescriptivePhrasePtr, PhraseModelEvent, int, int)>
 
using Operation = smtk::operation::Operation
 
typedef std::function< bool(const smtk::view::DescriptivePhrasePtr &a, const smtk::view::DescriptivePhrasePtr &b)> SortingCompFunc
 
- Public Types inherited from smtk::view::PhraseModel
using Observer = PhraseModelObserver
 Events that alter the phrase model trigger callbacks of this type.
 
using Observers = PhraseModelObservers
 A collection of observers with runtime-modifiable call behaviors.
 
using PhraseDecorator = std::function< void(smtk::view::DescriptivePhrasePtr)>
 Applications may have a model decorate its phrases by providing a method with this signature.
 
using SourceVisitor = std::function< bool(const smtk::resource::ManagerPtr &, const smtk::operation::ManagerPtr &, const smtk::view::ManagerPtr &, const smtk::view::SelectionPtr &)>
 Subclasses (and others) may wish to invoke functions on the sources of data for the phrases. More...
 
using SourceVisitorFunction = std::function< smtk::common::Visit(const smtk::resource::ManagerPtr &, const smtk::operation::ManagerPtr &, const smtk::view::ManagerPtr &, const smtk::view::SelectionPtr &)>
 Subclasses (and others) may wish to invoke functions on the sources of data for the phrases. More...
 
using Operation = smtk::operation::Operation
 
using OperationPtr = smtk::operation::Operation::Ptr
 
using ComponentItemPtr = smtk::attribute::ComponentItemPtr
 
using Resource = smtk::resource::Resource
 

Public Member Functions

 smtkTypeMacro (smtk::view::ComponentPhraseModel)
 
 smtkSuperclassMacro (smtk::view::PhraseModel)
 
 smtkSharedPtrCreateMacro (smtk::view::PhraseModel)
 
 ComponentPhraseModel (const Configuration *, Manager *mgr)
 
DescriptivePhrasePtr root () const override
 Return the root phrase of the hierarchy.
 
bool setComponentFilters (const std::multimap< std::string, std::string > &src)
 Set the specification for what components are allowed to be src. More...
 
void visitComponentFilters (std::function< int(const std::string &, const std::string &)> fn) const
 Visit all of the filters that define what components are acceptable for display. More...
 
void setSortFunction (const SortingCompFunc &comparator)
 sets a custom comparison function to sort descriptive phrases. More...
 
- Public Member Functions inherited from smtk::view::PhraseModel
 smtkTypeMacroBase (smtk::view::PhraseModel)
 
 smtkCreateMacro (smtk::view::PhraseModel)
 
virtual void updateChildren (smtk::view::DescriptivePhrasePtr plist, DescriptivePhrases &next, const std::vector< int > &idx)
 Infer changes between sets of subphrases; affect these changes; and notify observers.
 
virtual void triggerDataChanged ()
 Manually specify that all rows should be updated (but to keep the expanded/collapsed state).
 
virtual void triggerDataChangedFor (smtk::resource::ComponentPtr comp)
 Manually specify that all rows with their relatedComponent() == comp should be updated.
 
Observersobservers ()
 Return the observers associated with this phrase model.
 
const Observersobservers () const
 
smtk::operation::ManagerPtr operationManager () const
 Return the operationManager for the first Source registered.
 
void setMutableAspects (int mutableAspects)
 Set what aspects of top-level phrases should be user-editable. More...
 
int mutableAspects () const
 Get what aspects of top-level phrases should be user-editable. More...
 
ManagerPtr manager () const
 PhraseModels that are managed have a non-null pointer to their manager.
 
const BadgeSetbadges () const
 Return the badges that may apply to phrases in this model.
 
BadgeSetbadges ()
 
const UUIDsToPhrasesMap uuidPhraseMap () const
 Return the map between persistent object IDs and Descriptive Phrases.
 
smtk::common::ThreadPool< DescriptivePhrases > & threadPool ()
 
virtual bool addSource (const smtk::common::TypeContainer &managers)
 Manage sources of information to display as phrases. More...
 
virtual bool removeSource (const smtk::common::TypeContainer &managers)
 Indicate managers that should no longer be monitored for changes.
 
virtual bool resetSources ()
 Stop listening for changes from all sources.
 
virtual void visitSources (SourceVisitorFunction visitor)
 Invoke the visitor function on each source that has been added to the model.
 

Protected Member Functions

void handleResourceEvent (const Resource &rsrc, smtk::resource::EventType event) override
 A method called when a resource manager adds or removes a resource.
 
void handleCreated (const smtk::resource::PersistentObjectSet &createdObjects) override
 Called to deal with resources/components being created as a result of an operation.
 
virtual void processResource (const Resource::Ptr &rsrc, bool adding)
 
virtual void populateRoot ()
 
DescriptivePhrasePtr createTopPhrase (const smtk::resource::ComponentPtr &comp)
 creates a DescriptivePhrase for a top-level Component (i.e. More...
 
- Protected Member Functions inherited from smtk::view::PhraseModel
 PhraseModel (const Configuration *config, Manager *manager)
 
virtual void handleSelectionEvent (const std::string &src, smtk::view::SelectionPtr seln)
 A method called when a selection is modified.
 
virtual int handleOperationEvent (const Operation &op, operation::EventType e, const Operation::Result &res)
 A method called when operators have modified one or more resources. More...
 
void removeChildren (const std::vector< int > &parentIdx, int childRange[2])
 Given the index of parent phrase and a range of its children, delete them. More...
 
void setPhraseParent (const DescriptivePhrasePtr &phrase, const DescriptivePhrasePtr &parent) const
 Set the Parent of a Descriptive Phrase.
 
virtual void handleExpunged (const smtk::resource::PersistentObjectSet &expungedObjects)
 Called to deal with resources/components being removed as a result of an operation.
 
virtual void handleModified (const smtk::resource::PersistentObjectSet &modifiedObjects)
 Called to deal with resources/components marked as modified by the operation.
 
virtual void redecorate ()
 Un-decorate and re-decorate every phrase in the current hierarchy. More...
 
virtual void trigger (DescriptivePhrasePtr phr, PhraseModelEvent e, const std::vector< int > &src, const std::vector< int > &dst, const std::vector< int > &refs)
 Make changes to the phrase hierarchy. More...
 
void removeFromMap (const DescriptivePhrasePtr &phr)
 Remove the Descriptive Phrase and its descendants from the Persistent Object / Phrases Map.
 
void insertIntoMap (const DescriptivePhrasePtr &phrase)
 Insert the Descriptive Phrase and its descendants into the Persistent Object / Phrases Map.
 

Protected Attributes

smtk::view::DescriptivePhrasePtr m_root
 
std::set< std::weak_ptr< smtk::resource::Resource >, std::owner_less< std::weak_ptr< smtk::resource::Resource > > > m_resources
 
std::multimap< std::string, std::string > m_componentFilters
 
- Protected Attributes inherited from smtk::view::PhraseModel
std::list< Sourcem_sources
 
UUIDsToPhrasesMap m_objectMap
 
Observers m_observers
 
PhraseDecorator m_decorator
 
BadgeSet m_badges
 
int m_mutableAspects { PhraseContent::EVERYTHING }
 
WeakManagerPtr m_manager
 
bool m_updatingChildren = false
 
smtk::common::ThreadPool< DescriptivePhrasesm_pool
 

Additional Inherited Members

- Static Public Member Functions inherited from smtk::view::PhraseModel
static SubphraseGeneratorPtr configureSubphraseGenerator (const Configuration *, Manager *)
 A method subclasses may call to prepare a subphrase generator. More...
 
static std::multimap< std::string, std::string > configureFilterStrings (const Configuration *config, Manager *manager)
 A method subclasses may call to obtain filter strings.
 
static smtk::operation::Observers::Priority operationObserverPriority ()
 The priority used for observing operation results. More...
 
- Public Attributes inherited from smtk::view::PhraseModel
friend Manager
 

Detailed Description

Present phrases describing a set of acceptable components held by a single resource.

This model maintains the list of acceptable components by asking the resource for all matching components each time an operation runs.

The list is flat (i.e., no subphrase generator is provided by default). The model provides access to a user-selected subset as an smtk::view::Selection.

Member Function Documentation

◆ createTopPhrase()

DescriptivePhrasePtr ComponentPhraseModel::createTopPhrase ( const smtk::resource::ComponentPtr comp)
protected

creates a DescriptivePhrase for a top-level Component (i.e.

one whose parent is root). Returns null if comp would not be considered a top level phrase.

◆ setComponentFilters()

bool ComponentPhraseModel::setComponentFilters ( const std::multimap< std::string, std::string > &  src)

Set the specification for what components are allowed to be src.

Note that entries in src are tuples of (unique name, filter); the unique name specifies a resource type (and all its subclasses) deemed acceptable sources while the filter is a string that can be passed to any acceptable resource to get a set of components it owns that are acceptable. In other words, both the resource and a subset of its components must be acceptable.

◆ setSortFunction()

void ComponentPhraseModel::setSortFunction ( const SortingCompFunc &  comparator)

sets a custom comparison function to sort descriptive phrases.

This function is used to sort nodes at all levels recursively. Developers can use comparison functions defined in DescriptivePhrase to set this. If this function is not called, the default value is DescriptivePhrase::compareByTypeThenTitle. This function calls populateRoot() so sorting would be triggered immediately.

◆ visitComponentFilters()

void smtk::view::ComponentPhraseModel::visitComponentFilters ( std::function< int(const std::string &, const std::string &)>  fn) const

Visit all of the filters that define what components are acceptable for display.

The function fn is called with each entry in m_componentFilters, with a resource's unique name as the first argument and the component filter as the second argument. If fn returns a non-zero value, then the visitation terminates early and fn will not be called again. Otherwise, iteration continues.


The documentation for this class was generated from the following files: