MetaDone
metadone.client.grasyla2.visuallibrary.GrasylaScene Class Reference
Inheritance diagram for metadone.client.grasyla2.visuallibrary.GrasylaScene:
Collaboration diagram for metadone.client.grasyla2.visuallibrary.GrasylaScene:

List of all members.

Classes

class  AnchorUpdater
class  FreeWidgetUpdater
class  MakeEdgeWidget
class  MakeFreeWidget
class  MyClickAction
class  MyConnectProvider
class  MyControlAddRemoveAction
class  MyControlMoveAction
class  MyGraphVizLayout
class  MyMoveStrategy
class  MyPopupProvider
class  MySelectProvider
class  WidgetActionClickEdge

Public Member Functions

 GrasylaScene (GraphEngine gengine)
void clear ()
final LayerWidget getNodeLayer ()
final LayerWidget getConnectionLayer ()
boolean isAnimate ()
void setAnimate (boolean b)
boolean isAlignWidgets ()
void setAlignWidgets (boolean b)
void validateDelayed (boolean start)
SceneLayout getSceneLayout ()
void updateWidget (Widget widget, GrasylaEngine engine) throws BadPreCondition
void disposeWidget (Widget widget)
void updateAnchor (final AnchorDefinition adef)
void disposeAnchor (AnchorDefinition adef)
Collection< Anchor > getAnchors (AnchorKey key)
EventTower< AnchorKeygetEventAnchors ()

Static Public Member Functions

static void validate (Widget widget)
static void validate (Scene scene)
static void registerAttributeHandlers (GrasylaEngine engine)
static GrasylaEngine getEngineFromWidget (final Widget widget, boolean approx)

Protected Member Functions

void saveWidgetPosition (Widget widget, Point location)
void saveWidgetControlPoints (ConnectionWidget widget, List< Point > controlPoints)

Package Functions

void configure ()

Static Package Functions

static void validate (Component<?extends Widget > comp)
static void disposeWidget (Component<?extends Widget > comp)
static String setPosition (Point location)
static Point getPosition (String value)
static String setControlPoints (List< Point > points)
static List< Point > getControlPoints (String value)

Static Package Attributes

static HashSet< Class<?> > FreeWidgetUpdaterUsers = new HashSet<Class<?>>()

Private Member Functions

void validateDelayed ()
ConcreteObject getCOForMovable (GrasylaEngine engine)
Phenomenon getPhenomenon (Widget widget) throws BadPreCondition
GrasylaEngine getEngineFromWidget (Widget widget, Point clickPosition)

Static Private Member Functions

static Widget findHitWidget (Widget widget, final Point clickPosition)

Private Attributes

LayerWidget nodeLayer
LayerWidget connectionLayer
final LayerWidget interactionLayer
final SceneLayout sceneLayout
boolean animate
boolean alignWidgets
boolean chooseByPoint
final WidgetAction actionResize
final WidgetAction actionPopup
final WidgetAction actionPopupEdge
final WidgetAction actionClick
final WidgetAction actionClickEdge
final WidgetAction actionSelect
final WidgetAction actionSelectEdge
final WidgetAction actionConnect
final WidgetAction actionConnectEdge
final WidgetAction actionControlAddDelete
final WidgetAction actionControlMove
final MultHashMap< AnchorKey,
Anchor > 
anchors = new MultHashMap<AnchorKey, Anchor>()
final MultHashMap< Widget,
AnchorKey
anchorsForWidget = new MultHashMap<Widget, AnchorKey>()
final EventTower< AnchorKeyanchorsEvents = new EventTowerNormal<AnchorKey>()
final GraphEngine engine
int validate
final transient AnchorUpdater updateAnchorRun = new AnchorUpdater()
Point clickingPosition = null

Static Private Attributes

static final Logger logger = Logger.getLogger(GrasylaScene.class)
static final String PH_POSITION = "GrasylaScene$position"
static final String PH_CONTROL_POINTS = "GrasylaScene$control"
static final ConnectDecorator CONNECT_DECORATOR
static final Border RECTANGULAR_SELECTION_BORDER = new RectangleBorder(StrokeEngine.buildStroke(1.0f, StrokeEngine.StrokeType.DASHED), Color.GRAY, null, 0, 0)
static final Map< Widget,
GrasylaEngine
engines = Collections.synchronizedMap(new WeakHashMap<Widget, GrasylaEngine>())

Detailed Description

A grasyla VL scene.

Used feature options
  • chooseByPoint: default false

    Indicates whether the engines are selected by descending into the hierarchy as far as possible. Clicking on a widget will resolve to the engine related for the widget that is locate at the position indicated by the click location.

Usage

The widgets are added into the scene using FreeWidgetUpdater. This will place the connections on a separate layer. The default used layer should be the getNodeLayer(). All other widgets and anchors must be updated and disposed using:

