ComponentTree

class HPS::ComponentTree : public HPS::Sprocket

The ComponentTree class is a smart pointer which corresponds to a tree object in a GUI toolkit, e.g., a TreeView in WPF or a CTreeCtrl in MFC. This class can be derived from to facilitate tree creation in the various GUI toolkits. It is used to create a component or model browser.

Public Types

enum ItemType

Enumerates the types of items that can be contained in a ComponentTree.

Values:

enumerator None

No type.

enumerator ExchangeComponent

Item is an Exchange::Component.

enumerator ExchangeModelFile

Item is an Exchange::CADModel.

enumerator ExchangeViewGroup

Item is a collection of Exchange::Capture objects.

enumerator ExchangeAnnotationViewGroup

Item is a collection of Exchange::Capture objects which are annotation captures.

enumerator ExchangePMIGroup

Item is a collection of Exchange::Component objects representing PMI.

enumerator ExchangeModelGroup

Item is a collection of root Exchange::Component objects.

enumerator ParasolidComponent
enumerator ParasolidModelFile
enumerator DWGComponent
enumerator DWGModelFile

Public Functions

void AddHighlightOptions(HighlightOptionsKit const &in_options)

Appends one highlight options kit to the array that will be used by this ComponentTree. These options are used to perform highlights of elements within the tree and to determine what items within the tree need to be marked as highlighted when highlights are performed by ComponentPath::Highlight. If the options kit requested is already part of the ComponentTree highlight options array, it will not be added to it.

See

ComponentTreeItem::Highlight

See

ComponentTreeItem::Unhighlight

See

ComponentPath::Highlight

See

ComponentPath::Unhighlight

Parameters

in_options – The highlight options that will be used by this ComponentTree.

virtual void Assign(ComponentTree const &in_that)

Share the underlying smart-pointer of the ComponentTree source.

Parameters

in_that – The ComponentTree source of the assignment.

Returns

A reference to this ComponentTree.

ComponentTree()

The default constructor creates an uninitialized ComponentTree object. The Type() function will return Type::None.

ComponentTree(Canvas const &in_canvas, size_t in_layer = 0)

This constructor creates a ComponentTree object associated with a Canvas and a layer. This constructor should be used to create a new ComponentTree object.

Parameters
ComponentTree(ComponentTree &&in_that)

The move constructor creates a ComponentTree by transferring the underlying object of the rvalue reference to this ComponentTree.

Parameters

in_that – An rvalue reference to a ComponentTree to take the underlying object from.

ComponentTree(ComponentTree const &in_that)

The copy constructor creates a ComponentTree object that shares the underlying smart-pointer of the source ComponentTree.

Parameters

in_that – The source ComponentTree to copy.

bool Equals(ComponentTree const &in_that) const

Check if the source ComponentTree points to the same underlying impl as this ComponentTree.

Parameters

in_that – The source ComponentTree to compare to this ComponentTree.

Returns

true if the objects reference the same impl, false otherwise.

virtual void Flush()

Resets the root ComponentTreeItem for this ComponentTree. This will release the root ComponentTreeItem by this ComponentTree and set the root to a null pointer. If this function is overridden, the overriding function should invoke this base function.

bool GetHighlightEventHandling() const

Whether this ComponentTree is currently handling highlight events This include expanding the tree to the highlighted components, and making the text for the highlighted component tree items bold.

Returns

Whether this ComponentTree is currently handling highlight events.

HighlightOptionsKitArray GetHighlightOptions() const

Gets the highlight options that will be used by this ComponentTree.

Returns

An array of highlight options that will be used by this ComponentTree.

ComponentTreeItemPtr GetRoot() const

Gets the root ComponentTreeItem for this ComponentTree.

Returns

The root ComponentTreeItem for this ComponentTree.

inline virtual HPS::Type ObjectType() const

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Returns

The declared type of the object in question, which may differ from the true, underlying type.

bool operator!=(ComponentTree const &in_that) const

Check if the source ComponentTree points to a different impl than this ComponentTree.

