/******************************************************************************* * Copyright (c) 2013, 2015 itemis AG and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Matthias Wienand (itemis AG) - initial API and implementation * *******************************************************************************/ package org.eclipse.gef.fx.examples.swt; import org.eclipse.gef.fx.swt.controls.FXControlAdapter; import org.eclipse.gef.fx.swt.controls.FXControlAdapter.IControlFactory; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.shape.Arc; import javafx.scene.shape.ArcType; import javafx.scene.shape.Rectangle; import javafx.scene.shape.Shape; public class ButtonFXControlAdapterSnippet extends AbstractFxSwtExample { protected static FXControlAdapter<org.eclipse.swt.widgets.Button> createButtonAdapter( final String text) { return new FXControlAdapter<>( new IControlFactory<org.eclipse.swt.widgets.Button>() { @Override public org.eclipse.swt.widgets.Button createControl( Composite canvas) { org.eclipse.swt.widgets.Button b = new org.eclipse.swt.widgets.Button( canvas, SWT.PUSH); b.setText(text); return b; } }); } public static void main(String[] args) { new ButtonFXControlAdapterSnippet(); } private static Shape shape(Shape shape, double r, double g, double b) { shape.setFill(new Color(r, g, b, 1)); shape.setStroke(new Color(0, 0, 0, 1)); return shape; } public ButtonFXControlAdapterSnippet() { super("FXControlAdapter Example (Buttons)"); } @Override public Scene createScene() { HBox hbox = new HBox(); VBox col1 = new VBox(); VBox col2 = new VBox(); HBox.setMargin(col1, new Insets(10.0)); HBox.setMargin(col2, new Insets(10.0)); hbox.getChildren().addAll(col1, col2); HBox.setHgrow(col1, Priority.ALWAYS); HBox.setHgrow(col2, Priority.ALWAYS); col1.getChildren().addAll(new Button("JavaFX Button 1"), shape(new Arc(0, 0, 50, 50, 15, 120) { { setType(ArcType.ROUND); } }, 0.52, 0.49, 0.15), createButtonAdapter("SWT Button 1")); col2.getChildren().addAll( shape(new Rectangle(0, 0, 100, 50), 0.49, 0.36, 0.20), createButtonAdapter("SWT Button 2"), shape(new Rectangle(0, 0, 100, 100) { { setArcHeight(20); setArcWidth(20); } }, 0.87, 0.83, 0.49), new Button("JavaFX Button 2")); return new Scene(hbox, 400, 300); } }