package twolist;

import java.util.Comparator;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TwoListExample extends Application {

	@Override
	public void start(Stage stage) throws Exception {
		HBox root = new HBox();
		root.setAlignment(Pos.CENTER);
		Scene scene = new Scene(root, 500, 400);

		final ListView<String> namesList1 = new ListView<String>();
		final ObservableList<String> namesModel1 = FXCollections.observableArrayList(
				"Marko", "Jana", "Petar", "Milica", "Zeljko");
		namesList1.setItems(namesModel1);
		final ListView<String> namesList2 = new ListView<String>();
		final ObservableList<String> namesModel2 = FXCollections.observableArrayList(
				"Ljubica", "Andrea", "Milan", "Darko", "Djordje");
		namesList2.setItems(namesModel2);

		root.getChildren().add(namesList1);

		Button btnLeftToRight = new Button(">>");
		btnLeftToRight.setMinWidth(100);
		btnLeftToRight.setOnAction(new EventHandler<ActionEvent>() {
			@Override
			public void handle(ActionEvent event) {
				int idx=namesList1.getSelectionModel().getSelectedIndex();
				if(idx>=0){
					String name = namesModel1.get(idx);
					namesModel1.remove(idx);
					namesModel2.add(name);
				}
			}
		});

		Button btnRightToLeft = new Button("<<");
		btnRightToLeft.setMinWidth(100);
		btnRightToLeft.setOnAction(new EventHandler<ActionEvent>() {
			@Override
			public void handle(ActionEvent event) {
				int idx=namesList2.getSelectionModel().getSelectedIndex();
				if(idx>=0){
					String name = namesModel2.get(idx);
					namesModel2.remove(idx);
					namesModel1.add(name);
				}
			}
		});

		VBox middle = new VBox();
		middle.setAlignment(Pos.CENTER);
		middle.getChildren().add(btnLeftToRight);
		middle.getChildren().add(btnRightToLeft);
		root.getChildren().add(middle);

		root.getChildren().add(namesList2);

		stage.setScene(scene);
		stage.show();
	}

	public static void main(String[] args) {
		Application.launch(args);
	}

}
