diff --git a/src/main/java/java2/lab12/client/TableViewSample.java b/src/main/java/java2/lab12/client/TableViewSample.java index 76a23c090d00533e4a578b1fc621b19a53ee9814..cbb1718e833b99465dc2f0567b098a41ca9dd271 100644 --- a/src/main/java/java2/lab12/client/TableViewSample.java +++ b/src/main/java/java2/lab12/client/TableViewSample.java @@ -4,6 +4,7 @@ import java.util.Collection; import java.util.Collections; import javafx.application.Application; +import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; @@ -13,6 +14,7 @@ import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; +import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn.CellEditEvent; import javafx.scene.control.TableView; @@ -50,8 +52,8 @@ public class TableViewSample extends Application { @Override public void start(Stage stage) { Scene scene = new Scene(new Group()); - stage.setTitle("Table View Sample"); - stage.setWidth(450); + stage.setTitle("RESTfull Webservice - Course Book"); + stage.setWidth(500); stage.setHeight(550); final Label label = new Label("Course Book"); @@ -68,8 +70,30 @@ public class TableViewSample extends Application { "credits", this::handleOnEditCommitCredits); TableColumn<Course, String> semesterCol = constructColumn("Semester", "semester", this::handleOnEditCommitSemester); + + TableColumn<Course, Course> actionCol = new TableColumn<>(""); + actionCol.setCellValueFactory(param -> new ReadOnlyObjectWrapper<>( + param.getValue())); + actionCol.setCellFactory(param -> new TableCell<>() { + + private final Button deleteButton = new Button("Delete"); + + @Override + protected void updateItem(Course course, boolean empty) { + super.updateItem(course, empty); + + if (course == null) { + setGraphic(null); + return; + } + + setGraphic(deleteButton); + deleteButton.setOnAction(event -> handleOnDelete(event, course)); + } + }); + table.getColumns().addAll(nameCol, desriptionCol, creditsCol, - semesterCol); + semesterCol, actionCol); addName = constructTextField(nameCol, "Name"); @@ -115,7 +139,7 @@ public class TableViewSample extends Application { return col; } - private void handleOnAdd(ActionEvent e) { + private void handleOnAdd(@SuppressWarnings("unused") ActionEvent e) { Course p = new Course(); p.setName(addName.getText()); p.setDescription(addDescription.getText()); @@ -129,6 +153,13 @@ public class TableViewSample extends Application { addSemester.clear(); } + private void handleOnDelete(@SuppressWarnings("unused") ActionEvent event, + Course course) + { + data.remove(course); + removeCourse(course); + } + private void handleOnEditCommitName(CellEditEvent<Course, String> t) { Course p = t.getTableView().getItems().get(t.getTablePosition().getRow()); p.setName(t.getNewValue()); @@ -162,13 +193,15 @@ public class TableViewSample extends Application { return Collections.emptyList(); } - private void createCourse(Course p) { - // TODO Auto-generated method stub - + private void createCourse(Course course) { + // TODO } - private void updateCourse(Course p) { - // TODO Auto-generated method stub - + private void updateCourse(Course course) { + // TODO + } + + private void removeCourse(Course course) { + // TODO } } \ No newline at end of file