use of javafx.scene.Group in project big-math by eobermuhlner.
the class GraphApp method start.
@Override
public void start(Stage primaryStage) throws Exception {
Group root = new Group();
Scene scene = new Scene(root);
BorderPane borderPane = new BorderPane();
root.getChildren().add(borderPane);
Node toolbar = createToolbar();
borderPane.setTop(toolbar);
Node editor = createEditor();
borderPane.setRight(editor);
graphCanvas = createGraphCanvas();
borderPane.setCenter(graphCanvas);
graphCanvas.requestFocus();
primaryStage.setScene(scene);
primaryStage.show();
function1Property.addListener((observable, oldValue, newValue) -> {
updateFunctions();
});
function2Property.addListener((observable, oldValue, newValue) -> {
updateFunctions();
});
function3Property.addListener((observable, oldValue, newValue) -> {
updateFunctions();
});
ChangeListener<? super Number> graphDrawingListener = (observable, oldValue, newValue) -> drawGraph(graphCanvas);
xStartProperty.addListener(graphDrawingListener);
xEndProperty.addListener(graphDrawingListener);
yStartProperty.addListener(graphDrawingListener);
yEndProperty.addListener(graphDrawingListener);
precisionProperty.addListener(graphDrawingListener);
updateFunctions();
}
use of javafx.scene.Group in project Board-Instrumentation-Framework by intel.
the class TextWidget method Create.
@Override
public boolean Create(GridPane pane, DataManager dataMgr) {
SetParent(pane);
if (null != _TextString) {
_TextControl.setText(_TextString);
}
ConfigureDimentions();
_TextControl.setScaleShape(getScaleToFitBounderies());
// By adding it to a group, the underlying java framework will properly
// clip and resize bounderies if rotated
_Group = new Group(_TextControl);
ConfigureAlignment();
SetupPeekaboo(dataMgr);
pane.add(_Group, getColumn(), getRow(), getColumnSpan(), getRowSpan());
dataMgr.AddListener(getMinionID(), getNamespace(), new ChangeListener() {
@Override
public void changed(ObservableValue o, Object oldVal, Object newVal) {
if (IsPaused()) {
return;
}
_TextString = newVal.toString();
if (true == _NumericFormat) {
try {
if (// good bet it's a float
_TextString.contains(".")) {
_TextString = NumberFormat.getNumberInstance().format(Float.parseFloat(_TextString));
} else {
_TextString = NumberFormat.getNumberInstance().format(Long.parseLong(_TextString));
}
} catch (Exception Ex) {
// System.out.println(Ex.toString());
}
} else if (true == _MoneraryFormat) {
if (// good bet it's a float
_TextString.contains(".")) {
_TextString = NumberFormat.getCurrencyInstance().format(Float.parseFloat(_TextString));
} else {
_TextString = NumberFormat.getCurrencyInstance().format(Long.parseLong(_TextString));
}
} else if (true == _PercentFormat) {
if (// good bet it's a float
_TextString.contains(".")) {
_TextString = NumberFormat.getPercentInstance().format(Float.parseFloat(_TextString));
} else {
_TextString = NumberFormat.getPercentInstance().format(Long.parseLong(_TextString));
}
}
_TextString += _Suffix;
if (// seems a single character won't display - bug in Java
_TextString.length() < 2) {
_TextString += " ";
}
_TextControl.setText(_TextString);
}
});
SetupTaskAction();
return ApplyCSS();
}
use of javafx.scene.Group in project Board-Instrumentation-Framework by intel.
the class ClockSkin method initGraphics.
private void initGraphics() {
pane = new Pane();
background = new Region();
if (Clock.Design.IOS6 == getSkinnable().getDesign()) {
background.getStyleClass().setAll("background-ios6");
} else if (Clock.Design.DB == getSkinnable().getDesign()) {
background.getStyleClass().setAll("background-db");
} else if (Clock.Design.BRAUN == getSkinnable().getDesign()) {
background.getStyleClass().setAll("background-braun");
} else if (Clock.Design.BOSCH == getSkinnable().getDesign()) {
background.getStyleClass().setAll("background-bosch");
}
logoLayer = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT);
ctx = logoLayer.getGraphicsContext2D();
String majorTickStyleClass;
String minorTickStyleClass;
if (Clock.Design.IOS6 == getSkinnable().getDesign()) {
majorTickStyleClass = "major-tick-ios6";
minorTickStyleClass = "minor-tick-ios6";
} else if (Clock.Design.DB == getSkinnable().getDesign()) {
majorTickStyleClass = "major-tick-db";
minorTickStyleClass = "minor-tick-db";
} else if (Clock.Design.BOSCH == getSkinnable().getDesign()) {
majorTickStyleClass = "major-tick-bosch";
minorTickStyleClass = "minor-tick-bosch";
} else {
majorTickStyleClass = "major-tick-braun";
minorTickStyleClass = "minor-tick-braun";
}
int tickLabelCounter = 1;
for (double angle = 0; angle < 360; angle += 6) {
Region tick = new Region();
if (angle % 30 == 0) {
tick.getStyleClass().setAll(majorTickStyleClass);
Text tickLabel = new Text(Integer.toString(tickLabelCounter));
tickLabel.getStyleClass().setAll("tick-label-braun");
tickLabels.add(tickLabel);
tickLabelCounter++;
} else {
tick.getStyleClass().setAll(minorTickStyleClass);
}
ticks.add(tick);
}
DropShadow dropShadow = new DropShadow();
dropShadow.setColor(Color.rgb(0, 0, 0, 0.65));
dropShadow.setRadius(1.5);
dropShadow.setBlurType(BlurType.TWO_PASS_BOX);
dropShadow.setOffsetY(1);
tickMarkGroup = new Group();
tickMarkGroup.setEffect(dropShadow);
tickMarkGroup.getChildren().setAll(ticks);
tickLabelGroup = new Group();
tickLabelGroup.setEffect(dropShadow);
tickLabelGroup.getChildren().setAll(tickLabels);
tickLabelGroup.setOpacity(Clock.Design.BRAUN == getSkinnable().getDesign() ? 1 : 0);
minutePointer = new Region();
if (Clock.Design.IOS6 == getSkinnable().getDesign()) {
minutePointer.getStyleClass().setAll("hour-pointer-ios6");
} else if (Clock.Design.DB == getSkinnable().getDesign()) {
minutePointer.getStyleClass().setAll("hour-pointer-db");
} else if (Clock.Design.BRAUN == getSkinnable().getDesign()) {
minutePointer.getStyleClass().setAll("hour-pointer-braun");
} else if (Clock.Design.BOSCH == getSkinnable().getDesign()) {
minutePointer.getStyleClass().setAll("hour-pointer-bosch");
}
minutePointer.getTransforms().setAll(minuteRotate);
minutePointerFlour = new Region();
minutePointerFlour.getStyleClass().setAll("hour-pointer-braun-flour");
if (Clock.Design.BRAUN == getSkinnable().getDesign()) {
minutePointerFlour.setOpacity(1);
} else {
minutePointerFlour.setOpacity(0);
}
minutePointerFlour.getTransforms().setAll(minuteRotate);
hourPointer = new Region();
if (Clock.Design.IOS6 == getSkinnable().getDesign()) {
hourPointer.getStyleClass().setAll("minute-pointer-ios6");
} else if (Clock.Design.DB == getSkinnable().getDesign()) {
hourPointer.getStyleClass().setAll("minute-pointer-db");
} else if (Clock.Design.BRAUN == getSkinnable().getDesign()) {
hourPointer.getStyleClass().setAll("minute-pointer-braun");
} else if (Clock.Design.BOSCH == getSkinnable().getDesign()) {
hourPointer.getStyleClass().setAll("minute-pointer-bosch");
}
hourPointer.getTransforms().setAll(hourRotate);
hourPointerFlour = new Region();
hourPointerFlour.getStyleClass().setAll("minute-pointer-braun-flour");
if (Clock.Design.BRAUN == getSkinnable().getDesign()) {
hourPointerFlour.setOpacity(1);
} else {
hourPointerFlour.setOpacity(0);
}
hourPointerFlour.getTransforms().setAll(hourRotate);
DropShadow pointerShadow = new DropShadow();
pointerShadow.setColor(Color.rgb(0, 0, 0, 0.45));
pointerShadow.setRadius(12);
pointerShadow.setBlurType(BlurType.TWO_PASS_BOX);
pointerShadow.setOffsetY(6);
pointerGroup = new Group();
pointerGroup.setEffect(pointerShadow);
pointerGroup.getChildren().setAll(hourPointerFlour, hourPointer, minutePointerFlour, minutePointer);
secondPointer = new Region();
secondPointer.setOpacity(1);
if (Clock.Design.IOS6 == getSkinnable().getDesign()) {
secondPointer.getStyleClass().setAll("second-pointer-ios6");
} else if (Clock.Design.DB == getSkinnable().getDesign()) {
secondPointer.getStyleClass().setAll("second-pointer-db");
} else if (Clock.Design.BRAUN == getSkinnable().getDesign()) {
secondPointer.getStyleClass().setAll("second-pointer-braun");
} else if (Clock.Design.BOSCH == getSkinnable().getDesign()) {
secondPointer.setOpacity(0);
}
secondPointer.getTransforms().setAll(secondRotate);
InnerShadow secondPointerInnerShadow = new InnerShadow();
secondPointerInnerShadow.setColor(Color.rgb(0, 0, 0, 0.3));
secondPointerInnerShadow.setRadius(1);
secondPointerInnerShadow.setBlurType(BlurType.TWO_PASS_BOX);
secondPointerInnerShadow.setOffsetY(-1);
InnerShadow secondPointerInnerHighlight = new InnerShadow();
secondPointerInnerHighlight.setColor(Color.rgb(255, 255, 255, 0.3));
secondPointerInnerHighlight.setRadius(1);
secondPointerInnerHighlight.setBlurType(BlurType.TWO_PASS_BOX);
secondPointerInnerHighlight.setOffsetY(1);
secondPointerInnerHighlight.setInput(secondPointerInnerShadow);
DropShadow secondPointerShadow = new DropShadow();
secondPointerShadow.setColor(Color.rgb(0, 0, 0, 0.45));
secondPointerShadow.setRadius(12);
secondPointerShadow.setBlurType(BlurType.TWO_PASS_BOX);
secondPointerShadow.setOffsetY(6);
secondPointerShadow.setInput(secondPointerInnerHighlight);
secondPointerGroup = new Group();
secondPointerGroup.setEffect(secondPointerShadow);
secondPointerGroup.getChildren().setAll(secondPointer);
secondPointerGroup.setOpacity(getSkinnable().isSecondPointerVisible() ? 1 : 0);
centerKnob = new Region();
if (Clock.Design.IOS6 == getSkinnable().getDesign()) {
centerKnob.getStyleClass().setAll("center-knob-ios6");
} else if (Clock.Design.DB == getSkinnable().getDesign()) {
centerKnob.getStyleClass().setAll("center-knob-db");
} else if (Clock.Design.BRAUN == getSkinnable().getDesign()) {
centerKnob.getStyleClass().setAll("center-knob-braun");
} else if (Clock.Design.BOSCH == getSkinnable().getDesign()) {
centerKnob.getStyleClass().setAll("center-knob-bosch");
}
foreground = new Region();
if (Clock.Design.IOS6 == getSkinnable().getDesign()) {
foreground.getStyleClass().setAll("foreground-ios6");
} else if (Clock.Design.DB == getSkinnable().getDesign()) {
foreground.getStyleClass().setAll("foreground-db");
} else if (Clock.Design.BRAUN == getSkinnable().getDesign()) {
foreground.getStyleClass().setAll("foreground-braun");
} else if (Clock.Design.BOSCH == getSkinnable().getDesign()) {
foreground.getStyleClass().setAll("foreground-bosch");
}
foreground.setOpacity(getSkinnable().isHighlightVisible() ? 1 : 0);
pane.getChildren().setAll(background, logoLayer, tickMarkGroup, tickLabelGroup, pointerGroup, secondPointerGroup, centerKnob, foreground);
getChildren().setAll(pane);
updateDesign();
}
use of javafx.scene.Group in project Board-Instrumentation-Framework by intel.
the class RectangularGaugeSkin method initGraphics.
private void initGraphics() {
ticksAndSectionsCanvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT);
ticksAndSections = ticksAndSectionsCanvas.getGraphicsContext2D();
innerShadow = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(0, 0, 0, 0.65), 8, 0d, 0d, 0d);
glow = new DropShadow(BlurType.TWO_PASS_BOX, getSkinnable().getLedColor(), 20, 0d, 0d, 0d);
glow.setInput(innerShadow);
ledFrame = new Region();
ledFrame.getStyleClass().setAll("led-frame");
ledMain = new Region();
ledMain.getStyleClass().setAll("led-main");
ledMain.setStyle("-led-color: " + (colorToCss(getSkinnable().getLedColor())) + ";");
ledHl = new Region();
ledHl.getStyleClass().setAll("led-hl");
needle = new Region();
needle.getStyleClass().setAll(RectangularGauge.STYLE_CLASS_NEEDLE_STANDARD);
needleRotate = new Rotate(180 - getSkinnable().getStartAngle());
needleRotate.setAngle(needleRotate.getAngle() + (getSkinnable().getValue() - oldValue - getSkinnable().getMinValue()) * angleStep);
needle.getTransforms().setAll(needleRotate);
needleHighlight = new Region();
needleHighlight.setMouseTransparent(true);
needleHighlight.getStyleClass().setAll("needle-highlight");
needleHighlight.getTransforms().setAll(needleRotate);
dropShadow = new DropShadow();
dropShadow.setColor(Color.rgb(0, 0, 0, 0.25));
dropShadow.setBlurType(BlurType.TWO_PASS_BOX);
dropShadow.setRadius(0.015 * PREFERRED_WIDTH);
dropShadow.setOffsetY(0.015 * PREFERRED_WIDTH);
shadowGroup = new Group(needle, needleHighlight);
shadowGroup.setEffect(getSkinnable().isDropShadowEnabled() ? dropShadow : null);
titleText = new Text(getSkinnable().getTitle());
titleText.setTextOrigin(VPos.CENTER);
titleText.getStyleClass().setAll("title");
unitText = new Text(getSkinnable().getUnit());
unitText.setMouseTransparent(true);
unitText.setTextOrigin(VPos.CENTER);
unitText.getStyleClass().setAll("unit");
lcdText = new Label(String.format(Locale.US, "%." + getSkinnable().getDecimals() + "f", getSkinnable().getValue()));
lcdText.getStyleClass().setAll("lcd-text");
// Set initial value
angleStep = getSkinnable().getAngleRange() / (getSkinnable().getMaxValue() - getSkinnable().getMinValue());
double targetAngle = 180 - getSkinnable().getStartAngle() + (getSkinnable().getValue() - getSkinnable().getMinValue()) * angleStep;
targetAngle = clamp(180 - getSkinnable().getStartAngle(), 180 - getSkinnable().getStartAngle() + getSkinnable().getAngleRange(), targetAngle);
needleRotate.setAngle(targetAngle);
lightEffect = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(255, 255, 255, 0.65), 2, 0d, 0d, 2d);
foreground = new Region();
foreground.getStyleClass().setAll("foreground");
foreground.setEffect(lightEffect);
// Add all nodes
pane = new Pane();
pane.getChildren().setAll(ticksAndSectionsCanvas, ledFrame, ledMain, ledHl, unitText, lcdText, shadowGroup, foreground, titleText);
getChildren().setAll(pane);
}
use of javafx.scene.Group in project Board-Instrumentation-Framework by intel.
the class LcdClockSkin method initGraphics.
private void initGraphics() {
main = new Region();
main.getStyleClass().setAll("main");
main.setOpacity(getSkinnable().isBackgroundVisible() ? 1 : 0);
mainInnerShadow0 = new InnerShadow();
mainInnerShadow0.setOffsetX(0.0);
mainInnerShadow0.setOffsetY(0.0);
mainInnerShadow0.setRadius(3.0 / 132.0 * PREFERRED_WIDTH);
mainInnerShadow0.setColor(Color.web("0xffffff80"));
mainInnerShadow0.setBlurType(BlurType.TWO_PASS_BOX);
mainInnerShadow1 = new InnerShadow();
mainInnerShadow1.setOffsetX(0.0);
mainInnerShadow1.setOffsetY(1.0);
mainInnerShadow1.setRadius(2.0 / 132.0 * PREFERRED_WIDTH);
mainInnerShadow1.setColor(Color.web("0x000000a6"));
mainInnerShadow1.setBlurType(BlurType.TWO_PASS_BOX);
mainInnerShadow1.setInput(mainInnerShadow0);
main.setEffect(getSkinnable().isMainInnerShadowVisible() ? mainInnerShadow1 : null);
crystalClip = new Rectangle(0, 0, PREFERRED_WIDTH, PREFERRED_HEIGHT);
crystalClip.setArcWidth(5);
crystalClip.setArcHeight(5);
crystalImage = createNoiseImage(PREFERRED_WIDTH, PREFERRED_HEIGHT, DARK_NOISE_COLOR, BRIGHT_NOISE_COLOR, 8);
crystalOverlay = new ImageView(crystalImage);
crystalOverlay.setClip(this.crystalClip);
crystalOverlay.setOpacity(getSkinnable().isCrystalOverlayVisible() ? 1 : 0);
alarm = new Region();
alarm.getStyleClass().setAll("alarm");
alarm.setOpacity(getSkinnable().getAlarms().isEmpty() || allAlarmsInactive() ? 0 : 1);
backgroundTimeText = new Text("");
backgroundTimeText.getStyleClass().setAll("fg-trsp");
backgroundTimeText.setOpacity((LcdClock.LcdFont.LCD == getSkinnable().getTimeFont() || LcdClock.LcdFont.ELEKTRA == getSkinnable().getTimeFont()) ? 1 : 0);
timeText = new Text("");
timeText.getStyleClass().setAll("fg");
backgroundSecondText = new Text("");
backgroundSecondText.getStyleClass().setAll("fg-trsp");
backgroundSecondText.setOpacity((LcdClock.LcdFont.LCD == getSkinnable().getTimeFont() || LcdClock.LcdFont.ELEKTRA == getSkinnable().getTimeFont()) ? 1 : 0);
secondText = new Text("");
secondText.getStyleClass().setAll("fg");
title = new Text(getSkinnable().getTitle());
title.getStyleClass().setAll("fg");
dateText = new Text(getSkinnable().getTime().getMonthValue() + "/" + getSkinnable().getTime().getDayOfMonth() + "/" + getSkinnable().getTime().getYear());
dateText.getStyleClass().setAll("fg");
dayOfWeekText = new Text("");
dayOfWeekText.getStyleClass().setAll("fg");
shadowGroup = new Group();
shadowGroup.setEffect(getSkinnable().isForegroundShadowVisible() ? FOREGROUND_SHADOW : null);
shadowGroup.getChildren().setAll(alarm, timeText, secondText, title, dateText, dayOfWeekText);
pane = new Pane();
pane.getChildren().setAll(main, crystalOverlay, backgroundTimeText, backgroundSecondText, shadowGroup);
getChildren().setAll(pane);
resize();
updateLcd();
}
Aggregations