class to allow multi-edits of row-based DPE adapters More...
#include <AggregateAdapter.h>
Inherits AZ::DocumentPropertyEditor::DocumentAdapter.
Inherited by AZ::DocumentPropertyEditor::LabeledRowAggregateAdapter.
Classes | |
| struct | AdapterInfo |
| struct | AggregateNode |
Public Member Functions | |
| void | AddAdapter (DocumentAdapterPtr sourceAdapter) |
| void | RemoveAdapter (DocumentAdapterPtr sourceAdapter) |
| void | ClearAdapters () |
| void | SetGenerateDiffRows (bool generateDiffRows) |
| ExpanderSettings * | CreateExpanderSettings (DocumentAdapter *referenceAdapter, const AZStd::string &settingsRegistryKey=AZStd::string(), const AZStd::string &propertyEditorName=AZStd::string()) override |
Public Member Functions inherited from AZ::DocumentPropertyEditor::DocumentAdapter | |
| AZ_RTTI (DocumentAdapter, "{8CEFE485-45C2-4ECC-B9D1-BBE75C7B02AB}") | |
| Dom::Value | GetContents () const |
| void | ConnectResetHandler (ResetEvent::Handler &handler) |
| void | ConnectChangedHandler (ChangedEvent::Handler &handler) |
| void | ConnectMessageHandler (MessageEvent::Handler &handler) |
| void | ConnectFilterHandler (FilterEvent::Handler &handler) |
| virtual void | SetRouter (RoutingAdapter *router, const Dom::Path &route) |
| Dom::Value | SendAdapterMessage (const AdapterMessage &message) |
| bool | IsEmpty () |
Protected Member Functions | |
| virtual AZStd::vector< AZ::Name > | GetMessagesToForward ()=0 |
| implemented by child adapters to return a vector of message Names to forward to each sub-adapter | |
| virtual Dom::Value | GenerateAggregateRow (AggregateNode *matchingNode)=0 |
| virtual function to generate an aggregate row that represents all the matching Dom::Values with in this node | |
| virtual Dom::Value | GenerateValuesDifferRow (AggregateNode *mismatchNode)=0 |
| virtual bool | SameRow (const Dom::Value &newRow, const Dom::Value &existingRow)=0 |
| virtual bool | ValuesMatch (const Dom::Value &left, const Dom::Value &right)=0 |
| pure virtual to determine if two row values match such that they can be edited by one PropertyHandler | |
| void | HandleAdapterReset (DocumentAdapterPtr adapter) |
| void | HandleDomChange (DocumentAdapterPtr adapter, const Dom::Patch &patch) |
| void | HandleDomMessage (DocumentAdapterPtr adapter, const AZ::DocumentPropertyEditor::AdapterMessage &message, Dom::Value &value) |
| Dom::Value | GenerateContents () override |
| Dom::Value | HandleMessage (const AdapterMessage &message) override |
| bool | NodeIsComplete (const AggregateNode *node) const |
| indicates whether this node has entries for all adapters and is therefore shown in the DOM | |
| void | EvaluateAllEntriesMatch (AggregateNode *node) |
| size_t | GetIndexForAdapter (const DocumentAdapterPtr &adapter) |
| AggregateNode * | GetNodeAtAdapterPath (size_t adapterIndex, const Dom::Path &path, Dom::Path &leftoverPath) |
| Dom::Value | GetComparisonRow (AggregateNode *aggregateNode, size_t omitAdapterIndex=AggregateNode::InvalidEntry) |
| get a Dom Value representing the given node by asking the first valid adapter that isn't at omitAdapterIndex | |
| Dom::Value | GetValueForNode (AggregateNode *aggregateNode) |
| generates a Dom::Value for this node (not including row descendents) for use in GenerateContents or patch operations | |
| Dom::Value | GetValueHierarchyForNode (AggregateNode *aggregateNode) |
| generates a Dom::Value for this node and its descendents for use in GenerateContents or patch operations | |
| AggregateNode * | GetNodeAtPath (const Dom::Path &aggregatePath) |
| gets the node at the given path relative to this adapter, if it exists | |
| Dom::Path | GetPathForNode (AggregateNode *node) |
| returns the resultant path for this node if it exists, otherwise an empty path | |
| void | PopulateNodesForAdapter (size_t adapterIndex) |
| AggregateNode * | AddChildRow (size_t adapterIndex, AggregateNode *parentNode, const Dom::Value &childValue, size_t childIndex, Dom::Patch *outgoingPatch) |
| void | PopulateChildren (size_t adapterIndex, const Dom::Value &parentValue, AggregateNode *parentNode) |
| void | ProcessRemoval (AggregateNode *rowNode, size_t adapterIndex, Dom::Patch *outgoingPatch) |
| void | UpdateAndPatchNode (AggregateNode *rowNode, size_t adapterIndex, const Dom::PatchOperation &patchOperation, const Dom::Path &pathPastNode, Dom::Patch &outgoingPatch) |
Protected Member Functions inherited from AZ::DocumentPropertyEditor::DocumentAdapter | |
| void | NotifyResetDocument (DocumentResetType resetType=DocumentResetType::SoftReset) |
| void | NotifyContentsChanged (const Dom::Patch &patch) |
| void | NotifyFilterChanged (const AZStd::string &filter) |
| Subclasses may call this to notify the view that this adapter's content has been filtered. | |
Static Protected Member Functions | |
| static void | RemoveChildRows (Dom::Value &rowValue) |
Protected Attributes | |
| AZStd::vector< AZStd::unique_ptr< AdapterInfo > > | m_adapters |
| all the adapters represented in this aggregate (multi-edit) | |
| AZStd::unique_ptr< AggregateNode > | m_rootNode |
| unsigned int | m_updateFrame = 0 |
| monotonically increasing frame counter that increments whenever a source adapter gets an update | |
| bool | m_generateDiffRows = true |
| AdapterBuilder | m_builder |
Additional Inherited Members | |
Public Types inherited from AZ::DocumentPropertyEditor::DocumentAdapter | |
| using | ResetEvent = Event<> |
| using | ChangedEvent = Event< const Dom::Patch & > |
| using | MessageEvent = Event< const AdapterMessage &, Dom::Value & > |
| using | FilterEvent = Event< const AZStd::string & > |
Static Public Member Functions inherited from AZ::DocumentPropertyEditor::DocumentAdapter | |
| static bool | IsDebugModeEnabled () |
| static void | SetDebugModeEnabled (bool enableDebugMode) |
| static bool | IsRow (const Dom::Value &domValue) |
| convenience method to determine whether a particular Dom Value is a row | |
Protected Types inherited from AZ::DocumentPropertyEditor::DocumentAdapter | |
| enum class | DocumentResetType { SoftReset , HardReset } |
| Specifies the type of reset operation triggered in NotifyResetDocument. More... | |
class to allow multi-edits of row-based DPE adapters
|
protected |
adds a child row given the adapter index, parentNode, new value, and new index.
| outgoingPatch | If generating a patch operation for this add is desirable, specify a non-null outgoingPatch |
|
overridevirtual |
Reimplemented from AZ::DocumentPropertyEditor::DocumentAdapter.
|
protectedpure virtual |
virtual function to generate an aggregate row that represents all the matching Dom::Values with in this node
Implemented in AZ::DocumentPropertyEditor::LabeledRowAggregateAdapter.
|
overrideprotectedvirtual |
Generates the contents of this adapter. This must be an Adapter DOM node. These contents will be cached - to notify clients of changes to the structure, NotifyResetDocument or NotifyContentsChanged must be used.
Implements AZ::DocumentPropertyEditor::DocumentAdapter.
|
protectedpure virtual |
pure virtual to generate a "values differ" row that is appropriate for this type of AggregateAdapter mismatchNode is provided so the row presented can include information from individual mismatched Dom::Values, if desired
Implemented in AZ::DocumentPropertyEditor::LabeledRowAggregateAdapter.
|
protectedpure virtual |
implemented by child adapters to return a vector of message Names to forward to each sub-adapter
Implemented in AZ::DocumentPropertyEditor::LabeledRowAggregateAdapter.
|
overrideprotectedvirtual |
Called by SendAdapterMessage before the view is notified. This may be overridden to handle BoundAdapterMessages on fields.
Reimplemented from AZ::DocumentPropertyEditor::DocumentAdapter.
|
protected |
removes the entry for adapterIndex in this node
| outgoingPatch | when outgoingPatch is not null, this will add a remove patch operation to it, if appropriate |
|
protectedpure virtual |
pure virtual to determine if the row value from one adapter should be considered the same aggregate row as a value from another adapter
Implemented in AZ::DocumentPropertyEditor::LabeledRowAggregateAdapter.
|
inline |
determines whether to generate "values differ" rows at all if not, just generates rows based on the first adapter
|
protectedpure virtual |
pure virtual to determine if two row values match such that they can be edited by one PropertyHandler
Implemented in AZ::DocumentPropertyEditor::LabeledRowAggregateAdapter.