Class ReferenceBaseAttribute<R extends FactoryBase<?,R>,F extends FactoryBase<?,R>,U,A extends ReferenceBaseAttribute<R,F,U,A>>
- java.lang.Object
-
- io.github.factoryfx.factory.attribute.Attribute<U,A>
-
- io.github.factoryfx.factory.attribute.dependency.ReferenceBaseAttribute<R,F,U,A>
-
- All Implemented Interfaces:
AttributeCopy<U>,AttributeMatch<U>,AttributeMerger<U>,AttributeValue<U>,FactoryChildrenEnclosingAttribute<R,A>
- Direct Known Subclasses:
FactoryBaseAttribute,FactoryListBaseAttribute
public abstract class ReferenceBaseAttribute<R extends FactoryBase<?,R>,F extends FactoryBase<?,R>,U,A extends ReferenceBaseAttribute<R,F,U,A>> extends Attribute<U,A> implements FactoryChildrenEnclosingAttribute<R,A>
Base for Reference attributes, with common api
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.function.BiConsumer<F,FactoryBase<?,?>>additionalDeleteActionprotected java.lang.Class<F>clazzprotected FactoryBase<?,R>parent
-
Constructor Summary
Constructors Constructor Description ReferenceBaseAttribute()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description AadditionalDeleteAction(java.util.function.BiConsumer<F,FactoryBase<?,?>> additionalDeleteAction)action after delete, e.g delete the factory also in other listsAcatalogueBased()reference is a selection from a catalogueAttributeStorageMetadatacreateAttributeStorageMetadata(java.lang.String variableName)voidinternal_addBackReferences(FactoryBase<?,?> root, FactoryBase<?,?> parent)java.util.List<F>internal_createNewPossibleValues()CopySemanticinternal_getCopySemantic()java.lang.Class<F>internal_getReferenceClass()booleaninternal_isCatalogueBased()booleaninternal_isUserCreatable()booleaninternal_isUserSelectable()java.util.Collection<F>internal_possibleValues()voidinternal_reset()voidinternal_setReferenceClass(java.lang.Class<?> clazz)setup value selection and new value adding for user editingAnewValuesProvider(java.util.function.BiFunction<FactoryBase<?,?>,A,java.util.List<F>> newValuesProviderFromRootAndAttribute)customise how new values are createdAnewValuesProvider(java.util.function.Function<FactoryBase<?,?>,java.util.List<F>> newValuesProvider)Deprecated.ApossibleValueProvider(java.util.function.Function<R,java.util.Collection<F>> provider)customise the list of selectable itemsAsetCopySemantic(CopySemantic copySemantic)AuserNotCreatable()disable new for reference, used in gui to disable the new button so that the user can't create new factories in this attributeAuserNotSelectable()disable select for reference, used in gui to disable the select button so that the user can't select new factories in this attribute-
Methods inherited from class io.github.factoryfx.factory.attribute.Attribute
addonText, de, en, es, fr, getDisplayText, internal_addListener, internal_endUsage, internal_getAddonText, internal_getListeners, internal_getPreferredLabelText, internal_getPreferredTooltipText, internal_hasWritePermission, internal_isUserReadOnly, internal_merge, internal_removeAllListener, internal_removeListener, internal_required, internal_validate, it, labelText, labelText, listenersEmpty, permission, pt, tooltipDe, tooltipEn, updateListeners, userReadOnly, userReadOnly, validation
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.github.factoryfx.factory.attribute.AttributeCopy
internal_copyTo, internal_semanticCopyTo, set
-
Methods inherited from interface io.github.factoryfx.factory.attribute.AttributeMatch
internal_mergeMatch, internal_referenceEquals, internal_referenceListEquals
-
Methods inherited from interface io.github.factoryfx.factory.attribute.AttributeMerger
internal_mergeFactoryList
-
Methods inherited from interface io.github.factoryfx.factory.attribute.AttributeValue
get, set
-
Methods inherited from interface io.github.factoryfx.factory.attribute.dependency.FactoryChildrenEnclosingAttribute
internal_fixDuplicateObjects, internal_visitChildren
-
-
-
-
Field Detail
-
parent
protected FactoryBase<?,R extends FactoryBase<?,R>> parent
-
additionalDeleteAction
protected java.util.function.BiConsumer<F extends FactoryBase<?,R>,FactoryBase<?,?>> additionalDeleteAction
-
clazz
protected java.lang.Class<F extends FactoryBase<?,R>> clazz
-
-
Method Detail
-
possibleValueProvider
public A possibleValueProvider(java.util.function.Function<R,java.util.Collection<F>> provider)
customise the list of selectable items- Parameters:
provider- provider- Returns:
- self
-
internal_possibleValues
public java.util.Collection<F> internal_possibleValues()
-
internal_addBackReferences
public void internal_addBackReferences(FactoryBase<?,?> root, FactoryBase<?,?> parent)
- Specified by:
internal_addBackReferencesin interfaceAttributeCopy<R extends FactoryBase<?,R>>- Specified by:
internal_addBackReferencesin interfaceFactoryChildrenEnclosingAttribute<R extends FactoryBase<?,R>,F extends FactoryBase<?,R>>- Parameters:
root- factory tree rootparent- data that contains the attribute
-
newValuesProvider
@Deprecated public A newValuesProvider(java.util.function.Function<FactoryBase<?,?>,java.util.List<F>> newValuesProvider)
Deprecated.customise how new values are created- Parameters:
newValuesProvider- value, root- Returns:
- the new added factory Deprecated use newValuesProvider(BiFunction... ) instead
-
newValuesProvider
public A newValuesProvider(java.util.function.BiFunction<FactoryBase<?,?>,A,java.util.List<F>> newValuesProviderFromRootAndAttribute)
customise how new values are created- Parameters:
newValuesProviderFromRootAndAttribute- root, attribute to List.of(T)- Returns:
- the new added factory
-
additionalDeleteAction
public A additionalDeleteAction(java.util.function.BiConsumer<F,FactoryBase<?,?>> additionalDeleteAction)
action after delete, e.g delete the factory also in other lists- Parameters:
additionalDeleteAction- deleted value, root- Returns:
- self
-
userNotSelectable
public A userNotSelectable()
disable select for reference, used in gui to disable the select button so that the user can't select new factories in this attribute- Returns:
- self
-
internal_isUserSelectable
public boolean internal_isUserSelectable()
-
userNotCreatable
public A userNotCreatable()
disable new for reference, used in gui to disable the new button so that the user can't create new factories in this attribute- Returns:
- self
-
internal_isUserCreatable
public boolean internal_isUserCreatable()
-
internal_getCopySemantic
public CopySemantic internal_getCopySemantic()
-
setCopySemantic
public A setCopySemantic(CopySemantic copySemantic)
- Parameters:
copySemantic- copySemantic- Returns:
- self
- See Also:
FactoryBase.UtilityFactory.semanticCopy()
-
internal_setReferenceClass
public void internal_setReferenceClass(java.lang.Class<?> clazz)
setup value selection and new value adding for user editing- Specified by:
internal_setReferenceClassin interfaceFactoryChildrenEnclosingAttribute<R extends FactoryBase<?,R>,F extends FactoryBase<?,R>>- Parameters:
clazz- class
-
internal_getReferenceClass
public java.lang.Class<F> internal_getReferenceClass()
-
catalogueBased
public A catalogueBased()
reference is a selection from a catalogue- Returns:
- self
-
internal_isCatalogueBased
public boolean internal_isCatalogueBased()
-
createAttributeStorageMetadata
public AttributeStorageMetadata createAttributeStorageMetadata(java.lang.String variableName)
- Overrides:
createAttributeStorageMetadatain classAttribute<U,A extends ReferenceBaseAttribute<R,F,U,A>>
-
internal_createNewPossibleValues
public java.util.List<F> internal_createNewPossibleValues()
-
internal_reset
public void internal_reset()
- Specified by:
internal_resetin classAttribute<U,A extends ReferenceBaseAttribute<R,F,U,A>>
-
-