Actions
Actions are triggered automatically for the widgets in this scene. These actions are:
Author:
kma
Vincent
See also:
GraphEngine

Constructor & Destructor Documentation

metadone.client.grasyla2.visuallibrary.GrasylaScene.GrasylaScene ( GraphEngine  gengine)

Initializes this scene.

Parameters:
engineThe graph engine
Exceptions:
NullPointerExceptionwhen engine is null

References metadone.client.grasyla2.visuallibrary.GrasylaScene.actionClick, metadone.client.grasyla2.visuallibrary.GrasylaScene.actionClickEdge, metadone.client.grasyla2.visuallibrary.GrasylaScene.actionConnect, metadone.client.grasyla2.visuallibrary.GrasylaScene.actionConnectEdge, metadone.client.grasyla2.visuallibrary.GrasylaScene.actionControlAddDelete, metadone.client.grasyla2.visuallibrary.GrasylaScene.actionControlMove, metadone.client.grasyla2.visuallibrary.GrasylaScene.actionPopup, metadone.client.grasyla2.visuallibrary.GrasylaScene.actionPopupEdge, metadone.client.grasyla2.visuallibrary.GrasylaScene.actionResize, metadone.client.grasyla2.visuallibrary.GrasylaScene.actionSelect, metadone.client.grasyla2.visuallibrary.GrasylaScene.actionSelectEdge, metadone.client.grasyla2.visuallibrary.GrasylaScene.CONNECT_DECORATOR, metadone.client.grasyla2.visuallibrary.GrasylaScene.connectionLayer, metadone.client.grasyla2.visuallibrary.GrasylaScene.engine, metadone.client.grasyla2.visuallibrary.GrasylaScene.getConnectionLayer(), metadone.client.grasyla2.visuallibrary.GrasylaScene.interactionLayer, metadone.client.grasyla2.visuallibrary.GrasylaScene.nodeLayer, metadone.client.grasyla2.visuallibrary.GrasylaScene.RECTANGULAR_SELECTION_BORDER, and metadone.client.grasyla2.visuallibrary.GrasylaScene.sceneLayout.

Referenced by metadone.client.grasyla2.visuallibrary.GrasylaScene.disposeWidget(), and metadone.client.grasyla2.visuallibrary.GrasylaScene.validate().


Member Function Documentation

static void metadone.client.grasyla2.visuallibrary.GrasylaScene.disposeWidget ( Component<?extends Widget >  comp) [static, package]

Disposes a widget component that will be removed from this scene.

Parameters:
compThe component (may be null)
See also:
disposeWidget(Widget)

References metadone.client.grasyla2.visuallibrary.GrasylaScene.disposeWidget(), and metadone.client.grasyla2.visuallibrary.GrasylaScene.GrasylaScene().

static Widget metadone.client.grasyla2.visuallibrary.GrasylaScene.findHitWidget ( Widget  widget,
final Point  clickPosition 
) [static, private]

Returns the child in the hierarchy of 'widget' that contains the position in its area. If the position in not in the area of 'widget', then the result is null. The visit is depth-first-search. If the widget is not visible, it is not taken into consideration.

Parameters:
widget(not null)
clickPositionthe position of the click
Returns:
The widget concerned by the click and null otherwise.

References metadone.util.PointUtil.minus().

Referenced by metadone.client.grasyla2.visuallibrary.GrasylaScene.getEngineFromWidget().

Collection<Anchor> metadone.client.grasyla2.visuallibrary.GrasylaScene.getAnchors ( AnchorKey  key)

Gets the anchors linked to a given key.

Parameters:
keyThe key
Returns:
The collection of linked anchors (unmodifiable)

References metadone.client.grasyla2.visuallibrary.GrasylaScene.anchors.

Referenced by metadone.client.grasyla2.visuallibrary.VLEdgeEngine.updateAnchors().

static List<Point> metadone.client.grasyla2.visuallibrary.GrasylaScene.getControlPoints ( String  value) [static, package]

Converts a string into a list of points.

Parameters:
valueThe string
Returns:
The list of points

References metadone.client.grasyla2.visuallibrary.GrasylaScene.getPosition().

Referenced by metadone.client.grasyla2.visuallibrary.GrasylaScene.FreeWidgetUpdater.updateControlPoints().

static GrasylaEngine metadone.client.grasyla2.visuallibrary.GrasylaScene.getEngineFromWidget ( final Widget  widget,
boolean  approx 
) [static]
GrasylaEngine metadone.client.grasyla2.visuallibrary.GrasylaScene.getEngineFromWidget ( Widget  widget,
Point  clickPosition 
) [private]

Returns an engine for a given widget with a given relative click position.

Parameters:
widgetThe widget
clickPositionThe click position or null
Returns:
The related engine or null
See also:
#getEngineFromWidget(Widget, boolean)
chooseByPoint

