/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package chcnddocumenteditor;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
/**
*
* @author
*/
public class ChcndDocumentEditor extends Application {
public String title = "Document Editor";
public int width = 800;
public int height = 700;
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle(title);
VBox root = new VBox(20);
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setVgap(20);
Label titleLabel = new Label("Title:");
TextField titleField = new TextField();
titleField.setPrefColumnCount(45);
HBox titleFieldBox = new HBox(10);
titleFieldBox.setAlignment(Pos.CENTER_LEFT);
titleFieldBox.getChildren().addAll(titleLabel, titleField);
grid.add(titleFieldBox, 0, 0);
TextArea editor = new TextArea();
editor.setPrefColumnCount(45);
editor.setPrefRowCount(25);
grid.add(editor, 0, 1);
MenuBar menuBar = new MenuBar();
Menu fileMenu = new Menu("File");
menuBar.getMenus().add(fileMenu);
MenuItem openMenuItem = new MenuItem("Open");
fileMenu.getItems().add(openMenuItem);
MenuItem saveMenuItem = new MenuItem("Save");
fileMenu.getItems().add(saveMenuItem);
FileChooser fileChooser = new FileChooser();
openMenuItem.setOnAction((ActionEvent e) -> {
configureFileChooser(fileChooser);
File file = fileChooser.showOpenDialog(primaryStage);
if (file != null) {
String fName =file.toString();
File tempFile =new File( fName.trim());
String fileName = tempFile.getName();
titleField.setText(fileName);
String text = txt2String(file);
editor.setText(text);
}else {
titleField.setText("No file input");
}
});
saveMenuItem.setOnAction((ActionEvent e) -> {
File file = fileChooser.showSaveDialog(primaryStage);
FileWriter writer;
String str = editor.getText();
try {
writer = new FileWriter(file.toString());
writer.write(str);
writer.flush();
writer.close();
} catch(IOException f) {
f.printStackTrace();
}
});
root.getChildren().addAll(menuBar, grid);
Scene scene = new Scene(root, width, height);
primaryStage.setScene(scene);
primaryStage.show();
}
private static void configureFileChooser(FileChooser fileChooser) {
fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("TXT", "*.txt"));
}
private static String txt2String(File file){
StringBuilder result = new StringBuilder();
try
{
BufferedReader br = new BufferedReader(new FileReader(file));
String s = null;
while((s = br.readLine())!=null)
{
result.append(System.lineSeparator()+s);
}
br.close();
}catch(Exception e)
{
e.printStackTrace();
}
return result.toString();
}
// private static File string2txt(String string) {
// File file = new File(string);
// return file;
// }
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}