Merge branch 'master' of https://gitlab.stud.idi.ntnu.no/oysteikt/h20-tdt4100-project
This commit is contained in:
commit
c1c86a94c6
@ -20,7 +20,7 @@ public class FileOperations {
|
|||||||
*
|
*
|
||||||
* @param stage A JavaFX stage is required to show the dialog
|
* @param stage A JavaFX stage is required to show the dialog
|
||||||
* @return The chosen file
|
* @return The chosen file
|
||||||
* @throws FileNotFoundException
|
* @throws FileNotFoundException if the dialog was canceled
|
||||||
*/
|
*/
|
||||||
public static File openFileWithDialog(Stage stage) throws FileNotFoundException {
|
public static File openFileWithDialog(Stage stage) throws FileNotFoundException {
|
||||||
File chosenFile = DialogBoxes.showopenFileWithDialog(stage);
|
File chosenFile = DialogBoxes.showopenFileWithDialog(stage);
|
||||||
@ -33,11 +33,11 @@ public class FileOperations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A function to get a file through a dialog
|
* A function to get directory through a dialog
|
||||||
*
|
*
|
||||||
* @param stage A JavaFX stage is required to show the dialog
|
* @param stage A JavaFX stage is required to show the dialog
|
||||||
* @return The chosen file
|
* @return The chosen directory
|
||||||
* @throws FileNotFoundException
|
* @throws FileNotFoundException if the dialog was canceled
|
||||||
*/
|
*/
|
||||||
public static File openDirectoryWithDialog(Stage stage) throws FileNotFoundException {
|
public static File openDirectoryWithDialog(Stage stage) throws FileNotFoundException {
|
||||||
File dir = DialogBoxes.showOpenDirectoryWithDialog(stage);
|
File dir = DialogBoxes.showOpenDirectoryWithDialog(stage);
|
||||||
@ -48,6 +48,14 @@ public class FileOperations {
|
|||||||
return dir;
|
return dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Saves a file a the specified filepath with the specified content.
|
||||||
|
* Shows an error message to the user if the file was not found at the specified location.
|
||||||
|
*
|
||||||
|
* @param filepath The path of the file to save the content into
|
||||||
|
* @param content The text content to be saved
|
||||||
|
* @return Whether the file was sucessfully saved
|
||||||
|
*/
|
||||||
public static boolean saveFile(Path filepath, String content) {
|
public static boolean saveFile(Path filepath, String content) {
|
||||||
try (PrintWriter writer = new PrintWriter(filepath.toFile())) {
|
try (PrintWriter writer = new PrintWriter(filepath.toFile())) {
|
||||||
writer.println(content);
|
writer.println(content);
|
||||||
@ -59,6 +67,14 @@ public class FileOperations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lets the user choose a file to save the specified content into
|
||||||
|
*
|
||||||
|
* @param stage A JavaFX stage is needed in order to show the file chooser
|
||||||
|
* @param content The content to be saved
|
||||||
|
*
|
||||||
|
* @return Whether the file was sucessfully saved
|
||||||
|
*/
|
||||||
public static boolean saveFileWithDialog(Stage stage, String content) {
|
public static boolean saveFileWithDialog(Stage stage, String content) {
|
||||||
File chosenLocation;
|
File chosenLocation;
|
||||||
|
|
||||||
@ -78,6 +94,14 @@ public class FileOperations {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tries to read the contents of a file in the specified filepath.
|
||||||
|
* If it fails, it shows the user a corresponding error message.
|
||||||
|
*
|
||||||
|
* @param filePath The path of the file to be read
|
||||||
|
*
|
||||||
|
* @return The text content of the file
|
||||||
|
*/
|
||||||
public static String readFile(Path filePath) {
|
public static String readFile(Path filePath) {
|
||||||
|
|
||||||
if (filePath == null)
|
if (filePath == null)
|
||||||
|
@ -23,11 +23,11 @@ public class FiletreeOperations {
|
|||||||
private FiletreeOperations() {}
|
private FiletreeOperations() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The method to generate the fileTree recursively. If it is a directory a
|
* Generate a filetree recursively, find icons for every file and append them to
|
||||||
* CheckBoxStringItem is created and the method is called again. It goes through
|
* the root tree node.
|
||||||
* all until every directory or file inside the orginal CheckBoxItem is made. If
|
*
|
||||||
* the item is a file it sends it to the help function checkExtension which is
|
* @param file The root directory to be at the top of the tree
|
||||||
* described below.
|
* @param parent The root tree item to append children to
|
||||||
*/
|
*/
|
||||||
public static void generateTree(File file, CheckBoxTreeItem<String> parent) {
|
public static void generateTree(File file, CheckBoxTreeItem<String> parent) {
|
||||||
|
|
||||||
@ -70,6 +70,10 @@ public class FiletreeOperations {
|
|||||||
/**
|
/**
|
||||||
* A helping function to sort the files/directories in the fileTree so that it shows
|
* A helping function to sort the files/directories in the fileTree so that it shows
|
||||||
* in the correct order.
|
* in the correct order.
|
||||||
|
*
|
||||||
|
* @param dirList The list of directories to append all directories to
|
||||||
|
* @param fileList The list of files to append all the files to
|
||||||
|
* @param file The directory of which children to sort
|
||||||
*/
|
*/
|
||||||
private static void sortFiles(List<File> dirList, List<File> fileList, File file) {
|
private static void sortFiles(List<File> dirList, List<File> fileList, File file) {
|
||||||
for (File f : file.listFiles()) {
|
for (File f : file.listFiles()) {
|
||||||
@ -82,6 +86,14 @@ public class FiletreeOperations {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A function to get an icon for a file based on its mimetype.
|
||||||
|
* If no such icon is found, the function will return a default icon
|
||||||
|
*
|
||||||
|
* @param file The file to probe for a mimetype
|
||||||
|
* @return An image containing the icon
|
||||||
|
* @throws IOException if the default icon was not found. This should not happen
|
||||||
|
*/
|
||||||
private static Image getIconForFile(File file) throws IOException {
|
private static Image getIconForFile(File file) throws IOException {
|
||||||
Image icon;
|
Image icon;
|
||||||
|
|
||||||
@ -110,6 +122,13 @@ public class FiletreeOperations {
|
|||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine the absolute path of a file within the filetree.
|
||||||
|
* @param item The treeitem that represents the file of which path is needed
|
||||||
|
* @return The absolute path of the file that the treeitem represents
|
||||||
|
* @throws FileNotFoundException if no path was found within the filetree such that the
|
||||||
|
* item could be connected with the root tree item. This should not happen
|
||||||
|
*/
|
||||||
public static Path getPathOfTreeItem(TreeItem<String> item) throws FileNotFoundException {
|
public static Path getPathOfTreeItem(TreeItem<String> item) throws FileNotFoundException {
|
||||||
Path projectPath =
|
Path projectPath =
|
||||||
Model
|
Model
|
||||||
|
@ -15,6 +15,9 @@ import app.events.LanguageChangedEvent;
|
|||||||
import app.events.ThemeChangedEvent;
|
import app.events.ThemeChangedEvent;
|
||||||
import app.model.Model;
|
import app.model.Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A provider for permanent storage of the settings of the application.
|
||||||
|
*/
|
||||||
public class SettingsProvider implements SettingsProviderI {
|
public class SettingsProvider implements SettingsProviderI {
|
||||||
|
|
||||||
private EventBus eventBus;
|
private EventBus eventBus;
|
||||||
@ -28,7 +31,7 @@ public class SettingsProvider implements SettingsProviderI {
|
|||||||
Arrays.asList("Java", "Markdown", "Monokai", "Solarized Light");
|
Arrays.asList("Java", "Markdown", "Monokai", "Solarized Light");
|
||||||
|
|
||||||
|
|
||||||
// Only for testing purposes
|
/** Only for testing purposes */
|
||||||
protected void setSettingsPath(String settingsPath) {
|
protected void setSettingsPath(String settingsPath) {
|
||||||
this.settingsPath = settingsPath;
|
this.settingsPath = settingsPath;
|
||||||
}
|
}
|
||||||
@ -86,11 +89,21 @@ public class SettingsProvider implements SettingsProviderI {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the settings whenever the theme gets changed
|
||||||
|
*
|
||||||
|
* @param event
|
||||||
|
*/
|
||||||
@Subscribe
|
@Subscribe
|
||||||
private void handle(ThemeChangedEvent event) {
|
private void handle(ThemeChangedEvent event) {
|
||||||
saveSettings();
|
saveSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the settings whenever the language gets changed
|
||||||
|
*
|
||||||
|
* @param event
|
||||||
|
*/
|
||||||
@Subscribe
|
@Subscribe
|
||||||
private void handle(LanguageChangedEvent event) {
|
private void handle(LanguageChangedEvent event) {
|
||||||
saveSettings();
|
saveSettings();
|
||||||
|
Loading…
Reference in New Issue
Block a user