References metadone.client.grasyla2.visuallibrary.GrasylaScene.chooseByPoint, metadone.client.grasyla2.visuallibrary.GrasylaScene.findHitWidget(), and metadone.client.grasyla2.visuallibrary.GrasylaScene.getEngineFromWidget().

EventTower<AnchorKey> metadone.client.grasyla2.visuallibrary.GrasylaScene.getEventAnchors ( )
static Point metadone.client.grasyla2.visuallibrary.GrasylaScene.getPosition ( String  value) [static, package]
SceneLayout metadone.client.grasyla2.visuallibrary.GrasylaScene.getSceneLayout ( )
boolean metadone.client.grasyla2.visuallibrary.GrasylaScene.isAlignWidgets ( )

Gets the align widgets attribute.

If set, when widgets will be aligned when they are moved.

Returns:
true if the align is set

References metadone.client.grasyla2.visuallibrary.GrasylaScene.alignWidgets.

Referenced by metadone.client.grasyla2.visuallibrary.GrasylaScene.MyMoveStrategy.locationSuggested().

boolean metadone.client.grasyla2.visuallibrary.GrasylaScene.isAnimate ( )

Gets the animate attribute of the scene.

Indicates whether the animations are turned on.

Returns:
true if the animations are turned on

References metadone.client.grasyla2.visuallibrary.GrasylaScene.animate.

Referenced by metadone.client.grasyla2.visuallibrary.GrasylaScene.FreeWidgetUpdater.updateFreeWidgetLocation().

void metadone.client.grasyla2.visuallibrary.GrasylaScene.setAlignWidgets ( boolean  b)

Sets the align widgets attribute.

Parameters:
bThe new value

References metadone.client.grasyla2.visuallibrary.GrasylaScene.alignWidgets.

void metadone.client.grasyla2.visuallibrary.GrasylaScene.setAnimate ( boolean  b)

Enables or disables animations.

Parameters:
bThe new value

References metadone.client.grasyla2.visuallibrary.GrasylaScene.animate.

static String metadone.client.grasyla2.visuallibrary.GrasylaScene.setControlPoints ( List< Point >  points) [static, package]

Converts a list of points into a string.

Parameters:
pointsThe list of points
Returns:
The string

References metadone.client.grasyla2.visuallibrary.GrasylaScene.setPosition().

Referenced by metadone.client.grasyla2.visuallibrary.GrasylaScene.saveWidgetControlPoints().

static String metadone.client.grasyla2.visuallibrary.GrasylaScene.setPosition ( Point  location) [static, package]
static void metadone.client.grasyla2.visuallibrary.GrasylaScene.validate ( Widget  widget) [static]

Validates a widget and its scene.

Parameters:
widgetThe widget (may be null)
See also:
validate(Scene)

References metadone.client.grasyla2.visuallibrary.GrasylaScene.validate.

static void metadone.client.grasyla2.visuallibrary.GrasylaScene.validate ( Scene  scene) [static]

Validates the scene.

Parameters:
sceneThe scene (may be null)

References metadone.client.grasyla2.visuallibrary.GrasylaScene.GrasylaScene().

static void metadone.client.grasyla2.visuallibrary.GrasylaScene.validate ( Component<?extends Widget >  comp) [static, package]

Validates a component and their scene.

Parameters:
compThe component (may be null)
See also:
validate(Scene)

References metadone.client.grasyla2.visuallibrary.GrasylaScene.validate.

void metadone.client.grasyla2.visuallibrary.GrasylaScene.validateDelayed ( boolean  start)

Validate the scene with a delay.

The scene is validated when every started call was ended.

Parameters:
startStarting or ending the delay

References metadone.client.grasyla2.visuallibrary.GrasylaScene.validate, and metadone.client.grasyla2.visuallibrary.GrasylaScene.validateDelayed().


Member Data Documentation

Initial value:
 new ConnectDecorator() {
        private final ConnectDecorator PARENT = ActionFactory.createDefaultConnectDecorator();

        @Override
        public Anchor createTargetAnchor(Widget targetWidget) {
            return PARENT.createTargetAnchor(targetWidget);
        }

        @Override
        public Anchor createSourceAnchor(Widget sourceWidget) {
            return PARENT.createSourceAnchor(sourceWidget);
        }

        @Override
        public Anchor createFloatAnchor(Point location) {
            return PARENT.createFloatAnchor(location);
        }

        @Override
        public ConnectionWidget createConnectionWidget(Scene scene) {
            final ConnectionWidget c = PARENT.createConnectionWidget(scene);
            c.setLineColor(Color.BLUE);
            return c;
        }
    }

Referenced by metadone.client.grasyla2.visuallibrary.GrasylaScene.GrasylaScene().

final Border metadone.client.grasyla2.visuallibrary.GrasylaScene.RECTANGULAR_SELECTION_BORDER = new RectangleBorder(StrokeEngine.buildStroke(1.0f, StrokeEngine.StrokeType.DASHED), Color.GRAY, null, 0, 0) [static, private]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations