projects
/
instantlauncher.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Changed license to CC0
[instantlauncher.git]
/
src
/
main
/
java
/
eu
/
svjatoslav
/
instantlauncher
/
configuration
/
ConfigurationManager.java
diff --git
a/src/main/java/eu/svjatoslav/instantlauncher/configuration/ConfigurationManager.java
b/src/main/java/eu/svjatoslav/instantlauncher/configuration/ConfigurationManager.java
index
4a06d06
..
5a2e512
100755
(executable)
--- a/
src/main/java/eu/svjatoslav/instantlauncher/configuration/ConfigurationManager.java
+++ b/
src/main/java/eu/svjatoslav/instantlauncher/configuration/ConfigurationManager.java
@@
-1,5
+1,10
@@
+/*
+ * Instantlauncher. Author: Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ * This project is released under Creative Commons Zero (CC0) license.
+ */
package eu.svjatoslav.instantlauncher.configuration;
package eu.svjatoslav.instantlauncher.configuration;
+import com.esotericsoftware.yamlbeans.YamlConfig;
import com.esotericsoftware.yamlbeans.YamlReader;
import com.esotericsoftware.yamlbeans.YamlWriter;
import com.esotericsoftware.yamlbeans.YamlReader;
import com.esotericsoftware.yamlbeans.YamlWriter;
@@
-28,34
+33,42
@@
public class ConfigurationManager {
final File propertiesFile = getPropertiesFile();
if (!propertiesFile.exists()) {
initDefaultConfiguration();
final File propertiesFile = getPropertiesFile();
if (!propertiesFile.exists()) {
initDefaultConfiguration();
- saveConfigFile();
} else
loadConfigFile(propertiesFile);
}
} else
loadConfigFile(propertiesFile);
}
- private void loadConfigFile(File propertiesFile) throws
FileNotFoundException, com.esotericsoftware.yamlbeans.Yaml
Exception {
+ private void loadConfigFile(File propertiesFile) throws
IO
Exception {
YamlReader reader = new YamlReader(new FileReader(propertiesFile));
YamlReader reader = new YamlReader(new FileReader(propertiesFile));
+ configureYaml(reader.getConfig());
configuration = reader.read(Configuration.class);
configuration = reader.read(Configuration.class);
- if (configuration == null) {
- configuration = new Configuration();
- configuration.fileAssociations = new HashSet<>();
- }
+ if (configuration == null)
+ initDefaultConfiguration();
}
private void saveConfigFile() throws IOException {
YamlWriter writer = new YamlWriter(new FileWriter(getPropertiesFile()));
}
private void saveConfigFile() throws IOException {
YamlWriter writer = new YamlWriter(new FileWriter(getPropertiesFile()));
+ configureYaml(writer.getConfig());
writer.write(configuration);
writer.close();
}
writer.write(configuration);
writer.close();
}
+ private void configureYaml(YamlConfig config) {
+ config.setClassTag("configuration", Configuration.class);
+ config.setPropertyElementType(Configuration.class, "fileAssociations", FileAssociation.class);
+ }
+
private void registerFileAssociation(String fileRegex, String command) {
FileAssociation association = new FileAssociation(fileRegex, command);
configuration.fileAssociations.add(association);
}
private void registerFileAssociation(String fileRegex, String command) {
FileAssociation association = new FileAssociation(fileRegex, command);
configuration.fileAssociations.add(association);
}
- private void initDefaultConfiguration() {
+ private void initDefaultConfiguration() throws IOException {
+ configuration = new Configuration();
+ configuration.fileAssociations = new HashSet<>();
+
configuration.navigationRootPath = System.getProperty("user.home") + "/";
configuration.directoryOpenCommand = "nautilus -w {file}";
configuration.navigationRootPath = System.getProperty("user.home") + "/";
configuration.directoryOpenCommand = "nautilus -w {file}";
+ configuration.directoryTerminalOpenCommand = "gnome-terminal --working-directory={file}";
registerFileAssociation(".*\\.jpeg$", "eog {file}");
registerFileAssociation(".*\\.jpg$", "eog {file}");
registerFileAssociation(".*\\.jpeg$", "eog {file}");
registerFileAssociation(".*\\.jpg$", "eog {file}");
@@
-65,5
+78,7
@@
public class ConfigurationManager {
registerFileAssociation(".*\\.avi$", "vlc {file}");
registerFileAssociation(".*\\.mp4$", "vlc {file}");
registerFileAssociation(".*\\.mkv$", "vlc {file}");
registerFileAssociation(".*\\.avi$", "vlc {file}");
registerFileAssociation(".*\\.mp4$", "vlc {file}");
registerFileAssociation(".*\\.mkv$", "vlc {file}");
+
+ saveConfigFile();
}
}
}
}