package demos.gui.uicomponents;
import com.jfoenix.controls.JFXBadge;
import com.jfoenix.controls.JFXHamburger;
import com.jfoenix.controls.JFXSnackbar;
import com.jfoenix.controls.JFXSnackbar.SnackbarEvent;
import io.datafx.controller.ViewController;
import javafx.animation.Transition;
import javafx.fxml.FXML;
import javafx.scene.input.MouseButton;
import javafx.scene.layout.StackPane;
import javax.annotation.PostConstruct;
@ViewController(value = "/fxml/ui/Icons.fxml", title = "Material Design Example")
public class IconsController {
@FXML
private JFXHamburger burger1;
@FXML
private JFXHamburger burger2;
@FXML
private JFXHamburger burger3;
@FXML
private JFXHamburger burger4;
@FXML
private JFXBadge badge1;
@FXML
private StackPane root;
@FXML
private JFXSnackbar snackbar;
private int count = 1;
/**
* init fxml when loaded.
*/
@PostConstruct
public void init() {
bindAction(burger1);
bindAction(burger2);
bindAction(burger3);
bindAction(burger4);
snackbar.registerSnackbarContainer(root);
badge1.setOnMouseClicked((click) -> {
int value = Integer.parseInt(badge1.getText());
if (click.getButton() == MouseButton.PRIMARY) {
value++;
} else if (click.getButton() == MouseButton.SECONDARY) {
value--;
}
if (value == 0) {
badge1.setEnabled(false);
} else {
badge1.setEnabled(true);
}
badge1.setText(String.valueOf(value));
// trigger snackbar
if (count++ % 2 == 0) {
snackbar.fireEvent(new SnackbarEvent("Toast Message " + count));
} else {
if (count % 4 == 0) {
snackbar.fireEvent(new SnackbarEvent("Snackbar Message Persistant " + count,
"CLOSE",
3000,
true,
b -> snackbar.close()));
} else {
snackbar.fireEvent(new SnackbarEvent("Snackbar Message " + count, "UNDO", 3000, false, (b) -> {
}));
}
}
});
}
private void bindAction(JFXHamburger burger) {
burger.setOnMouseClicked((e) -> {
final Transition burgerAnimation = burger.getAnimation();
burgerAnimation.setRate(burgerAnimation.getRate() * -1);
burgerAnimation.play();
});
}
}