source: trunk/src/org/expeditee/items/widgets/JavaFXWidget.java@ 1098

Last change on this file since 1098 was 1098, checked in by davidb, 6 years ago

New files from Corey's work on logic/graphics separation

File size: 1.4 KB
Line 
1package org.expeditee.items.widgets;
2
3import org.expeditee.core.Image;
4import org.expeditee.gio.EcosystemManager;
5import org.expeditee.gio.EcosystemManager.Ecosystem;
6import org.expeditee.gio.javafx.JavaFXMiscManager;
7import org.expeditee.items.Text;
8
9import javafx.scene.Group;
10import javafx.scene.Node;
11import javafx.scene.Scene;
12import javafx.scene.SnapshotParameters;
13import javafx.scene.image.WritableImage;
14
15public abstract class JavaFXWidget extends Widget {
16
17 protected Scene _dummyScene;
18 protected Node _node;
19
20 protected JavaFXWidget(Text source, Node jfxNode, int minWidth, int maxWidth, int minHeight, int maxHeight)
21 {
22 super(source, minWidth, maxWidth, minHeight, maxHeight);
23 _node = jfxNode;
24 _dummyScene = new Scene(new Group(_node));
25 onSizeChanged();
26 }
27
28 @Override
29 public boolean isSupportedOnEcosystem(Ecosystem type)
30 {
31 return type == Ecosystem.JavaFX;
32 }
33
34 @Override
35 public void paintWidget()
36 {
37 SnapshotParameters params = new SnapshotParameters();
38 WritableImage snapshot = _node.snapshot(params, null);
39 Image image = JavaFXMiscManager.getIfUsingJavaFXImageManager().createImage(snapshot);
40 EcosystemManager.getGraphicsManager().drawImage(image, getPosition());
41 }
42
43 @Override
44 protected void onMoved()
45 {
46 // Do nothing
47 }
48
49 @Override
50 protected void onSizeChanged()
51 {
52 _dummyScene.getRoot().resize(getWidth(), getHeight());
53 _node.resize(getWidth(), getHeight());
54 }
55}
Note: See TracBrowser for help on using the repository browser.