wip on adding UI options

This commit is contained in:
Zlatin Balevsky
2019-06-11 08:04:26 +01:00
parent 08bb2b614d
commit 51004f6fe9
2 changed files with 38 additions and 3 deletions

View File

@@ -6,10 +6,12 @@ import org.codehaus.griffon.runtime.core.AbstractLifecycleHandler
import com.muwire.core.Core
import com.muwire.core.MuWireSettings
import com.muwire.gui.UISettings
import javax.annotation.Nonnull
import javax.inject.Inject
import javax.swing.JTable
import javax.swing.LookAndFeel
import static griffon.util.GriffonApplicationUtils.isMacOSX
import static groovy.swing.SwingBuilder.lookAndFeel
@@ -38,19 +40,29 @@ class Initialize extends AbstractLifecycleHandler {
application.context.put("muwire-home", home.getAbsolutePath())
def guiPropsFile = new File(home, "gui.properties")
UISettings uiSettings
if (guiPropsFile.exists()) {
Properties props = new Properties()
guiPropsFile.withInputStream { props.load(it) }
log.info("settting user-specified lnf ${props['lnf']}")
lookAndFeel(props["lnf"])
uiSettings = new UISettings(props)
log.info("settting user-specified lnf $uiSettings.lnf")
lookAndFeel(uiSettings.lnf)
} else {
Properties props = new Properties()
uiSettings = new UISettings(props)
log.info "will try default lnfs"
if (isMacOSX()) {
uiSettings.lnf = "nimbus"
lookAndFeel('nimbus') // otherwise the file chooser doesn't open???
} else {
lookAndFeel('system', 'gtk')
LookAndFeel chosen = lookAndFeel('system', 'gtk')
uiSettings.lnf = chosen.name
log.info("ended up applying $chosen.name")
}
}
application.context.put("ui-settings", uiSettings)
}
private static String selectHome() {

View File

@@ -0,0 +1,23 @@
package com.muwire.gui
class UISettings {
String lnf
boolean showMonitor
String font
UISettings(Properties props) {
lnf = props.getProperty("lnf", "system")
showMonitor = Boolean.parseBoolean(props.getProperty("showMonitor", "true"))
font = props.getProperty("font",null)
}
void write(OutputStream out) throws IOException {
Properties props = new Properties()
props.setProperty("lnf", lnf)
props.setProperty("showMonitor", showMonitor)
if (font != null)
props.setProperty("font", font)
props.store(out, "UI Properties")
}
}