diff --git a/client/src/main/java/ru/trader/controllers/SystemsEditorController.java b/client/src/main/java/ru/trader/controllers/SystemsEditorController.java index 7793e92..7089ea5 100644 --- a/client/src/main/java/ru/trader/controllers/SystemsEditorController.java +++ b/client/src/main/java/ru/trader/controllers/SystemsEditorController.java @@ -19,6 +19,7 @@ import ru.trader.model.ProfileModel; import ru.trader.model.SystemModel; import ru.trader.model.support.PositionComputer; import ru.trader.view.support.Localization; +import ru.trader.view.support.ViewUtils; import ru.trader.view.support.autocomplete.AutoCompletion; import ru.trader.view.support.autocomplete.CachedSuggestionProvider; import ru.trader.view.support.autocomplete.SystemsProvider; @@ -85,12 +86,12 @@ public class SystemsEditorController { clnS4.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter())); clnS5.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter())); clnS6.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter())); - clnName.setOnEditCommit(e -> copySys1()); - clnS1.setOnEditCommit(e -> copySys2()); - clnS2.setOnEditCommit(e -> copySys3()); - clnS3.setOnEditCommit(e -> copySys4()); - clnS4.setOnEditCommit(e -> copySys5()); - clnS5.setOnEditCommit(e -> copySys6()); + ViewUtils.addOnEditCommit(clnName, e -> copySys1()); + ViewUtils.addOnEditCommit(clnS1, e -> copySys2()); + ViewUtils.addOnEditCommit(clnS2, e -> copySys3()); + ViewUtils.addOnEditCommit(clnS3, e -> copySys4()); + ViewUtils.addOnEditCommit(clnS4, e -> copySys5()); + ViewUtils.addOnEditCommit(clnS5, e -> copySys6()); tblSystems.setItems(FXCollections.observableArrayList()); tblSystems.getSelectionModel().setCellSelectionEnabled(true); tblSystems.setSortPolicy(t -> true); diff --git a/client/src/main/java/ru/trader/view/support/ViewUtils.java b/client/src/main/java/ru/trader/view/support/ViewUtils.java index 539566c..8b20e90 100644 --- a/client/src/main/java/ru/trader/view/support/ViewUtils.java +++ b/client/src/main/java/ru/trader/view/support/ViewUtils.java @@ -4,6 +4,9 @@ import com.sun.javafx.scene.control.skin.TableViewSkin; import com.sun.javafx.scene.control.skin.VirtualFlow; import javafx.application.Platform; import javafx.collections.ObservableList; +import javafx.event.Event; +import javafx.event.EventHandler; +import javafx.scene.control.TableColumn; import javafx.scene.control.TablePosition; import javafx.scene.control.TableView; @@ -34,6 +37,18 @@ public class ViewUtils { editNext(tableView); } + public static EventHandler joinHandlers(EventHandler first, EventHandler second){ + return (e -> { + first.handle(e); + second.handle(e); + }); + } + + public static void addOnEditCommit(TableColumn column, EventHandler> eventHandler){ + final EventHandler> oldHandler = column.getOnEditCommit(); + column.setOnEditCommit(joinHandlers(oldHandler, eventHandler)); + } + public static void doFX(Runnable runnable){ if (Platform.isFxApplicationThread()){ runnable.run();