package com.scrivenvar.dialogs;
import static com.scrivenvar.Messages.get;
import javafx.application.Platform;
import javafx.geometry.Insets;
import static javafx.scene.control.ButtonType.OK;
import javafx.scene.control.DialogPane;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import javafx.scene.layout.GridPane;
import javafx.stage.Window;
public class RScriptDialog extends AbstractDialog<String> {
private TextArea scriptArea;
private String originalText = "";
public RScriptDialog(
final Window parent, final String title, final String script ) {
super( parent, title );
setOriginalText( script );
getScriptArea().setText( script );
}
@Override
protected void initComponents() {
final DialogPane pane = getDialogPane();
final GridPane grid = new GridPane();
grid.setHgap( 10 );
grid.setVgap( 10 );
grid.setPadding( new Insets( 10, 10, 10, 10 ) );
final Label label = new Label( get( "Dialog.rScript.content" ) );
final TextArea textArea = getScriptArea();
textArea.setEditable( true );
textArea.setWrapText( true );
grid.add( label, 0, 0 );
grid.add( textArea, 0, 1 );
pane.setContent( grid );
Platform.runLater( () -> textArea.requestFocus() );
setResultConverter( dialogButton -> {
return dialogButton == OK ? textArea.getText() : getOriginalText();
} );
}
private TextArea getScriptArea() {
if( this.scriptArea == null ) {
this.scriptArea = new TextArea();
}
return this.scriptArea;
}
private String getOriginalText() {
return this.originalText;
}
private void setOriginalText( final String originalText ) {
this.originalText = originalText;
}
}