package nameslist;

import java.util.Collections;

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.VBox;
import javafx.stage.Stage;

public class NamesListGUI extends Application {

	ObservableList<String> names;

	@Override
	public void start(Stage stage) throws Exception {
		VBox root = new VBox();
		Scene scene = new Scene(root, 200, 400);

		// ovo je graficka komponenta (prezentacija)
		ListView<String> list = new ListView<String>();
		root.getChildren().add(list);

		// logicki element - podaci (model podataka)
		names = FXCollections.observableArrayList("Stefan", "Tijana", "Lav",
				"Zorana", "Cazim");

		// povezujemo logiku i grafiku
		list.setItems(names);

		Button sortBtn = new Button("Sortiraj");
		sortBtn.setOnAction(new EventHandler<ActionEvent>() {
			@Override
			public void handle(ActionEvent arg0) {
				Collections.sort(names);
			}
		});
		root.setAlignment(Pos.CENTER);
		root.getChildren().add(sortBtn);

		stage.setScene(scene);
		stage.show();
	}

	public static void main(String[] args) {
		Application.launch(args);
	}

}
