Archived
0

fix system editor

This commit is contained in:
Mo
2015-11-07 16:30:49 +03:00
parent 80a6504300
commit 199468eaad
2 changed files with 22 additions and 6 deletions

View File

@@ -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);

View File

@@ -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 <T extends Event> EventHandler<T> joinHandlers(EventHandler<T> first, EventHandler<T> second){
return (e -> {
first.handle(e);
second.handle(e);
});
}
public static <S,T> void addOnEditCommit(TableColumn<S, T> column, EventHandler<TableColumn.CellEditEvent<S, T>> eventHandler){
final EventHandler<TableColumn.CellEditEvent<S, T>> oldHandler = column.getOnEditCommit();
column.setOnEditCommit(joinHandlers(oldHandler, eventHandler));
}
public static void doFX(Runnable runnable){
if (Platform.isFxApplicationThread()){
runnable.run();