Search in sources :

Example 1 with EllipseNode

use of org.osate.ge.gef.EllipseNode in project osate2 by osate.

the class AgeFxTest method start.

@Override
public void start(final Stage primaryStage) throws Exception {
    container = new GridPane();
    container.setHgap(10.0);
    container.setVgap(10.0);
    container.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, CornerRadii.EMPTY, Insets.EMPTY)));
    final Graphic[] graphics = new Graphic[] { RectangleBuilder.create().build(), RectangleBuilder.create().rounded().build(), EllipseBuilder.create().build(), FolderGraphicBuilder.create().build(), DeviceGraphicBuilder.create().build(), ParallelogramBuilder.create().horizontalOffset(20).build(), BusGraphicBuilder.create().build(), PolyBuilder.create().polygon().points(new Point(0.0, 1.0), new Point(1.0, 1.0), new Point(0.5, 0.0)).build(), PolyBuilder.create().polyline().points(new Point(0.0, 0.0), new Point(1.0, 0.5), new Point(0.0, 1.0)).build(), ProcessorGraphicBuilder.create().build(), MemoryGraphicBuilder.create().build(), FeatureGroupTypeGraphicBuilder.create().build(), ModeGraphicBuilder.create().build(), ModeGraphicBuilder.create().initialMode().build(), NoteGraphicBuilder.create().build(), LabelBuilder.create().build(), FeatureGraphicBuilder.create().abstractFeature().bidirectional().build(), FeatureGraphicBuilder.create().abstractFeature().input().build(), FeatureGraphicBuilder.create().abstractFeature().output().build(), FeatureGraphicBuilder.create().eventPort().bidirectional().build(), FeatureGraphicBuilder.create().eventPort().input().build(), FeatureGraphicBuilder.create().eventPort().output().build(), FeatureGraphicBuilder.create().dataPort().bidirectional().build(), FeatureGraphicBuilder.create().dataPort().input().build(), FeatureGraphicBuilder.create().dataPort().output().build(), FeatureGraphicBuilder.create().eventDataPort().bidirectional().build(), FeatureGraphicBuilder.create().eventDataPort().input().build(), FeatureGraphicBuilder.create().eventDataPort().output().build(), FeatureGraphicBuilder.create().subprogramAccess().input().build(), FeatureGraphicBuilder.create().subprogramAccess().output().build(), FeatureGraphicBuilder.create().subprogramGroupAccess().input().build(), FeatureGraphicBuilder.create().subprogramGroupAccess().output().build(), FeatureGraphicBuilder.create().dataAccess().input().build(), FeatureGraphicBuilder.create().dataAccess().output().build(), FeatureGraphicBuilder.create().featureGroup().build(), ConnectionBuilder.create().build(), ConnectionBuilder.create().sourceTerminator(OrthogonalLineBuilder.create().build()).build(), ConnectionBuilder.create().sourceTerminator(ArrowBuilder.create().filled().build()).destinationTerminator(ArrowBuilder.create().filled().small().build()).build(), ConnectionBuilder.create().destinationTerminator(ArrowBuilder.create().line().build()).build(), FlowIndicatorBuilder.create().build(), FlowIndicatorBuilder.create().sourceTerminator(ArrowBuilder.create().small().reverse().build()).destinationTerminator(OrthogonalLineBuilder.create().build()).build() };
    final List<Node> nodes = Arrays.stream(graphics).map(GraphicToFx::createNode).collect(Collectors.toList());
    // Create a container shape. This is useful for ensuring image in style is applied,.
    final ContainerShape cs = new ContainerShape();
    cs.setGraphic(new EllipseNode());
    nodes.add(cs);
    final CheckBox dashedCheckBox = new CheckBox("Dashed");
    nodes.add(dashedCheckBox);
    dashedCheckBox.selectedProperty().addListener((ChangeListener<Boolean>) (observable, oldValue, newValue) -> {
        dashed = newValue;
        refreshStyle();
    });
    // Finish additional configuraton for labels and connections
    for (final Node n : nodes) {
        if (n instanceof LabelNode) {
            ((LabelNode) n).setText("This is a test");
        } else if (n instanceof ConnectionNode) {
            final ConnectionNode cn = (ConnectionNode) n;
            final StaticAnchor start = new StaticAnchor(new org.eclipse.gef.geometry.planar.Point(0, 5));
            final StaticAnchor end = new StaticAnchor(new org.eclipse.gef.geometry.planar.Point(100, 5));
            cn.setStartAnchor(start);
            cn.setEndAnchor(end);
        } else if (n instanceof FlowIndicatorNode) {
            final FlowIndicatorNode fi = (FlowIndicatorNode) n;
            final StaticAnchor startAnchor = new StaticAnchor(new org.eclipse.gef.geometry.planar.Point(0, 5));
            fi.setTranslateX(100.0);
            fi.setTranslateY(5.0);
            fi.setStartAnchor(startAnchor);
        }
    }
    final List<String> args = getParameters().getRaw();
    final IPath imagePath = args.size() > 0 ? new Path(args.get(0)) : null;
    baseStyle = StyleBuilder.create(Style.DEFAULT).fontSize(20.0).outlineColor(org.osate.ge.graphics.Color.BLUE).backgroundColor(org.osate.ge.graphics.Color.CYAN).imagePath(imagePath).build();
    // Add Nodes and Assign them to Rows and Columns
    final int numberOfColumns = 4;
    int row = 0, col = -1;
    for (final Node node : nodes) {
        // Increment the row and column first so that the final values will be the indices of the last node
        col++;
        if (col > (numberOfColumns - 1)) {
            col = 0;
            row++;
        }
        container.add(node, col, row);
    }
    // Create Row and Column Constraints
    for (int i = 0; i < numberOfColumns; i++) {
        ColumnConstraints c = new ColumnConstraints(100, 100, Double.MAX_VALUE);
        c.setHgrow(Priority.SOMETIMES);
        container.getColumnConstraints().add(c);
    }
    for (int i = 0; i <= row; i++) {
        RowConstraints rc = new RowConstraints(20, 20, Double.MAX_VALUE);
        rc.setVgrow(Priority.SOMETIMES);
        container.getRowConstraints().add(rc);
    }
    // Style the nodes
    refreshStyle();
    primaryStage.setScene(new Scene(container));
    // Setup the stage
    primaryStage.setResizable(true);
    primaryStage.setWidth(1920);
    primaryStage.setHeight(1080);
    primaryStage.setTitle("GEF Graphics");
    primaryStage.show();
}
Also used : Arrays(java.util.Arrays) PolyBuilder(org.osate.ge.graphics.PolyBuilder) StaticAnchor(org.eclipse.gef.fx.anchors.StaticAnchor) FxStyleApplier(org.osate.ge.gef.FxStyleApplier) NoteGraphicBuilder(org.osate.ge.graphics.internal.NoteGraphicBuilder) Application(javafx.application.Application) IPath(org.eclipse.core.runtime.IPath) Graphic(org.osate.ge.graphics.Graphic) ConnectionBuilder(org.osate.ge.graphics.ConnectionBuilder) LineStyle(org.osate.ge.graphics.LineStyle) ContainerShape(org.osate.ge.gef.ContainerShape) Point(org.osate.ge.graphics.Point) ModeGraphicBuilder(org.osate.ge.graphics.internal.ModeGraphicBuilder) Collectors(java.util.stream.Collectors) ArrowBuilder(org.osate.ge.graphics.ArrowBuilder) ParallelogramBuilder(org.osate.ge.graphics.internal.ParallelogramBuilder) StyleBuilder(org.osate.ge.graphics.StyleBuilder) EllipseNode(org.osate.ge.gef.EllipseNode) Priority(javafx.scene.layout.Priority) List(java.util.List) Path(org.eclipse.core.runtime.Path) BusGraphicBuilder(org.osate.ge.graphics.internal.BusGraphicBuilder) DeviceGraphicBuilder(org.osate.ge.graphics.internal.DeviceGraphicBuilder) ProcessorGraphicBuilder(org.osate.ge.graphics.internal.ProcessorGraphicBuilder) FxStyle(org.osate.ge.gef.FxStyle) OrthogonalLineBuilder(org.osate.ge.graphics.internal.OrthogonalLineBuilder) CornerRadii(javafx.scene.layout.CornerRadii) Scene(javafx.scene.Scene) ColumnConstraints(javafx.scene.layout.ColumnConstraints) RowConstraints(javafx.scene.layout.RowConstraints) LabelNode(org.osate.ge.gef.LabelNode) FeatureGraphicBuilder(org.osate.ge.graphics.internal.FeatureGraphicBuilder) FeatureGroupTypeGraphicBuilder(org.osate.ge.graphics.internal.FeatureGroupTypeGraphicBuilder) Style(org.osate.ge.graphics.Style) Insets(javafx.geometry.Insets) BackgroundFill(javafx.scene.layout.BackgroundFill) GridPane(javafx.scene.layout.GridPane) LabelBuilder(org.osate.ge.graphics.LabelBuilder) Color(javafx.scene.paint.Color) FolderGraphicBuilder(org.osate.ge.graphics.internal.FolderGraphicBuilder) EllipseBuilder(org.osate.ge.graphics.EllipseBuilder) FlowIndicatorBuilder(org.osate.ge.graphics.FlowIndicatorBuilder) Node(javafx.scene.Node) CheckBox(javafx.scene.control.CheckBox) ConnectionNode(org.osate.ge.gef.ConnectionNode) MemoryGraphicBuilder(org.osate.ge.graphics.internal.MemoryGraphicBuilder) RectangleBuilder(org.osate.ge.graphics.RectangleBuilder) FlowIndicatorNode(org.osate.ge.gef.FlowIndicatorNode) Background(javafx.scene.layout.Background) Stage(javafx.stage.Stage) ImageManager(org.osate.ge.gef.ImageManager) ChangeListener(javafx.beans.value.ChangeListener) LabelNode(org.osate.ge.gef.LabelNode) ColumnConstraints(javafx.scene.layout.ColumnConstraints) EllipseNode(org.osate.ge.gef.EllipseNode) LabelNode(org.osate.ge.gef.LabelNode) Node(javafx.scene.Node) ConnectionNode(org.osate.ge.gef.ConnectionNode) FlowIndicatorNode(org.osate.ge.gef.FlowIndicatorNode) RowConstraints(javafx.scene.layout.RowConstraints) FlowIndicatorNode(org.osate.ge.gef.FlowIndicatorNode) ContainerShape(org.osate.ge.gef.ContainerShape) ConnectionNode(org.osate.ge.gef.ConnectionNode) IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) GridPane(javafx.scene.layout.GridPane) Background(javafx.scene.layout.Background) IPath(org.eclipse.core.runtime.IPath) EllipseNode(org.osate.ge.gef.EllipseNode) Graphic(org.osate.ge.graphics.Graphic) BackgroundFill(javafx.scene.layout.BackgroundFill) Point(org.osate.ge.graphics.Point) Scene(javafx.scene.Scene) Point(org.osate.ge.graphics.Point) CheckBox(javafx.scene.control.CheckBox) StaticAnchor(org.eclipse.gef.fx.anchors.StaticAnchor)

Aggregations

Arrays (java.util.Arrays)1 List (java.util.List)1 Collectors (java.util.stream.Collectors)1 Application (javafx.application.Application)1 ChangeListener (javafx.beans.value.ChangeListener)1 Insets (javafx.geometry.Insets)1 Node (javafx.scene.Node)1 Scene (javafx.scene.Scene)1 CheckBox (javafx.scene.control.CheckBox)1 Background (javafx.scene.layout.Background)1 BackgroundFill (javafx.scene.layout.BackgroundFill)1 ColumnConstraints (javafx.scene.layout.ColumnConstraints)1 CornerRadii (javafx.scene.layout.CornerRadii)1 GridPane (javafx.scene.layout.GridPane)1 Priority (javafx.scene.layout.Priority)1 RowConstraints (javafx.scene.layout.RowConstraints)1 Color (javafx.scene.paint.Color)1 Stage (javafx.stage.Stage)1 IPath (org.eclipse.core.runtime.IPath)1 Path (org.eclipse.core.runtime.Path)1