package application;
import application.colorThemes.Theme;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.util.Duration;
/**
* Created by tareq on 7/12/15.
*/
abstract class Selectable extends Pane {
double defaultRadius = 17;
boolean isSelected = false;
boolean animationFinished = true;
double radiusSize = 8.5;
double rippleSpeed = 0.5; //0.5 px/10ms
Color accentColor = Color.web(Theme.BlueGreen.ACCENT_COLOR);
public boolean isSelected() {
return isSelected;
}
void animateRipple(Circle ripple, boolean selected, int spread) {
ripple.setVisible(true);
if (selected) {
ripple.setFill(Color.web(Theme.BlueGreen.ACCENT_COLOR));
} else {
ripple.setFill(Color.GRAY);
}
Timeline anim = new Timeline(new KeyFrame(Duration.millis(10), ev -> {
ripple.setRadius(radiusSize += rippleSpeed);
}));
anim.setCycleCount(spread);
anim.setOnFinished(ev2 -> {
animationFinished = true;
radiusSize = 7.5;
ripple.setRadius(radiusSize);
ripple.setVisible(false);
});
anim.play();
}
abstract void setUp(MaterialText sideText);
}