Parameters

in_that – The source ComponentTree to compare to this ComponentTree.

Returns

true if the objects reference different impls, false otherwise.

ComponentTree &operator=(ComponentTree &&in_that)

The move assignment operator transfers the underlying object of the rvalue reference to this ComponentTree.

Parameters

in_that – An rvalue reference to a ComponentTree to take the underlying object from.

Returns

A reference to this ComponentTree.

ComponentTree &operator=(ComponentTree const &in_that)

Share the underlying smart-pointer of the ComponentTree source.

Parameters

in_that – The ComponentTree source of the assignment.

Returns

A reference to this ComponentTree.

bool operator==(ComponentTree const &in_that) const

Check if the source ComponentTree points to the same underlying impl as this ComponentTree.

Parameters

in_that – The source ComponentTree to compare to this ComponentTree.

Returns

true if the objects reference the same impl, false otherwise.

void ReExpand()

Collapses the root ComponentTreeItem for this ComponentTree and then re-expands the tree. It will try to preserve the original expansion state, however, if the underlying component structure has changed, the resulting expansion may look different.

void SetHighlightEventHandling(bool in_state)

Whether the ComponentTree should handle highlighting events. This include expanding the tree to the highlighted components, and making the text for the highlighted component tree items bold. By default the ComponentTree will handle highlight events.

Parameters

in_state – Whether to handle highlight events.

void SetHighlightOptions(HighlightOptionsKit const &in_options)

Sets the highlight options that will be used by this ComponentTree. These options are used to perform highlights of elements within the tree and to determine what items within the tree need to be marked as highlighted when highlights are performed by ComponentPath::Highlight. Calling this function replaces any highlight options previously set on this object.

See

ComponentTreeItem::Highlight

See

ComponentTreeItem::Unhighlight

See

ComponentPath::Highlight

See

ComponentPath::Unhighlight

Parameters

in_options – The highlight options that will be used by this ComponentTree.

void SetHighlightOptions(HighlightOptionsKitArray const &in_options)

Sets the highlight options that will be used by this ComponentTree. These options are used to perform highlights of elements within the tree and to determine what items within the tree need to be marked as highlighted when highlights are performed by ComponentPath::Highlight. Calling this function replaces any highlight options previously set on this object. All elements of the array should be unique. In the case of multiple identical elements, only the first unique one will be added.

See

ComponentTreeItem::Highlight

See

ComponentTreeItem::Unhighlight

See

ComponentPath::Highlight

See

ComponentPath::Unhighlight

Parameters

in_options – An array of highlight options that will be used by this ComponentTree.

void SetHighlightOptions(size_t in_count, HighlightOptionsKit const in_options[])

Sets the highlight options that will be used by this ComponentTree. These options are used to perform highlights of elements within the tree and to determine what items within the tree need to be marked as highlighted when highlights are performed by ComponentPath::Highlight. Calling this function replaces any highlight options previously set on this object. All elements of the array should be unique. In the case of multiple identical elements, only the first unique one will be added.

See

ComponentTreeItem::Highlight

See

ComponentTreeItem::Unhighlight

See

ComponentPath::Highlight

See

ComponentPath::Unhighlight

Parameters
  • in_count – the number of highlight options kits in the in_options array

  • in_options – An array of highlight options that will be used by this ComponentTree.

void SetRoot(ComponentTreeItemPtr const &in_root)

Sets the root ComponentTreeItem for this ComponentTree. This object should be created on the heap and it should have been created with a ComponentTreeItem constructor which took a CADModel, otherwise an exception will be thrown. Additionally, if there was already an existing root for this ComponentTree, the Flush function will be invoked prior to setting this as the new root, and Expand will be invoked on the new root.

See

Flush

See

ComponentTreeItem::Expand

Parameters

in_root – The root ComponentTreeItem for this ComponentTree.

virtual ~ComponentTree()

Public Static Attributes

static const HPS::Type staticType = HPS::Type::ComponentTree