74 }
75 }),
76 Arc(shapes, new DefaultFactory() {
77
78 public NodeAndBindee create() {
79 Arc node = new Arc();
80 node.setCenterX(50.0f);
81 node.setCenterY(50.0f);
82 node.setRadiusX(25.0f);
83 node.setRadiusY(25.0f);
84 node.setStartAngle(45.0f);
85 node.setLength(270.0f);
86 node.setType(ArcType.ROUND);
87 addStroke(node);
88 return new BindingApp.NodeAndBindee(node, node);
89 }
90 }),
91 ArcTo(shapes, new DefaultFactory() {
92
93 public NodeAndBindee create() {
94 MoveTo moveTo = MoveToBuilder.create().x(50).y(50).build();
95
96 ArcTo node = new ArcTo();
97 node.setX(100.0f);
98 node.setY(100.0f);
99 node.setRadiusX(50.0f);
100 node.setRadiusY(50.0f);
101
102 Path path = PathBuilder.create().elements(moveTo, node).build();
103 addStroke(path);
104 return new BindingApp.NodeAndBindee(path, node);
105 }
106 }),
107 CubicCurve(shapes, new DefaultFactory() {
108
109 public NodeAndBindee create() {
110 CubicCurve node = new CubicCurve();
111 node.setStartX(0.0f);
112 node.setStartY(50.0f);
113
114 node.setControlX1(80.0f);
115 node.setControlY1(250.0f);
116
117 node.setControlX2(60.0f);
118 node.setControlY2(-50.0f);
119
120 node.setEndX(128.0f);
121 node.setEndY(50.0f);
122
123
124 addStroke(node);
125 return new BindingApp.NodeAndBindee(node, node);
126 }
127 }),
128
129 // ClosePath(shapes, new DefaultFactory() {
130 //
131 // public NodeAndBindee create() {
132 // ClosePath node = new ClosePath();
133 // addStroke(node);
134 // return new BindingApp.NodeAndBindee(node, node);
135 // }
136 // }),
137 CubicCurveTo(shapes, new DefaultFactory() {
138
139 public NodeAndBindee create() {
140 MoveTo moveTo = MoveToBuilder.create().x(50).y(50).build();
141
142 CubicCurveTo node = new CubicCurveTo();
143 node.setControlX1(80.0f);
144 node.setControlY1(250.0f);
145
146 node.setControlX2(60.0f);
147 node.setControlY2(-50.0f);
148
149 Path path = PathBuilder.create().elements(moveTo, node).build();
150 addStroke(path);
151 return new BindingApp.NodeAndBindee(path, node);
152 }
153 }),
154 Ellipse(shapes, new DefaultFactory() {
155
156 public NodeAndBindee create() {
157 Ellipse node = new Ellipse();
158 node.setCenterX(50.0f);
159 node.setCenterY(50.0f);
160 node.setRadiusX(20.0f);
161 node.setRadiusY(40.0f);
162 addStroke(node);
163 return new BindingApp.NodeAndBindee(node, node);
164 }
165 }),
166 HLineTo(shapes, new DefaultFactory() {
167
168 public NodeAndBindee create() {
169 MoveTo moveTo = MoveToBuilder.create().x(50).y(50).build();
170 HLineTo node = new HLineTo(100);
171 Path path = PathBuilder.create().elements(moveTo, node).build();
172 addStroke(path);
173 return new BindingApp.NodeAndBindee(path, node);
174 }
175 }),
176 Line(shapes, new DefaultFactory() {
177
178 public NodeAndBindee create() {
179 Line node = LineBuilder.create().startX(20).startY(20).endX(100).endY(50).build();
180 addStroke(node);
181 return new BindingApp.NodeAndBindee(node, node);
182 }
183 }),
184 LineTo(shapes, new DefaultFactory() {
185
186 public NodeAndBindee create() {
187 MoveTo moveTo = MoveToBuilder.create().x(50).y(50).build();
188
189 LineTo node = new LineTo(100, 80);
190
191 Path path = PathBuilder.create().elements(moveTo, node).build();
192 addStroke(path);
193 return new BindingApp.NodeAndBindee(path, node);
194 }
195 }),
196 MoveTo(shapes, new DefaultFactory() {
197
198 public NodeAndBindee create() {
199 MoveTo moveTo = MoveToBuilder.create().x(50).y(50).build();
200
201 LineTo node = new LineTo(100, 80);
202
203 Path path = PathBuilder.create().elements(moveTo, node).build();
204 addStroke(path);
205 return new BindingApp.NodeAndBindee(path, moveTo);
206 }
207 }),
208 Path(shapes, new DefaultFactory() {
209
210 public NodeAndBindee create() {
211 MoveTo moveTo = MoveToBuilder.create().x(50).y(50).build();
212
213 LineTo node = new LineTo(100, 80);
214 LineTo node2 = new LineTo(200, 180);
215
216 Path path = PathBuilder.create().elements(moveTo, node, node2).build();
217 addStroke(path);
218 return new BindingApp.NodeAndBindee(path, path);
219 }
220 }),
221 // PathElement(shapes, new DefaultFactory() {
222 //
223 // public NodeAndBindee create() {
224 // PathElement node = new PathElement();
225 // addStroke(node);
226 // return new BindingApp.NodeAndBindee(node, node);
227 // }
228 // }),
229 Polygon(shapes, new DefaultFactory() {
230
231 public NodeAndBindee create() {
232 Polygon node = new Polygon();
233 node.getPoints().addAll(new Double[]{
234 0.0, 0.0,
235 120.0, 10.0,
236 10.0, 120.0});
247 }
248 }),
249 QuadCurve(shapes, new DefaultFactory() {
250
251 public NodeAndBindee create() {
252 QuadCurve node = new QuadCurve();
253
254 node.setStartX(0.0f);
255 node.setStartY(10.0f);
256 node.setEndX(12.0f);
257 node.setEndY(120.0f);
258 node.setControlX(125.0f);
259 node.setControlY(0.0f);
260 addStroke(node);
261 return new BindingApp.NodeAndBindee(node, node);
262 }
263 }),
264 QuadCurveTo(shapes, new DefaultFactory() {
265
266 public NodeAndBindee create() {
267 MoveTo moveTo = MoveToBuilder.create().x(50).y(50).build();
268 QuadCurveTo node = QuadCurveToBuilder.create().controlX(125).controlY(0).build();
269 Path path = PathBuilder.create().elements(moveTo, node).build();
270 addStroke(path);
271 return new BindingApp.NodeAndBindee(path, path); }
272 }),
273 SVGPath(shapes, new DefaultFactory() {
274
275 public NodeAndBindee create() {
276 SVGPath node = SVGPathBuilder.create().content("M40,60 C42,148 144,30 25,32").build();
277 addStroke(node);
278 return new BindingApp.NodeAndBindee(node, node);
279 }
280 }),
281 VLineTo(shapes, new DefaultFactory() {
282
283 public NodeAndBindee create() {
284 MoveTo moveTo = MoveToBuilder.create().x(50).y(50).build();
285 VLineTo node = new VLineTo(100);
286 Path path = PathBuilder.create().elements(moveTo, node).build();
287 addStroke(path);
288 return new BindingApp.NodeAndBindee(path, node);
289 }
290 }),
291 // </editor-fold>
292
293 // <editor-fold defaultstate="collapsed" desc="effects">
294 DropShadow(effects, new EffectFactory() {
295 @Override
296 public Effect getEffect() {
297 return new DropShadow();
298 }
299 })
300 ,Shadow(effects, new EffectFactory() {
301 @Override
302 public Effect getEffect() {
303 return new Shadow();
304 }
305 })
306 ,Reflection(effects, new EffectFactory() {
307 @Override
308 public Effect getEffect() {
309 return new Reflection();
310 }
311 })
312 ,Blend(effects, new DefaultFactory() {
313
314 public NodeAndBindee create() {
315 Rectangle rect0 = new Rectangle(10, 10, 200, 200);
316 rect0.setFill(new LinearGradient(0, 0, 0.25, 0.25, true, CycleMethod.REFLECT, new Stop[] { new Stop(0, Color.RED), new Stop(1, Color.YELLOW)} ));
317
318 Rectangle rect = new Rectangle(50, 50, 100, 50);
319 rect.setFill(Color.GREEN);
320 Blend b = new Blend();
321 b.setOpacity(0.7);
322 b.setMode(BlendMode.ADD);
323 b.setTopInput(ColorInputBuilder.create().paint(Color.BLUE).x(30).y(30).width(100).height(80).build());
324 rect.setEffect(b);
325 Group group = new Group(rect0,rect);
326 return new NodeAndBindee(group, b);
327 }
328 })
329 ,Bloom(effects, new DefaultFactory() {
330
331 public NodeAndBindee create() {
332 Group group = new Group();
333 Bloom bloom = new Bloom();
334 group.setEffect(bloom);
335 group.getChildren().add(RectangleBuilder.create().x(10).y(10).width(160).height(80).fill(Color.DARKBLUE).build());
336 group.getChildren().add(RectangleBuilder.create().x(50).y(50).width(50).height(50).fill(Color.YELLOW).build());
337 return new NodeAndBindee(group, bloom);
338 }
339 })
340 ,BoxBlur(effects, new EffectFactory() {
341 @Override
342 public Effect getEffect() {
343 return new BoxBlur();
344 }
345 })
346 ,ColorAdjust(effects, new EffectFactory() {
347 @Override
348 public Effect getEffect() {
349 return new ColorAdjust();
350 }
351 })
352 ,DisplacementMap(effects, new DefaultFactory() {
353
354 @Override
355 public Constraint getConstraints(String name) {
356 NumberConstraints nc = (NumberConstraints) super.getConstraints(name);
357 switch(nc) {
358 case offsetX:
359 case offsetY:
360 return NumberConstraints.offsetForDisplacementMap;
361 default:
362 return nc;
363 }
364 }
365
366 public NodeAndBindee create() {
367 Group group = new Group();
368 DisplacementMap dm = DisplacementMapBuilder.create().mapData(Consts.MAP_WAVES).build();
369 group.setEffect(dm);
370 group.getChildren().add(RectangleBuilder.create().x(50).y(50).width(200).height(80).fill(Color.DARKBLUE).build());
371 group.getChildren().add(RectangleBuilder.create().x(0).y(0).width(250).height(200).fill(Color.TRANSPARENT).build());
372 return new NodeAndBindee(group, dm);
373 }
374 })
375
376 ,Flood(effects, new EffectFactory() {
377 @Override
378 public Effect getEffect() {
379 return ColorInputBuilder.create().x(0).y(0).width(50).height(50).build();
380 }
381 })
382
383 ,GaussianBlur(effects, new EffectFactory() {
384 @Override
385 public Effect getEffect() {
386 return new GaussianBlur();
387 }
388 })
389 ,Glow(effects, new EffectFactory() {
390 @Override
391 public Effect getEffect() {
392 return new Glow();
393 }
394 })
395
396 ,Identity(effects, new EffectFactory() {
397 @Override
398 public Effect getEffect() {
399 return ImageInputBuilder.create().
400 source(new Image(Factories.class.getResourceAsStream("/test/scenegraph/resources/car.png"))).
401 build();
402 }
403 })
404
405 ,InnerShadow(effects, new EffectFactory() {
406 @Override
407 public Effect getEffect() {
408 return new InnerShadow();
409 }
410 })
411
412 // </editor-fold>
413
414 // <editor-fold desc="Text">
415 ,font(text, new DefaultFactory() {
416
417 public NodeAndBindee create() {
418 Text node = new Text("XO");
419 node.setTranslateX(50);
420 node.setTranslateY(150);
421 node.setFont(Font.font("Arial", 60));
561 RadioButton node = new RadioButton();
562 prepareControl(node);
563 return new BindingApp.NodeAndBindee(node, node);
564 }
565 }),
566 Separator(controls, new DefaultFactory() {
567
568 public NodeAndBindee create() {
569 Separator node = new Separator();
570 ToolBar toolBar = new ToolBar(
571 new Button("New"),
572 node,
573 new Button("Open"));
574 prepareControl(toolBar);
575 return new BindingApp.NodeAndBindee(toolBar, node);
576 }
577 }),
578 ScrollBar(controls, new DefaultFactory() {
579
580 public NodeAndBindee create() {
581 ScrollBar node = ScrollBarBuilder.create().min(0).max(100).value(50).build();
582 prepareControl(node);
583 return new BindingApp.NodeAndBindee(node, node);
584 }
585 }),
586 Slider(controls, new DefaultFactory() {
587
588 public NodeAndBindee create() {
589 Slider node = new Slider(0,100,50);
590 //TODO: after fix of RT-11969 consider returning this functionality
591 // node.setShowTickLabels(true);
592 // node.setShowTickMarks(true);
593 prepareControl(node);
594 return new BindingApp.NodeAndBindee(node, node);
595 }
596 }),
597 TableView(controls, new DefaultFactory() {
598
599 public NodeAndBindee create() {
600 TableView<Person> node = new TableView<Person>();
601
722 } catch (java.lang.IllegalArgumentException e) {
723 System.err.println("ERROR: model lacks constraints: " + name);
724 //use default for now
725 }
726 return c;
727 }
728
729 public boolean verifyConstraint(String name) {
730 return true;
731 }
732
733 }
734
735 //utility
736 private static abstract class EffectFactory extends DefaultFactory {
737
738 public abstract Effect getEffect();
739
740 public NodeAndBindee create() {
741 Effect effect = getEffect();
742 Rectangle rect = RectangleBuilder.create().x(100).y(100).width(100).height(100).fill(Color.LIGHTGREEN).
743 stroke(Color.DARKGREEN).arcHeight(20).arcWidth(30).effect(effect).build();
744 return new NodeAndBindee(rect, effect);
745 }
746
747 }
748
749 private static final ObservableList<String> defaultList = FXCollections.<String>observableArrayList("item 1", "item 2", "longlonglonglonglonglongitem");
750
751 private static void addStroke(Shape shape) {
752 shape.setFill(Color.LIGHTGREEN);
753 shape.setStroke(Color.DARKGREEN);
754 shape.getStrokeDashArray().add(10.);
755 shape.getStrokeDashArray().add(8.);
756 }
757
758 private static void prepareControl(Control control) {
759 control.setLayoutX(50);
760 control.setLayoutY(50);
761 control.setPrefSize(100, 50);
762 control.setMinSize(100, 50);
763 control.setMaxSize(100, 50);
|
74 }
75 }),
76 Arc(shapes, new DefaultFactory() {
77
78 public NodeAndBindee create() {
79 Arc node = new Arc();
80 node.setCenterX(50.0f);
81 node.setCenterY(50.0f);
82 node.setRadiusX(25.0f);
83 node.setRadiusY(25.0f);
84 node.setStartAngle(45.0f);
85 node.setLength(270.0f);
86 node.setType(ArcType.ROUND);
87 addStroke(node);
88 return new BindingApp.NodeAndBindee(node, node);
89 }
90 }),
91 ArcTo(shapes, new DefaultFactory() {
92
93 public NodeAndBindee create() {
94 MoveTo moveTo = new MoveTo(50, 50);
95
96 ArcTo node = new ArcTo();
97 node.setX(100.0f);
98 node.setY(100.0f);
99 node.setRadiusX(50.0f);
100 node.setRadiusY(50.0f);
101
102 Path path = new Path(moveTo, node);
103 addStroke(path);
104 return new BindingApp.NodeAndBindee(path, node);
105 }
106 }),
107 CubicCurve(shapes, new DefaultFactory() {
108
109 public NodeAndBindee create() {
110 CubicCurve node = new CubicCurve();
111 node.setStartX(0.0f);
112 node.setStartY(50.0f);
113
114 node.setControlX1(80.0f);
115 node.setControlY1(250.0f);
116
117 node.setControlX2(60.0f);
118 node.setControlY2(-50.0f);
119
120 node.setEndX(128.0f);
121 node.setEndY(50.0f);
122
123
124 addStroke(node);
125 return new BindingApp.NodeAndBindee(node, node);
126 }
127 }),
128
129 // ClosePath(shapes, new DefaultFactory() {
130 //
131 // public NodeAndBindee create() {
132 // ClosePath node = new ClosePath();
133 // addStroke(node);
134 // return new BindingApp.NodeAndBindee(node, node);
135 // }
136 // }),
137 CubicCurveTo(shapes, new DefaultFactory() {
138
139 public NodeAndBindee create() {
140 MoveTo moveTo = new MoveTo(50, 50);
141
142 CubicCurveTo node = new CubicCurveTo();
143 node.setControlX1(80.0f);
144 node.setControlY1(250.0f);
145
146 node.setControlX2(60.0f);
147 node.setControlY2(-50.0f);
148
149 Path path = new Path(moveTo, node);
150 addStroke(path);
151 return new BindingApp.NodeAndBindee(path, node);
152 }
153 }),
154 Ellipse(shapes, new DefaultFactory() {
155
156 public NodeAndBindee create() {
157 Ellipse node = new Ellipse();
158 node.setCenterX(50.0f);
159 node.setCenterY(50.0f);
160 node.setRadiusX(20.0f);
161 node.setRadiusY(40.0f);
162 addStroke(node);
163 return new BindingApp.NodeAndBindee(node, node);
164 }
165 }),
166 HLineTo(shapes, new DefaultFactory() {
167
168 public NodeAndBindee create() {
169 MoveTo moveTo = new MoveTo(50, 50);
170 HLineTo node = new HLineTo(100);
171 Path path = new Path(moveTo, node);
172 addStroke(path);
173 return new BindingApp.NodeAndBindee(path, node);
174 }
175 }),
176 Line(shapes, new DefaultFactory() {
177
178 public NodeAndBindee create() {
179 Line node = new Line(20, 20, 100, 50);
180 addStroke(node);
181 return new BindingApp.NodeAndBindee(node, node);
182 }
183 }),
184 LineTo(shapes, new DefaultFactory() {
185
186 public NodeAndBindee create() {
187 MoveTo moveTo = new MoveTo(50, 50);
188
189 LineTo node = new LineTo(100, 80);
190
191 Path path = new Path(moveTo, node);
192 addStroke(path);
193 return new BindingApp.NodeAndBindee(path, node);
194 }
195 }),
196 MoveTo(shapes, new DefaultFactory() {
197
198 public NodeAndBindee create() {
199 MoveTo moveTo = new MoveTo(50, 50);
200
201 LineTo node = new LineTo(100, 80);
202
203 Path path = new Path(moveTo, node);
204 addStroke(path);
205 return new BindingApp.NodeAndBindee(path, moveTo);
206 }
207 }),
208 Path(shapes, new DefaultFactory() {
209
210 public NodeAndBindee create() {
211 MoveTo moveTo = new MoveTo(50, 50);
212
213 LineTo node = new LineTo(100, 80);
214 LineTo node2 = new LineTo(200, 180);
215
216 Path path = new Path(moveTo, node, node2);
217 addStroke(path);
218 return new BindingApp.NodeAndBindee(path, path);
219 }
220 }),
221 // PathElement(shapes, new DefaultFactory() {
222 //
223 // public NodeAndBindee create() {
224 // PathElement node = new PathElement();
225 // addStroke(node);
226 // return new BindingApp.NodeAndBindee(node, node);
227 // }
228 // }),
229 Polygon(shapes, new DefaultFactory() {
230
231 public NodeAndBindee create() {
232 Polygon node = new Polygon();
233 node.getPoints().addAll(new Double[]{
234 0.0, 0.0,
235 120.0, 10.0,
236 10.0, 120.0});
247 }
248 }),
249 QuadCurve(shapes, new DefaultFactory() {
250
251 public NodeAndBindee create() {
252 QuadCurve node = new QuadCurve();
253
254 node.setStartX(0.0f);
255 node.setStartY(10.0f);
256 node.setEndX(12.0f);
257 node.setEndY(120.0f);
258 node.setControlX(125.0f);
259 node.setControlY(0.0f);
260 addStroke(node);
261 return new BindingApp.NodeAndBindee(node, node);
262 }
263 }),
264 QuadCurveTo(shapes, new DefaultFactory() {
265
266 public NodeAndBindee create() {
267 MoveTo moveTo = new MoveTo(50, 50);
268 QuadCurveTo node = new QuadCurveTo();
269 node.setControlX(125);
270 node.setControlY(0);
271 Path path = new Path(moveTo, node);
272 addStroke(path);
273 return new BindingApp.NodeAndBindee(path, path); }
274 }),
275 SVGPath(shapes, new DefaultFactory() {
276
277 public NodeAndBindee create() {
278 SVGPath node = new SVGPath();
279 node.setContent("M40,60 C42,148 144,30 25,32");
280 addStroke(node);
281 return new BindingApp.NodeAndBindee(node, node);
282 }
283 }),
284 VLineTo(shapes, new DefaultFactory() {
285
286 public NodeAndBindee create() {
287 MoveTo moveTo = new MoveTo(50, 50);
288 VLineTo node = new VLineTo(100);
289 Path path = new Path(moveTo, node);
290 addStroke(path);
291 return new BindingApp.NodeAndBindee(path, node);
292 }
293 }),
294 // </editor-fold>
295
296 // <editor-fold defaultstate="collapsed" desc="effects">
297 DropShadow(effects, new EffectFactory() {
298 @Override
299 public Effect getEffect() {
300 return new DropShadow();
301 }
302 })
303 ,Shadow(effects, new EffectFactory() {
304 @Override
305 public Effect getEffect() {
306 return new Shadow();
307 }
308 })
309 ,Reflection(effects, new EffectFactory() {
310 @Override
311 public Effect getEffect() {
312 return new Reflection();
313 }
314 })
315 ,Blend(effects, new DefaultFactory() {
316
317 public NodeAndBindee create() {
318 Rectangle rect0 = new Rectangle(10, 10, 200, 200);
319 rect0.setFill(new LinearGradient(0, 0, 0.25, 0.25, true, CycleMethod.REFLECT, new Stop[] { new Stop(0, Color.RED), new Stop(1, Color.YELLOW)} ));
320
321 Rectangle rect = new Rectangle(50, 50, 100, 50);
322 rect.setFill(Color.GREEN);
323 Blend b = new Blend();
324 b.setOpacity(0.7);
325 b.setMode(BlendMode.ADD);
326 b.setTopInput(new ColorInput(30, 30, 100, 80, Color.BLUE));
327 rect.setEffect(b);
328 Group group = new Group(rect0,rect);
329 return new NodeAndBindee(group, b);
330 }
331 })
332 ,Bloom(effects, new DefaultFactory() {
333
334 public NodeAndBindee create() {
335 Group group = new Group();
336 Bloom bloom = new Bloom();
337 group.setEffect(bloom);
338 Rectangle r1 = new Rectangle (10, 10, 160, 80);
339 r1.setFill(Color.DARKBLUE);
340 Rectangle r2 = new Rectangle (50, 50, 50, 50);
341 r1.setFill(Color.YELLOW);
342 group.getChildren().add(r1);
343 group.getChildren().add(r2);
344 return new NodeAndBindee(group, bloom);
345 }
346 })
347 ,BoxBlur(effects, new EffectFactory() {
348 @Override
349 public Effect getEffect() {
350 return new BoxBlur();
351 }
352 })
353 ,ColorAdjust(effects, new EffectFactory() {
354 @Override
355 public Effect getEffect() {
356 return new ColorAdjust();
357 }
358 })
359 ,DisplacementMap(effects, new DefaultFactory() {
360
361 @Override
362 public Constraint getConstraints(String name) {
363 NumberConstraints nc = (NumberConstraints) super.getConstraints(name);
364 switch(nc) {
365 case offsetX:
366 case offsetY:
367 return NumberConstraints.offsetForDisplacementMap;
368 default:
369 return nc;
370 }
371 }
372
373 public NodeAndBindee create() {
374 Group group = new Group();
375 DisplacementMap dm = new DisplacementMap(Consts.MAP_WAVES);
376 group.setEffect(dm);
377 Rectangle r1 = new Rectangle (50, 50, 200, 80);
378 r1.setFill(Color.DARKBLUE);
379 Rectangle r2 = new Rectangle (0, 0, 250, 200);
380 r1.setFill(Color.TRANSPARENT);
381 group.getChildren().add(r1);
382 group.getChildren().add(r2);
383 return new NodeAndBindee(group, dm);
384 }
385 })
386
387 ,Flood(effects, new EffectFactory() {
388 @Override
389 public Effect getEffect() {
390 ColorInput temp = new ColorInput();
391 temp.setX(0);
392 temp.setY(0);
393 temp.setWidth(50);
394 temp.setHeight(50);
395 return temp;
396 }
397 })
398
399 ,GaussianBlur(effects, new EffectFactory() {
400 @Override
401 public Effect getEffect() {
402 return new GaussianBlur();
403 }
404 })
405 ,Glow(effects, new EffectFactory() {
406 @Override
407 public Effect getEffect() {
408 return new Glow();
409 }
410 })
411
412 ,Identity(effects, new EffectFactory() {
413 @Override
414 public Effect getEffect() {
415 return new ImageInput(new Image(Factories.class.getResourceAsStream("/test/scenegraph/resources/car.png")));
416 }
417 })
418
419 ,InnerShadow(effects, new EffectFactory() {
420 @Override
421 public Effect getEffect() {
422 return new InnerShadow();
423 }
424 })
425
426 // </editor-fold>
427
428 // <editor-fold desc="Text">
429 ,font(text, new DefaultFactory() {
430
431 public NodeAndBindee create() {
432 Text node = new Text("XO");
433 node.setTranslateX(50);
434 node.setTranslateY(150);
435 node.setFont(Font.font("Arial", 60));
575 RadioButton node = new RadioButton();
576 prepareControl(node);
577 return new BindingApp.NodeAndBindee(node, node);
578 }
579 }),
580 Separator(controls, new DefaultFactory() {
581
582 public NodeAndBindee create() {
583 Separator node = new Separator();
584 ToolBar toolBar = new ToolBar(
585 new Button("New"),
586 node,
587 new Button("Open"));
588 prepareControl(toolBar);
589 return new BindingApp.NodeAndBindee(toolBar, node);
590 }
591 }),
592 ScrollBar(controls, new DefaultFactory() {
593
594 public NodeAndBindee create() {
595 ScrollBar node = new ScrollBar();
596 node.setMin(0);
597 node.setMax(100);
598 node.setValue(50);
599 prepareControl(node);
600 return new BindingApp.NodeAndBindee(node, node);
601 }
602 }),
603 Slider(controls, new DefaultFactory() {
604
605 public NodeAndBindee create() {
606 Slider node = new Slider(0,100,50);
607 //TODO: after fix of RT-11969 consider returning this functionality
608 // node.setShowTickLabels(true);
609 // node.setShowTickMarks(true);
610 prepareControl(node);
611 return new BindingApp.NodeAndBindee(node, node);
612 }
613 }),
614 TableView(controls, new DefaultFactory() {
615
616 public NodeAndBindee create() {
617 TableView<Person> node = new TableView<Person>();
618
739 } catch (java.lang.IllegalArgumentException e) {
740 System.err.println("ERROR: model lacks constraints: " + name);
741 //use default for now
742 }
743 return c;
744 }
745
746 public boolean verifyConstraint(String name) {
747 return true;
748 }
749
750 }
751
752 //utility
753 private static abstract class EffectFactory extends DefaultFactory {
754
755 public abstract Effect getEffect();
756
757 public NodeAndBindee create() {
758 Effect effect = getEffect();
759 Rectangle rect = new Rectangle(100, 100, 100, 100);
760 rect.setFill(Color.LIGHTGREEN);
761 rect.setStroke(Color.DARKGREEN);
762 rect.setArcHeight(20);
763 rect.setArcWidth(30);
764 rect.setEffect(effect);
765 return new NodeAndBindee(rect, effect);
766 }
767
768 }
769
770 private static final ObservableList<String> defaultList = FXCollections.<String>observableArrayList("item 1", "item 2", "longlonglonglonglonglongitem");
771
772 private static void addStroke(Shape shape) {
773 shape.setFill(Color.LIGHTGREEN);
774 shape.setStroke(Color.DARKGREEN);
775 shape.getStrokeDashArray().add(10.);
776 shape.getStrokeDashArray().add(8.);
777 }
778
779 private static void prepareControl(Control control) {
780 control.setLayoutX(50);
781 control.setLayoutY(50);
782 control.setPrefSize(100, 50);
783 control.setMinSize(100, 50);
784 control.setMaxSize(100, 50);
|