@Override public void start(Stage primaryStage) { primaryStage.setTitle("CoAP Explorer"); Group root = new Group(); Scene scene = new Scene(root, 800, 600); TextArea hexArea = new TextArea(); TextArea binArea = new TextArea(); CoapPacket packet = new CoapPacket(); packet.setPayload("PAYLOAD"); packetProp.setValue(packet); binArea.textProperty().bindBidirectional(packetProp, new AsciiConverter()); hexArea.textProperty().bindBidirectional(packetProp, new HexConverter()); hexArea.setEditable(false); hexArea.setFont(javafx.scene.text.Font.font(Font.MONOSPACED)); VBox vbox = new VBox(); vbox.setPadding(new Insets(10)); vbox.setSpacing(8); VBox.setMargin(hexArea, new Insets(0, 0, 0, 8)); vbox.getChildren().add(hexArea); VBox.setMargin(binArea, new Insets(0, 0, 0, 8)); vbox.getChildren().add(binArea); root.getChildren().add(vbox); primaryStage.setScene(scene); primaryStage.show(); }
public void setMovie(Movie movie) { ratingChoiceBox.valueProperty().bindBidirectional(movie.getCustomRatingProperty()); customCommentText.textProperty().bindBidirectional(movie.getCustomCommentProperty()); movieCoverImageView.setImage(movie.getImg()); plotText.setText(movie.getPlot()); titleLabel.setText(movie.getTitle()); yearLabel.setText(Integer.toString(movie.getYear())); directorLabel.setText(movie.getDirector()); genreLabel.setText(movie.getGenre()); actorsText.setText(movie.getActors()); runtimeLabel.setText(movie.getRuntime()); ratingLabel.setText(Double.toString(movie.getRating()) + "/10"); }
@Override public void initialize(URL arg0, ResourceBundle arg1) { textTrackName.setText(track.getName()); textDynamicRange.setText(String.format("%.2f dB", track.getDynamicRange())); drawTrack(); radioButtonActiveTrack.setToggleGroup(toggleGroup); radioButtonActiveTrack.setUserData(new WeakReference<>(track)); if (toggleGroup.getSelectedToggle() == null) { radioButtonActiveTrack.setSelected(true); } textAreaComment.textProperty().bindBidirectional(track.commentProperty()); }
/** Initializes the main text area. */ public void initialzeTextArea() { textArea.setWrapText(false); setRowHeights(Integer.parseInt(mediator.getDesktopController().getTextFontData().fontSize)); textArea .textProperty() .addListener( new ChangeListener<String>() { @Override public void changed( final ObservableValue<? extends String> observable, final String oldValue, final String newValue) { int numLines = numberOfLinesInString(newValue); ObservableList<DebugCellData> debugItems = EditorPaneController.this.debugListView.getItems(); ObservableList<LineNumberCellData> lineNumberItems = EditorPaneController.this.lineNumberListView.getItems(); if (currentNumLines > numLines) { while (debugItems.size() != numLines) { debugItems.remove(debugItems.size() - 1); } while (lineNumberItems.size() != numLines) { lineNumberItems.remove(lineNumberItems.size() - 1); } } else if (currentNumLines < numLines) { while (debugItems.size() != numLines) { debugItems.add(newDebugCellData()); } while (lineNumberItems.size() != numLines) { lineNumberItems.add(new LineNumberCellData(lineNumberItems.size() + 1)); } } currentNumLines = numLines; } }); }
private void onSelectDispute(Dispute dispute) { if (dispute == null) { if (root.getChildren().size() > 1) root.getChildren().remove(1); selectedDispute = null; } else if (selectedDispute != dispute) { this.selectedDispute = dispute; boolean isTrader = disputeManager.isTrader(dispute); TableGroupHeadline tableGroupHeadline = new TableGroupHeadline(); tableGroupHeadline.setText("Messages"); tableGroupHeadline.prefWidthProperty().bind(root.widthProperty()); AnchorPane.setTopAnchor(tableGroupHeadline, 10d); AnchorPane.setRightAnchor(tableGroupHeadline, 0d); AnchorPane.setBottomAnchor(tableGroupHeadline, 0d); AnchorPane.setLeftAnchor(tableGroupHeadline, 0d); ObservableList<DisputeDirectMessage> list = dispute.getDisputeDirectMessagesAsObservableList(); SortedList<DisputeDirectMessage> sortedList = new SortedList<>(list); sortedList.setComparator((o1, o2) -> o1.getDate().compareTo(o2.getDate())); list.addListener((ListChangeListener<DisputeDirectMessage>) c -> scrollToBottom()); messageListView = new ListView<>(sortedList); messageListView.setId("message-list-view"); messageListView.prefWidthProperty().bind(root.widthProperty()); messageListView.setMinHeight(150); AnchorPane.setTopAnchor(messageListView, 30d); AnchorPane.setRightAnchor(messageListView, 0d); AnchorPane.setLeftAnchor(messageListView, 0d); messagesAnchorPane = new AnchorPane(); messagesAnchorPane.prefWidthProperty().bind(root.widthProperty()); VBox.setVgrow(messagesAnchorPane, Priority.ALWAYS); inputTextArea = new TextArea(); inputTextArea.setPrefHeight(70); inputTextArea.setWrapText(true); Button sendButton = new Button("Send"); sendButton.setDefaultButton(true); sendButton.setOnAction(e -> onSendMessage(inputTextArea.getText(), dispute)); sendButton.setDisable(true); inputTextArea .textProperty() .addListener( (observable, oldValue, newValue) -> { sendButton.setDisable( newValue.length() == 0 && tempAttachments.size() == 0 && dispute.disputeResultProperty().get() == null); }); Button uploadButton = new Button("Add attachments"); uploadButton.setOnAction(e -> onRequestUpload()); sendMsgInfoLabel = new Label(); sendMsgInfoLabel.setVisible(false); sendMsgInfoLabel.setManaged(false); sendMsgInfoLabel.setPadding(new Insets(5, 0, 0, 0)); sendMsgProgressIndicator = new ProgressIndicator(0); sendMsgProgressIndicator.setPrefHeight(24); sendMsgProgressIndicator.setPrefWidth(24); sendMsgProgressIndicator.setVisible(false); sendMsgProgressIndicator.setManaged(false); dispute .isClosedProperty() .addListener( (observable, oldValue, newValue) -> { messagesInputBox.setVisible(!newValue); messagesInputBox.setManaged(!newValue); AnchorPane.setBottomAnchor(messageListView, newValue ? 0d : 120d); }); if (!dispute.isClosed()) { HBox buttonBox = new HBox(); buttonBox.setSpacing(10); buttonBox .getChildren() .addAll(sendButton, uploadButton, sendMsgProgressIndicator, sendMsgInfoLabel); if (!isTrader) { Button closeDisputeButton = new Button("Close ticket"); closeDisputeButton.setOnAction(e -> onCloseDispute(dispute)); closeDisputeButton.setDefaultButton(true); Pane spacer = new Pane(); HBox.setHgrow(spacer, Priority.ALWAYS); buttonBox.getChildren().addAll(spacer, closeDisputeButton); } messagesInputBox = new VBox(); messagesInputBox.setSpacing(10); messagesInputBox.getChildren().addAll(inputTextArea, buttonBox); VBox.setVgrow(buttonBox, Priority.ALWAYS); AnchorPane.setRightAnchor(messagesInputBox, 0d); AnchorPane.setBottomAnchor(messagesInputBox, 5d); AnchorPane.setLeftAnchor(messagesInputBox, 0d); AnchorPane.setBottomAnchor(messageListView, 120d); messagesAnchorPane .getChildren() .addAll(tableGroupHeadline, messageListView, messagesInputBox); } else { AnchorPane.setBottomAnchor(messageListView, 0d); messagesAnchorPane.getChildren().addAll(tableGroupHeadline, messageListView); } messageListView.setCellFactory( new Callback<ListView<DisputeDirectMessage>, ListCell<DisputeDirectMessage>>() { @Override public ListCell<DisputeDirectMessage> call(ListView<DisputeDirectMessage> list) { return new ListCell<DisputeDirectMessage>() { final Pane bg = new Pane(); final ImageView arrow = new ImageView(); final Label headerLabel = new Label(); final Label messageLabel = new Label(); final HBox attachmentsBox = new HBox(); final AnchorPane messageAnchorPane = new AnchorPane(); final Label statusIcon = new Label(); final double arrowWidth = 15d; final double attachmentsBoxHeight = 20d; final double border = 10d; final double bottomBorder = 25d; final double padding = border + 10d; { bg.setMinHeight(30); messageLabel.setWrapText(true); headerLabel.setTextAlignment(TextAlignment.CENTER); attachmentsBox.setSpacing(5); statusIcon.setStyle("-fx-font-size: 10;"); messageAnchorPane .getChildren() .addAll(bg, arrow, headerLabel, messageLabel, attachmentsBox, statusIcon); } @Override public void updateItem(final DisputeDirectMessage item, boolean empty) { super.updateItem(item, empty); if (item != null && !empty) { /* messageAnchorPane.prefWidthProperty().bind(EasyBind.map(messageListView.widthProperty(), w -> (double) w - padding - GUIUtil.getScrollbarWidth(messageListView)));*/ if (!messageAnchorPane.prefWidthProperty().isBound()) messageAnchorPane .prefWidthProperty() .bind( messageListView .widthProperty() .subtract(padding + GUIUtil.getScrollbarWidth(messageListView))); AnchorPane.setTopAnchor(bg, 15d); AnchorPane.setBottomAnchor(bg, bottomBorder); AnchorPane.setTopAnchor(headerLabel, 0d); AnchorPane.setBottomAnchor(arrow, bottomBorder + 5d); AnchorPane.setTopAnchor(messageLabel, 25d); AnchorPane.setBottomAnchor(attachmentsBox, bottomBorder + 10); boolean senderIsTrader = item.isSenderIsTrader(); boolean isMyMsg = isTrader ? senderIsTrader : !senderIsTrader; arrow.setVisible(!item.isSystemMessage()); arrow.setManaged(!item.isSystemMessage()); statusIcon.setVisible(false); if (item.isSystemMessage()) { headerLabel.setStyle("-fx-text-fill: -bs-green; -fx-font-size: 11;"); bg.setId("message-bubble-green"); messageLabel.setStyle("-fx-text-fill: white;"); } else if (isMyMsg) { headerLabel.setStyle("-fx-text-fill: -fx-accent; -fx-font-size: 11;"); bg.setId("message-bubble-blue"); messageLabel.setStyle("-fx-text-fill: white;"); if (isTrader) arrow.setId("bubble_arrow_blue_left"); else arrow.setId("bubble_arrow_blue_right"); sendMsgProgressIndicator .progressProperty() .addListener( (observable, oldValue, newValue) -> { if ((double) oldValue == -1 && (double) newValue == 0) { if (item.arrivedProperty().get()) showArrivedIcon(); else if (item.storedInMailboxProperty().get()) showMailboxIcon(); } }); if (item.arrivedProperty().get()) showArrivedIcon(); else if (item.storedInMailboxProperty().get()) showMailboxIcon(); // TODO show that icon on error /*else if (sendMsgProgressIndicator.getProgress() == 0) showNotArrivedIcon();*/ } else { headerLabel.setStyle("-fx-text-fill: -bs-light-grey; -fx-font-size: 11;"); bg.setId("message-bubble-grey"); messageLabel.setStyle("-fx-text-fill: black;"); if (isTrader) arrow.setId("bubble_arrow_grey_right"); else arrow.setId("bubble_arrow_grey_left"); } if (item.isSystemMessage()) { AnchorPane.setLeftAnchor(headerLabel, padding); AnchorPane.setRightAnchor(headerLabel, padding); AnchorPane.setLeftAnchor(bg, border); AnchorPane.setRightAnchor(bg, border); AnchorPane.setLeftAnchor(messageLabel, padding); AnchorPane.setRightAnchor(messageLabel, padding); AnchorPane.setLeftAnchor(attachmentsBox, padding); AnchorPane.setRightAnchor(attachmentsBox, padding); } else if (senderIsTrader) { AnchorPane.setLeftAnchor(headerLabel, padding + arrowWidth); AnchorPane.setLeftAnchor(bg, border + arrowWidth); AnchorPane.setRightAnchor(bg, border); AnchorPane.setLeftAnchor(arrow, border); AnchorPane.setLeftAnchor(messageLabel, padding + arrowWidth); AnchorPane.setRightAnchor(messageLabel, padding); AnchorPane.setLeftAnchor(attachmentsBox, padding + arrowWidth); AnchorPane.setRightAnchor(attachmentsBox, padding); AnchorPane.setRightAnchor(statusIcon, padding); } else { AnchorPane.setRightAnchor(headerLabel, padding + arrowWidth); AnchorPane.setLeftAnchor(bg, border); AnchorPane.setRightAnchor(bg, border + arrowWidth); AnchorPane.setRightAnchor(arrow, border); AnchorPane.setLeftAnchor(messageLabel, padding); AnchorPane.setRightAnchor(messageLabel, padding + arrowWidth); AnchorPane.setLeftAnchor(attachmentsBox, padding); AnchorPane.setRightAnchor(attachmentsBox, padding + arrowWidth); AnchorPane.setLeftAnchor(statusIcon, padding); } AnchorPane.setBottomAnchor(statusIcon, 7d); headerLabel.setText(formatter.formatDateTime(item.getDate())); messageLabel.setText(item.getMessage()); if (item.getAttachments().size() > 0) { AnchorPane.setBottomAnchor( messageLabel, bottomBorder + attachmentsBoxHeight + 10); attachmentsBox .getChildren() .add( new Label("Attachments: ") { { setPadding(new Insets(0, 0, 3, 0)); if (isMyMsg) setStyle("-fx-text-fill: white;"); else setStyle("-fx-text-fill: black;"); } }); item.getAttachments() .stream() .forEach( attachment -> { final Label icon = new Label(); setPadding(new Insets(0, 0, 3, 0)); if (isMyMsg) icon.getStyleClass().add("attachment-icon"); else icon.getStyleClass().add("attachment-icon-black"); AwesomeDude.setIcon(icon, AwesomeIcon.FILE_TEXT); icon.setPadding(new Insets(-2, 0, 0, 0)); icon.setTooltip(new Tooltip(attachment.getFileName())); icon.setOnMouseClicked(event -> onOpenAttachment(attachment)); attachmentsBox.getChildren().add(icon); }); } else { attachmentsBox.getChildren().clear(); AnchorPane.setBottomAnchor(messageLabel, bottomBorder + 10); } // TODO There are still some cell rendering issues on updates setGraphic(messageAnchorPane); } else { messageAnchorPane.prefWidthProperty().unbind(); AnchorPane.clearConstraints(bg); AnchorPane.clearConstraints(headerLabel); AnchorPane.clearConstraints(arrow); AnchorPane.clearConstraints(messageLabel); AnchorPane.clearConstraints(statusIcon); AnchorPane.clearConstraints(attachmentsBox); setGraphic(null); } } /* private void showNotArrivedIcon() { statusIcon.setVisible(true); AwesomeDude.setIcon(statusIcon, AwesomeIcon.WARNING_SIGN, "14"); Tooltip.install(statusIcon, new Tooltip("Message did not arrive. Please try to send again.")); statusIcon.setTextFill(Paint.valueOf("#dd0000")); }*/ private void showMailboxIcon() { statusIcon.setVisible(true); AwesomeDude.setIcon(statusIcon, AwesomeIcon.ENVELOPE_ALT, "14"); Tooltip.install(statusIcon, new Tooltip("Message saved in receivers mailbox")); statusIcon.setTextFill(Paint.valueOf("#0f87c3")); } private void showArrivedIcon() { statusIcon.setVisible(true); AwesomeDude.setIcon(statusIcon, AwesomeIcon.OK, "14"); Tooltip.install(statusIcon, new Tooltip("Message arrived at receiver")); statusIcon.setTextFill(Paint.valueOf("#0f87c3")); } }; } }); if (root.getChildren().size() > 1) root.getChildren().remove(1); root.getChildren().add(1, messagesAnchorPane); scrollToBottom(); } }
public EditorPane(ISandboxStage stage) { this.sandboxStage = stage; lblTitle = new Label("New File"); Button btnOpen = StyleUtil.buildButton("Open"); btnOpen.setOnAction( new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { promptSave(); chooseFile(); } }); btnSave = StyleUtil.buildButton("Save"); btnSave.setOnAction( new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { saveFile(); } }); btnSave.setDisable(!isModified); Button btnClear = StyleUtil.buildButton("Clear"); btnClear.setOnAction( new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { lblTitle.setText("New File"); taSource.setText(S_EMPTY); } }); Button btnClose = StyleUtil.buildButton("Close"); btnClose.setOnAction( new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { promptSave(); sandboxStage.editorClosed(EditorPane.this); } }); Button btnRun = StyleUtil.buildButton("Run"); btnRun.setOnAction( new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { if (isModified) { promptSave(); } setVMLanguage(); sandboxStage.runFile(EditorPane.this); } }); hBoxTitle = new HBox(); hBoxTitle.setSpacing(10); hBoxTitle.setPadding(new Insets(0, 10, 0, 10)); hBoxTitle.getChildren().add(lblTitle); hBoxTitle.getChildren().add(btnOpen); hBoxTitle.getChildren().add(btnSave); hBoxTitle.getChildren().add(btnClear); hBoxTitle.getChildren().add(btnClose); hBoxTitle.getChildren().add(btnRun); hBoxTitle.setStyle("-fx-background-color:#dddddd; -fx-padding:4px;"); taSource = new TextArea(); String styleSource = "-fx-font-family:monospace; -fx-font-size:12px; -fx-background-color:white;"; taSource.setStyle(styleSource); taSource .textProperty() .addListener( new ChangeListener<String>() { @Override public void changed( final ObservableValue<? extends String> observable, final String oldValue, final String newValue) { setModified(true); } }); taSource .focusedProperty() .addListener( new ChangeListener<Boolean>() { @Override public void changed( ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) { if (Boolean.TRUE.equals(newValue)) { setVMLanguage(); } } }); setTextAreaSaveCombo(taSource); taLineNumbers = new TextArea(); String styleLineNumber = "-fx-padding:0; -fx-font-family:monospace; -fx-font-size:12px; -fx-background-color:#eeeeee;"; taLineNumbers.setStyle(styleLineNumber); taLineNumbers.setEditable(false); taLineNumbers.setWrapText(true); HBox hBoxTextAreas = new HBox(); hBoxTextAreas.getChildren().add(taLineNumbers); hBoxTextAreas.getChildren().add(taSource); taSource.prefWidthProperty().bind(hBoxTextAreas.widthProperty()); getChildren().add(hBoxTitle); getChildren().add(hBoxTextAreas); hBoxTitle.prefWidthProperty().bind(widthProperty()); hBoxTitle.prefHeightProperty().bind(heightProperty().multiply(0.1)); hBoxTextAreas.prefWidthProperty().bind(widthProperty()); hBoxTextAreas.prefHeightProperty().bind(heightProperty().multiply(0.9)); }
public void onChange(ChangeListener<String> changeListener) { styleInput.textProperty().addListener(changeListener); }