package cupcarbon; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import java.net.URL; import java.util.ResourceBundle; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.ComboBox; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import project.Project; public class SenScriptController implements Initializable{ @FXML private TextArea zone; @FXML private void loopCom() { zone.replaceSelection("loop\n"); } @FXML private void setCom() { zone.replaceSelection("set x 0\n"); } @FXML private void sendCom() { zone.replaceSelection("send 1\n"); } @FXML private void delayCom() { zone.replaceSelection("delay 1000\n"); } @FXML private void example1_1Com() { zone.clear(); zone.replaceSelection("//Transmitter\nloop\nsend 1\ndelay 1000\nsend 0\ndelay 1000"); } @FXML private void example1_2Com() { zone.clear(); zone.replaceSelection("//Transmitter\natget id id\nloop\ndata p $id A\nsend $p\ndelay 1000\ndata p $id B\nsend $p\ndelay 1000"); } @FXML private void example2_1Com() { zone.clear(); zone.replaceSelection("//Router\nloop\nwait\nread v\nsend $v 2"); } @FXML private void example2_2Com() { zone.clear(); zone.replaceSelection("//Router\natget id id\nloop\nwait\nread rp\nrdata $rp rid v\ndata p $id $v\nsend $p * $rid"); } @FXML private void example3_1Com() { zone.clear(); zone.replaceSelection("//Receiver\nloop\nwait\nread v\nmark $v"); } @FXML private void example3_2Com() { zone.clear(); zone.replaceSelection("//Receiver\nloop\nwait\nread rp\nrdata $rp rid v\nif($v==A)\n mark 1\nelse\n mark 0\nend"); } @FXML private void ifthenelseCom() { zone.replaceSelection("if()\n\nthen\n\nelse\n\nend\n"); } @FXML private void waitCom() { zone.replaceSelection("wait\n"); } @FXML private void readCom() { zone.replaceSelection("read x\n"); } @FXML private void forCom() { zone.replaceSelection("for i 0 9\n\nend\n"); } @FXML private void incCom() { zone.replaceSelection("inc x\n"); } @FXML private ComboBox<String> txtLoadFileName; @FXML private TextField txtFileName; @FXML public void load() { if (txtLoadFileName.getSelectionModel().getSelectedIndex() > 0) { txtFileName.setText(txtLoadFileName.getSelectionModel().getSelectedItem().toString()); zone.setText(""); try { FileInputStream in = new FileInputStream(new File( Project.getScriptFileFromName(txtLoadFileName.getSelectionModel() .getSelectedItem().toString()))); byte[] bytes = new byte[in.available()]; in.read(bytes); zone.setText(new String(bytes)); in.close(); } catch (Exception e1) {} } else { txtFileName.setText(""); zone.setText("loop\n"); zone.requestFocus(); } } @FXML public void save() { if(!txtFileName.getText().equals("")) { try { String fileName = txtFileName.getText(); fileName = fileName.trim(); fileName = fileName.replaceAll(" ", ""); PrintStream ps; ps = new PrintStream(new FileOutputStream(Project .getScriptFileFromName(Project .getScriptFileExtension(fileName)))); ps.print(zone.getText()); ps.close(); zone.setText(""); txtFileName.setText(""); File scriptFiles = new File(Project.getProjectScriptPath()); String[] c = scriptFiles.list(); txtLoadFileName.getItems().removeAll(txtLoadFileName.getItems()); txtLoadFileName.getItems().add("New scenario ..."); for (int i = 0; i < c.length; i++) { txtLoadFileName.getItems().add(c[i]); } CupCarbon.cupCarbonController.initScriptGpsEventComboBoxes(); // Alert alert = new Alert(AlertType.INFORMATION); // alert.setTitle("Save Script File!"); // alert.setHeaderText(null); // alert.setContentText("File saved !"); // alert.showAndWait(); } catch (FileNotFoundException e) { e.printStackTrace(); } } } @Override public void initialize(URL location, ResourceBundle resources) { initComboBox(); } public void initComboBox() { File scriptFiles = new File(Project.getProjectScriptPath()); String[] c = scriptFiles.list(); txtLoadFileName.getItems().removeAll(txtLoadFileName.getItems()); txtLoadFileName.getItems().add("New script ..."); if (scriptFiles.isDirectory() && c != null) { for (int i = 0; i < c.length; i++) { txtLoadFileName.getItems().add(c[i]); } } } }