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.Core
import com.muwire.core.MuWireSettings import com.muwire.core.MuWireSettings
import com.muwire.gui.UISettings
import javax.annotation.Nonnull import javax.annotation.Nonnull
import javax.inject.Inject import javax.inject.Inject
import javax.swing.JTable import javax.swing.JTable
import javax.swing.LookAndFeel
import static griffon.util.GriffonApplicationUtils.isMacOSX import static griffon.util.GriffonApplicationUtils.isMacOSX
import static groovy.swing.SwingBuilder.lookAndFeel import static groovy.swing.SwingBuilder.lookAndFeel
@@ -38,19 +40,29 @@ class Initialize extends AbstractLifecycleHandler {
application.context.put("muwire-home", home.getAbsolutePath()) application.context.put("muwire-home", home.getAbsolutePath())
def guiPropsFile = new File(home, "gui.properties") def guiPropsFile = new File(home, "gui.properties")
UISettings uiSettings
if (guiPropsFile.exists()) { if (guiPropsFile.exists()) {
Properties props = new Properties() Properties props = new Properties()
guiPropsFile.withInputStream { props.load(it) } guiPropsFile.withInputStream { props.load(it) }
log.info("settting user-specified lnf ${props['lnf']}") uiSettings = new UISettings(props)
lookAndFeel(props["lnf"])
log.info("settting user-specified lnf $uiSettings.lnf")
lookAndFeel(uiSettings.lnf)
} else { } else {
Properties props = new Properties()
uiSettings = new UISettings(props)
log.info "will try default lnfs" log.info "will try default lnfs"
if (isMacOSX()) { if (isMacOSX()) {
uiSettings.lnf = "nimbus"
lookAndFeel('nimbus') // otherwise the file chooser doesn't open??? lookAndFeel('nimbus') // otherwise the file chooser doesn't open???
} else { } 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() { 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")
}
}