final MasterDetailsContentNodePart node = (MasterDetailsContentNodePart) getPart();
final List<SapphireActionHandler> handlers = new ArrayList<SapphireActionHandler>();
for( MasterDetailsContentNodePart.NodeFactory factory : node.factories() )
{
final Property property = factory.property();
if( factory.visible() && ! property.definition().isReadOnly() )
{
final PossibleTypesService possibleTypesService = property.service( PossibleTypesService.class );
if( property instanceof ElementList )
{
for( final ElementType memberType : possibleTypesService.types() )
{
final ListPropertyActionHandler handler = new ListPropertyActionHandler( (ElementList<?>) property, memberType );
handlers.add( handler );
}
}
else if( property instanceof ElementHandle && ! ( property.definition() instanceof ImpliedElementProperty ) )
{
for( final ElementType memberType : possibleTypesService.types() )
{
final ElementPropertyActionHandler handler = new ElementPropertyActionHandler( (ElementHandle<?>) property, memberType );
handlers.add( handler );