Documentation added. Master merged. #story[1311]

main
zwu18 8 years ago
parent 1d95004811
commit 11d6d3a880

@ -216,93 +216,66 @@ public class RaceViewController extends Controller {
* Create speedometer
*/
private void initialiseSpeedometer() {
/**
* Create the Medusa Gauge with most of it's options
*/
//Create the Medusa Gauge
gauge = GaugeBuilder.create()
.prefSize(200,200) // Set the preferred size of the control
// Related to Foreground Elements
.foregroundBaseColor(Color.WHITE) // Defines a color for title, subtitle, unit, value, tick label, tick mark, major tick mark, medium tick mark and minor tick mark
// Related to Title Text
.title("Title") // Set the text for the title
// Related to Sub Title Text
.subTitle("Speed") // Set the text for the subtitle
// Related to Unit Text
.unit("Knots") // Set the text for the unit
// Related to Value Text
.decimals(2) // Set the number of decimals for the value/lcd text
// Related to LCD
.lcdVisible(true) // Display a LCD instead of the plain value text
.lcdDesign(LcdDesign.STANDARD) // Set the design for the LCD
.lcdFont(LcdFont.DIGITAL_BOLD) // Set the font for the LCD (STANDARD, LCD, SLIM, DIGITAL_BOLD, ELEKTRA)
// Related to scale
.scaleDirection(Gauge.ScaleDirection.CLOCKWISE) // Define the direction of the Scale (CLOCKWISE, COUNTER_CLOCKWISE)
.minValue(0) // Set the start value of the scale
.maxValue(50) // Set the end value of the scale
.startAngle(320) // Set the start angle of your scale (bottom -> 0, direction -> CCW)
.angleRange(280) // Set the angle range of your scale starting from the start angle
// Related to Tick Labels
.tickLabelDecimals(0) // Set the number of decimals for the tick labels
.tickLabelLocation(TickLabelLocation.INSIDE) // Define wether the tick labels should be inside or outside the scale (INSIDE, OUTSIDE)
.tickLabelOrientation(TickLabelOrientation.ORTHOGONAL) // Define the orientation of the tick labels (ORTHOGONAL, HORIZONTAL, TANGENT)
.onlyFirstAndLastTickLabelVisible(false) // Define if only the first and last tick label should be visible
.tickLabelSectionsVisible(false) // Define if sections for tick labels should be visible
.tickLabelColor(Color.BLACK) // Define the color for tick labels (overriden by tick label sections)
// Related to Tick Marks
.tickMarkSectionsVisible(false) // Define if sections for tick marks should be visible
.majorTickMarksVisible(true) // Define if major tick marks should be visible
.majorTickMarkType(TickMarkType.TRAPEZOID) // Define the tick mark type for major tick marks (LINE, DOT, TRAPEZOID, TICK_LABEL)
// Related to Medium Tick Marks
.mediumTickMarksVisible(false) // Define if medium tick marks should be visible
.mediumTickMarkType(TickMarkType.LINE) // Define the tick mark type for medium tick marks (LINE, DOT, TRAPEZOID)
// Related to Minor Tick Marks
.minorTickMarksVisible(true) // Define if minor tick marks should be visible
.minorTickMarkType(TickMarkType.LINE) // Define the tick mark type for minor tick marks (LINE, DOT, TRAPEZOID)
// Related to LED
.ledVisible(false) // Defines if the LED should be visible
.ledType(Gauge.LedType.STANDARD) // Defines the type of the LED (STANDARD, FLAT)
.ledColor(Color.rgb(255, 200, 0)) // Defines the color of the LED
.ledBlinking(false) // Defines if the LED should blink
// Related to Needle
.needleShape(Gauge.NeedleShape.ANGLED) // Defines the shape of the needle (ANGLED, ROUND, FLAT)
.needleSize(Gauge.NeedleSize.STANDARD) // Defines the size of the needle (THIN, STANDARD, THICK)
.needleColor(Color.CRIMSON) // Defines the color of the needle
// Related to Needle behavior
.startFromZero(false) // Defines if the needle should start from the 0 value
.returnToZero(false) // Defines if the needle should always return to the 0 value (only makes sense when animated==true)
// Related to Knob
.knobType(Gauge.KnobType.METAL) // Defines the type for the center knob (STANDARD, PLAIN, METAL, FLAT)
.knobColor(Color.LIGHTGRAY) // Defines the color that should be used for the center knob
.interactive(false) // Defines if it should be possible to press the center knob
.onButtonPressed(buttonEvent -> System.out.println("Knob pressed")) // Defines a handler that will be triggered when the center knob was pressed
.onButtonReleased(buttonEvent -> System.out.println("Knob released")) // Defines a handler that will be triggered when the center knob was released
// Related to Threshold
.thresholdVisible(true) // Defines if the threshold indicator should be visible
.threshold(50) // Defines the value for the threshold
.thresholdColor(Color.RED) // Defines the color for the threshold
.checkThreshold(true) // Defines if each value should be checked against the threshold
.onThresholdExceeded(thresholdEvent -> System.out.println("Threshold exceeded")) // Defines a handler that will be triggered if checkThreshold==true and the threshold is exceeded
.onThresholdUnderrun(thresholdEvent -> System.out.println("Threshold underrun")) // Defines a handler that will be triggered if checkThreshold==true and the threshold is underrun
// Related to Gradient Bar
.gradientBarEnabled(true) // Defines if a gradient filled bar should be visible to visualize a range
.gradientBarStops(new Stop(0.0, Color.BLUE),// Defines a conical color gradient that will be use to color the gradient bar
.prefSize(200,200)
.foregroundBaseColor(Color.WHITE)
.title("Title")
.subTitle("Speed")
.unit("Knots")
.decimals(2)
.lcdVisible(true)
.lcdDesign(LcdDesign.STANDARD)
.lcdFont(LcdFont.DIGITAL_BOLD)
.scaleDirection(Gauge.ScaleDirection.CLOCKWISE)
.minValue(0)
.maxValue(50)
.startAngle(320)
.angleRange(280)
.tickLabelDecimals(0)
.tickLabelLocation(TickLabelLocation.INSIDE)
.tickLabelOrientation(TickLabelOrientation.ORTHOGONAL)
.onlyFirstAndLastTickLabelVisible(false)
.tickLabelSectionsVisible(false)
.tickLabelColor(Color.BLACK)
.tickMarkSectionsVisible(false)
.majorTickMarksVisible(true)
.majorTickMarkType(TickMarkType.TRAPEZOID)
.mediumTickMarksVisible(false)
.mediumTickMarkType(TickMarkType.LINE)
.minorTickMarksVisible(true)
.minorTickMarkType(TickMarkType.LINE)
.ledVisible(false)
.ledType(Gauge.LedType.STANDARD)
.ledColor(Color.rgb(255, 200, 0))
.ledBlinking(false)
.needleShape(Gauge.NeedleShape.ANGLED)
.needleSize(Gauge.NeedleSize.STANDARD)
.needleColor(Color.CRIMSON)
.startFromZero(false)
.returnToZero(false)
.knobType(Gauge.KnobType.METAL)
.knobColor(Color.LIGHTGRAY)
.interactive(false)
.onButtonPressed(buttonEvent -> System.out.println("Knob pressed"))
.onButtonReleased(buttonEvent -> System.out.println("Knob released"))
.thresholdVisible(true)
.threshold(50)
.thresholdColor(Color.RED)
.checkThreshold(true)
.onThresholdExceeded(thresholdEvent -> System.out.println("Threshold exceeded"))
.onThresholdUnderrun(thresholdEvent -> System.out.println("Threshold underrun"))
.gradientBarEnabled(true)
.gradientBarStops(new Stop(0.0, Color.BLUE),
new Stop(0.25, Color.CYAN),
new Stop(0.5, Color.LIME),
new Stop(0.75, Color.YELLOW),
new Stop(1.0, Color.RED))
// Related to Markers
.markersVisible(true) // Defines if markers will be visible
//.markers(marker1, marker2) // Defines markers that will be drawn
// Related to Value
//.animated(true) // Defines if the needle will be animated
//.animationDuration(500) // Defines the speed of the needle in milliseconds (10 - 10000 ms)
.markersVisible(true)
.build();
/**
* Create a gauge with a frame and background that utilizes a Medusa gauge
*/
//Create a gauge with a frame and background that utilizes a Medusa gauge
fGauge = FGaugeBuilder
.create()
.prefSize(200, 200)
@ -312,7 +285,6 @@ public class RaceViewController extends Controller {
.foregroundVisible(true)
.build();
speedPane.getChildren().add(fGauge);
//(event -> gauge.setValue(raceState.getBoat(raceState.getPlayerBoatID()).getCurrentSpeed()));
}
@ -841,21 +813,26 @@ public class RaceViewController extends Controller {
}.start();
}
/**
* Animation timer loop for the speedometer
*/
private void speedometerLoop(){
new AnimationTimer(){
@Override
public void handle(long arg0){
if (raceState.getRaceStatusEnum() == RaceStatusEnum.FINISHED) {
stop(); // stop the timer
} else {
try {
//Set the current speed value of the boat
gauge.setValue(raceState.getBoat(raceState.getPlayerBoatID()).getCurrentSpeed());
fGauge.getGauge().setValue(raceState.getBoat(raceState.getPlayerBoatID()).getCurrentSpeed());
//Thread.sleep(50);
//Create list with sorted boat placements
List<VisualiserBoat> boatList = boatInfoTable.getItems();
for (VisualiserBoat boat : boatList){
if(raceState.getPlayerBoatID()==boat.getSourceID()){
//Set boat current placement value as title of speedometer
gauge.titleProperty().setValue("Position: " + (boatInfoTable.getItems().indexOf(boat)+1));
fGauge.getGauge().titleProperty().setValue("Position: " + (boatInfoTable.getItems().indexOf(boat)+1));
}

Loading…
Cancel
Save