The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

yEd::Node::GenericNode - Generic node type

DESCRIPTION

This is a very generic node type. Its shape is defined by its 'configuration' property. Special configurations are defined by using java style properties. This indeed makes the Node type very generic and versatile but also cumbersome to configure as you don't have a GUI.

For configuration of these java style properties use getJavaStyle and setJavaStyle.

Make sure to have a look at yEd::Node, the properties and functions described there will not be repeated here.

SUPPORTED FEATURES

The GenericNode type are the nodes defined in the following yEd groups:

  • Modern Nodes

  • Flowchart

  • BPMN

  • Entity Relationship

However the node types defined in BPMN are not supported, yet.

The Entity Relationship Nodes are added with no labels, you have to provide them yourself.

For basic Node type feature support and which node types are supported see yEd::Node.

PROPERTIES

all properties from base class

yEd::Node

configuration

Type: descrete values ( see CONFIGURATIONS section )

Default: 'com.yworks.flowchart.cloud'

The specialized type of GenericNode.

The cloud has been choosen as default because I think people may need it as basic shape even if not working on a flow chart and on the other hand it is one of the types with a rather long identifier.

SUBROUTINES/METHODS

all functions from base class

yEd::Node

setJavaStyle

Takes arguments of the form 'property1 => value, property2 => value2, ...' and sets the provided java style properties accordingly.

getJavaStyle

Takes a java style property name as parameter and returns its current value.

CONFIGURATIONS

Known configurations and which java style properties they support are defined in the GenericNode class as:

 my %r = (
    'bool' => '^(?:true|false)$',
    'false' => '^false$',
 );
 # This one describes the known StyleProperties and how to handle them
 my %styleProperty = (
    'ModernNodeShadow' => {
        'class' => 'java.lang.Boolean',
        'match' => $r{'bool'},
        'default' => 'false',
        'hidevalues' => $r{'false'},
    },
    'ModernNodeRadius' => {
        'class' => 'java.lang.Double',
        'match' => $match{'ufloat'},
        'default' => '10.0',
    },
    'y.view.ShadowNodePainter.SHADOW_PAINTING' => {
        'class' => 'java.lang.Boolean',
        'match' => $r{'bool'},
        'default' => 'false',
    },
    'com.yworks.flowchart.style.orientation' => {
        'class' => 'java.lang.Byte',
        'match' => '^[01234]$',
        'default' => '0',
    },
    'doubleBorder' => {
        'class' => 'java.lang.Boolean',
        'match' => $r{'bool'},
        'default' => 'false',
        'hidevalues' => $r{'false'},
    },
 );
 # This one describes the known Configurations and which StyleProperties they support
 my %Configuration = (
    # Modern Nodes
    'BevelNode' => {
        'ModernNodeRadius' => 1,
        'ModernNodeShadow' => 1,
    },
    'BevelNode2' => {
        'ModernNodeRadius' => 1,
        'ModernNodeShadow' => 1,
    },
    'BevelNode3' => {
        'ModernNodeRadius' => 1,
        'ModernNodeShadow' => 1,
    },
    'BevelNodeWithShadow' => {
        'ModernNodeRadius' => 1,
        'ModernNodeShadow' => 1,
    },
    'ShinyPlateNode' => {
        'ModernNodeRadius' => 1,
        'ModernNodeShadow' => 1,
    },
    'ShinyPlateNode2' => {
        'ModernNodeRadius' => 1,
        'ModernNodeShadow' => 1,
    },
    'ShinyPlateNode3' => {
        'ModernNodeRadius' => 1,
        'ModernNodeShadow' => 1,
    },
    'ShinyPlateNodeWithShadow' => {
        'ModernNodeRadius' => 1,
        'ModernNodeShadow' => 1,
    },
    # Flowchart
    'com.yworks.flowchart.start1' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.start2' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.terminator' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.process' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.predefinedProcess' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.decision' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.loopLimit' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.loopLimitEnd' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.document' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.data' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.directData' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.storedData' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.sequentialData' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.dataBase' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.internalStorage' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.manualInput' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.card' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.paperType' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.cloud' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.delay' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.display' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.manualOperation' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.preparation' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.onPageReference' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.offPageReference' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.userMessage' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.networkMessage' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.flowchart.annotation' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
        'com.yworks.flowchart.style.orientation' => 1,
    },
    # Entity Relationship
    'com.yworks.entityRelationship.big_entity' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
    },
    'com.yworks.entityRelationship.small_entity' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
        'doubleBorder' => 1,
    },
    'com.yworks.entityRelationship.relationship' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
        'doubleBorder' => 1,
    },
    'com.yworks.entityRelationship.attribute' => {
        'y.view.ShadowNodePainter.SHADOW_PAINTING' => 1,
        'doubleBorder' => 1,
    },
 );

SEE ALSO

yEd::Document for further informations about the whole package

yEd::PropertyBasedObject for further basic information about properties and their additional functions

yEd::Node for information about the Node base class and which other Node types are currently supported