package com.wilutions.fx.acpl;
import java.util.ArrayList;
import com.wilutions.itol.db.IdName;
import javafx.application.Application;
import javafx.scene.Cursor;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class AutoCompletionExample extends Application {
AutoCompletionBinding<IdName> autoCompletionProject;
@Override
public void start(Stage stage) {
VBox vbox = new VBox();
Image image1 = new Image("file:///c:/Users/Wolfgang/Pictures/icon1.png");
ComboBox<IdName> control1 = new ComboBox<IdName>();
ArrayList<IdName> recentItems = new ArrayList<IdName>();
ArrayList<IdName> allItems = new ArrayList<IdName>();
autoCompletionProject = AutoCompletions.bindAutoCompletion(
(idn) -> idn.getImage(),
control1, "recent items", "suggested items", recentItems,
allItems);
for (String s : Names.LIST) {
int id = s.hashCode();
Image img = ((id & 1) != 0) ? image1 : null;
allItems.add(new IdName(Integer.toString(id), s, img));
}
ComboBox<IdName> control2 = new ComboBox<IdName>();
control2.getItems().addAll(new IdName(0, "ABC"), new IdName(1, "DEF"));
ImageView iv1 = makeImageView(image1);
iv1.setCursor(Cursor.DEFAULT);
Button bnOK = new Button("OK");
vbox.getChildren().addAll(control1, control2, bnOK);
Scene scene = new Scene(vbox, 300, 150);
scene.getStylesheets().add(getClass().getResource("AutoCompletionExample.css").toExternalForm());
stage.setScene(scene);
stage.setTitle("Sample");
stage.show();
}
public static void main(String[] args) {
launch(args);
}
private static ImageView makeImageView(Image image) {
ImageView imageView = new ImageView();
imageView.setImage(image);
imageView.setFitWidth(16);
imageView.setPreserveRatio(true);
imageView.setSmooth(true);
imageView.setCache(true);
return imageView;
}
}