Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - package ch.crisi.timetracker.table.view;
 - import ch.crisi.timetracker.table.data.TaskWrapper;
 - import javafx.application.Platform;
 - import javafx.beans.value.ChangeListener;
 - import javafx.beans.value.ObservableValue;
 - import javafx.event.EventHandler;
 - import javafx.scene.control.TableCell;
 - import javafx.scene.control.TextField;
 - import javafx.scene.input.InputMethodRequests;
 - import javafx.scene.input.KeyCode;
 - import javafx.scene.input.KeyEvent;
 - import javafx.scene.text.TextAlignment;
 - public class TaskNameTableCell extends TableCell<TaskWrapper, String> {
 - public TaskNameTableCell() {
 - setTextAlignment(TextAlignment.RIGHT);
 - }
 - private TextField textField;
 - @Override
 - public void startEdit() {
 - if (!isEmpty()) {
 - super.startEdit();
 - createTextField();
 - setText(null);
 - setGraphic(textField);
 - Platform.runLater(new Runnable() {
 - @Override
 - public void run() {
 - textField.requestFocus();
 - textField.end();
 - }
 - });
 - }
 - }
 - @Override
 - public void cancelEdit() {
 - super.cancelEdit();
 - setText((String) getItem());
 - setGraphic(null);
 - }
 - @Override
 - public void updateItem(String item, boolean empty) {
 - super.updateItem(item, empty);
 - if (empty) {
 - setText(null);
 - setGraphic(null);
 - } else {
 - if (isEditing()) {
 - if (textField != null) {
 - textField.setText(getString());
 - }
 - setText(null);
 - setGraphic(textField);
 - } else {
 - setText(getString());
 - setGraphic(null);
 - }
 - }
 - }
 - private void createTextField() {
 - textField = new TextField(getString());
 - textField.setMinWidth(this.getWidth() - this.getGraphicTextGap() * 2);
 - textField.focusedProperty().addListener(new ChangeListener<Boolean>() {
 - @Override
 - public void changed(ObservableValue<? extends Boolean> arg0,
 - Boolean arg1, Boolean arg2) {
 - if (!arg2) {
 - commitEdit(textField.getText());
 - }
 - }
 - });
 - textField.setOnKeyPressed(new EventHandler<KeyEvent>() {
 - @Override
 - public void handle(KeyEvent keyEvent) {
 - if (keyEvent.getCode() == KeyCode.ENTER) {
 - commitEdit(textField.getText());
 - }
 - }
 - });
 - }
 - private String getString() {
 - return getItem() == null ? "" : getItem().toString();
 - }
 - }
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment