package jp.ac.aiit.jointry.models.blocks.statement.procedure;
import java.util.HashMap;
import java.util.Map;
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 Rotate extends Procedure {
protected ComboBox cb;
public Rotate() {
super();
rect.setFill(getColor());
cb = new ComboBox();
cb.setEditable(true);
cb.setMaxWidth(75.0);
AnchorPane.setTopAnchor(cb, 10.0);
AnchorPane.setLeftAnchor(cb, 80.0);
cb.setItems(FXCollections.observableArrayList(
"0", "30", "60", "90", "120", "150", "180"));
getChildren().add(cb);
setChangeListener(cb);
}
public static Color getColor() {
return Color.ORANGERED;
}
@Override
public String intern() {
StringBuilder sb = new StringBuilder();
sb.append("rotate");
String arg = (String) cb.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.getValue();
if (arg == null) {
arg = "0";
}
status.put("rotate", arg);
return status;
}
@Override
public void setStatus(Status status) {
changeable = false; //一時的にリスナーを無効化
this.setUUID((String) status.get("id"));
cb.setValue(status.get("rotate"));
changeable = true;
}
@Override
public Label getLabel() {
return new Label("かいてんする");
}
}