Adds a listener to an event type.
When an event of the type pType fires, the callback pListener will be called. This function
returns a unique string id that may be used in removeEventListenerById to allow simple
listener removal.
It is possible to add an object that will be included in the callback to avoid creating too many closures.
The id of the inserted callback (actually an UUID).
Adds a listener to an event type.
When an event of the type pType fires, the callback pListener will be called. This function
returns a unique string id that may be used in removeEventListenerById to allow simple
listener removal.
The id of the inserted callback (actually an UUID).
Gets rid of this object.
After this call, this object can no longer be used.
If the object is an InfiniteObjectDispatcherInterface, then the ObjectDisposed signal is emitted.
Further uses of the object (with the exception of isDisposed and getInfiniteObjectType) will log a message with LL_UsingDisposedObject.
Gets the operator to apply with this FilterItemInterface and its closest enabled predecessor in its parent container.
The FilterItemInterface operator of the first enabled FilterItemInterface in a parent list (FilterSolverInterface, FilterSetInterface, FilterCompoundInterface) is always ignored, but a warning is outputted in the console when the FilterOperator is different that FO_UNION.
A FilterItemInterface has the FO_UNION operator by default.
The operator to combine this FilterItemInterface and its first enabled predecessor.
Tells the type of the given interface.
The type of the given interface.
Gets the identifier of the parent container that contains this FilterItemInterface (getFilterId()).
Such a container may be a FilterSolverInterface, FilterSetInterface or a FilterCompoundInterface. Returns an empty string if the FilterItemInterface is not included in a parent container.
The identifier of the parent container.
Tells if the EventDispatcher has such a callback registered for the given event type.
true if such a listener is installed for the given type of event.
Tells if this object has been gotten rid off.
true if dispose has been called on this object.
Tells if the FilterItemInterface is enabled.
If disabled, this FilterItemInterface is completely ignored during all the computations (the behavior is the same as if it had not been created).
A FilterItemInterface is enabled by default.
true if the FilterItemInterface is enabled.
Tells if the FilterItemInterface is "inverted".
When "inverted", a FilterItemInterface elects all the part instances that were not selected if it was not inverted.
A FilterItemInterface is not "inverted" by default.
true if such a FilterItemInterface is "inverted".
Removes a listener from an event type.
If no such listener is found, then the function returns false and does nothing. You must use the exact parameters that were used in addEventListener to actually remove the listener.
true if the callback was removed else false.
The listener function that gets removed.
The listener object that was used when addEventListener was called.
Removes a listener from an event type.
If no such listener is found, then the function returns false and does nothing. You must use the exact parameters that were used in addEventListener to actually remove the listener.
true if the callback was removed else false.
The listener function that gets removed.
Removes a listener by its id.
If no such listener is found, then the function returns false and does nothing. You must use the return value of addEventListener to actually remove the listener.
true if the callback was removed else false.
Sets the FilterItemInterface enabled/disabled status.
If disabled, this FilterItemInterface is completely ignored during all the computations (the behavior is the same as if it had not been created). Use addEventListener on the event FilterEnabledChanged to know when the FilterItemInterface has changed its enabled status.
A FilterItemInterface is enabled by default.
Sets the content of the FilterItemInterface from a former call to getFilterData.
Use addEventListener on the event FilterDataChanged to know when the FilterItemInterface internal data changed.
true if the data is set.
Sets the operator to apply with this FilterItemInterface and its closest enabled predecessor in its parent container.
The FilterItemInterface operator of the first enabled FilterItemInterface in a parent list (FilterSolverInterface, FilterSetInterface, FilterCompoundInterface) is always ignored, but a warning is outputted in the console when the FilterOperator is different that FO_UNION. Use addEventListener on the event FilterInvertedChanged to know when the FilterItemInterface operator changed.
A FilterItemInterface has the FO_UNION operator by default.
Sets the "inverted" status of the FilterItemInterface.
When "inverted", a FilterItemInterface elects all the part instances that were not selected if it was not inverted.
Use addEventListener on the event FilterInvertedChanged
to know when the FilterItemInterface has changed its "inverted" status.
A FilterItemInterface is not "inverted" by default.
The FilterItemInterface interface is the base interface used to filter
part instances.NO FilterItemInterface are created per se. Instead, interfaces that inherit FilterItemInterface are created. The FilterItemInterface is a kind of "abstract interface".
The FilterItemInterface serves to elect a list of
part instancesbased on a criterion (or a list of criteria), for example (others can be found in Filters examples):part instanceswhose size is lower than 3 cmspart instancesthat overlaps a given 3D cubepart instancesthat have a metadata "type" equal to "electrical" (electricalpart instances)part instancesthat have a metadata "mounted" to true (mountedpart instances).Each example is made possible by the creation of a specific interface that inherits FilterItemInterface.
A FilterItemInterface is not usable as is, it must be included in a "solver" object : the FilterSolverInterface. The FilterSolverInterface interface allows the computation of the FilterItemInterfaces, and allows grouping them with set operators (intersection, union, exclusion). See FilterSolverInterface for more details, but keep in mind that FilterSolverInterfaces rely on filtering contexts to work : VisibilityContextInterface (see Filtering Context).
When a FilterItemInterface is modified, there is no automatic update of the content of a FilterSolverInterface : indeed, you may want to modify a lot of FilterItemInterface, ConfContextInterfaces, VisibilityContextInterfaces before getting the expected result. Moreover, VisibilityContextInterfaces may depend on FilterSolverInterfaces that could lead to massive dependency graphs. For this reason, VisibilityContextInterfaces, FilterSolverInterfaces and FilterItemInterfaces are not updated through a dedicated function on each interface but with the update function.
The dependency graph of ConfContextInterfaces, VisibilityContextInterfaces and FilterItemInterfaces is handled by the DataSessionInterface, this also prevent too many requests to be sent to the server for nothing.
To sum up : modify your FilterItemInterfaces, ConfContextInterfaces, VisibilityContextInterfaces and FilterSolverInterfaces without taking into account any dependency that may have between them, and when you want the server to compute the result, remember to call update.
DO NOT create interfaces that inherits FilterItemInterface before the DMU is loaded, such filters will be silently discarded.
Discard existing interfaces that inherits FilterItemInterface before loading a new DataSessionInterface (dispose).
The same FilterItemInterface cannot be used at the same time in multiple FilterSolverInterface, FilterSetInterface, FilterCompoundInterface : calling insertFilter, insertFilter or insertFilter on a FilterItemInterface that is already included will return false.
Warning : only FilterAttributeInterface, FilterRangeInterface, FilterHasFieldInterface and FilterBooleanInterface can be included in a FilterCompoundInterface.
Each FilterItemInterface is assigned a unique identifier upon creation.
The combination of the FilterItemInterfaces in a FilterSolverInterface, FilterSetInterface, FilterCompoundInterface may be a union, intersection, or exclusion (FilterOperator). Each FilterItemInterface stores a combination mode that tells its way to combine itself with the first enabled FORMER FilterItemInterface in the parent list.
The FilterItemInterface operator of the first enabled FilterItemInterface in a parent list (FilterSolverInterface, FilterSetInterface, FilterCompoundInterface) is always ignored, but a warning is outputted in the console when the FilterOperator is different that FO_UNION.
The FilterSetInterface allows to gather filters together and to create an operator precedence with FilterOperator. It is a sort of "parenthesis" FilterItemInterface.
A FilterItemInterface may be :
part instancesleaves minus the one in the "normal" FilterItemInterface (in a FilterCompoundInterface, the meaning of the "inverted" state is different).The content of a FilterItemInterface is provided by getFilterData and can be restored by setFilterData.
Each filter has a
depthcontribution. For implementation reasons, the depth contribution of each FilterItemInterface included inside a FilterSolverInterface is limited. The depth contribution is available through getDepthContribution.This
depthcontribution cannot be more thanMax Depth Contribution
Please see Available Filters for a list of available FilterItemInterfaces.
Filters are created by the [DataSessionInterface](DataSessionInterface.html).
See