package jp.ac.aiit.jointry.models.blocks.statement.procedure; import javafx.collections.FXCollections; import javafx.scene.control.ComboBox; import javafx.scene.control.Label; import javafx.scene.layout.AnchorPane; import javafx.scene.paint.Color; import jp.ac.aiit.jointry.models.Status; public class Move extends Procedure { protected ComboBox cb_distance; public Move() { super(); rect.setFill(getColor()); cb_distance = new ComboBox(); cb_distance.setEditable(true); cb_distance.setMaxWidth(75.0); AnchorPane.setTopAnchor(cb_distance, 10.0); AnchorPane.setLeftAnchor(cb_distance, 80.0); cb_distance.setItems(FXCollections.observableArrayList( "0", "10", "20", "30", "40", "50", "60", "-10", "-20", "-30", "-40", "-50", "-60")); getChildren().addAll(cb_distance); setChangeListener(cb_distance); } public static Color getColor() { return Color.web("E0FFB0"); } @Override public String intern() { StringBuilder sb = new StringBuilder(); sb.append("move"); String arg = (String) cb_distance.getValue(); if (arg == null) { arg = "0"; } sb.append(" "); sb.append(arg); sb.append("\n"); if (nextBlock != null) { sb.append(nextBlock.intern()); } return sb.toString(); } @Override public Status getStatus() { Status status = new Status(); status.put("id", this.getUUID()); String arg = (String) cb_distance.getValue(); if (arg == null) { arg = "0"; } status.put("move", arg); return status; } @Override public void setStatus(Status status) { changeable = false; //一時的にリスナーを無効化 this.setUUID((String) status.get("id")); cb_distance.setValue(status.get("move")); changeable = true; } @Override public Label getLabel() { return new Label("いどうする"); } }