@FXML private void saveCode() { FileChooser fc = new FileChooser(); fc.setTitle("保存先を指定"); fc.setInitialFileName(contest.getSelectionModel().getSelectedItem().getValue()); fc.getExtensionFilters().addAll(Extension.getFilterList()); fc.setSelectedExtensionFilter(Extension.of(languageLabel.getText()).getFilter()); Optional.ofNullable(fc.showSaveDialog(root.getScene().getWindow())) .ifPresent( f -> { try { Files.write(f.toPath(), ((String) obj.call("getCode")).getBytes()); } catch (IOException e) { } }); }
@FXML private void setCode() { if (submission.getSelectionModel().isEmpty()) return; try { obj.call( "setCode", api.getCode( submission.getSelectionModel().getSelectedItem().getId(), contest.getSelectionModel().getSelectedItem().getValue())); } catch (Exception e) { getAlert(e, "提出コードの取得に失敗しました。").show(); return; } languageLabel.setText(submission.getSelectionModel().getSelectedItem().getLanguage()); Extension lang = Extension.of(languageLabel.getText()); if (Stream.of(Extension.C, Extension.CPP).anyMatch(e -> e.equals(lang))) obj.call("setMode", "c_cpp"); else obj.call("setMode", lang.toString().toLowerCase()); }