wip on adding UI options
This commit is contained in:
@@ -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() {
|
||||||
|
23
gui/src/main/groovy/com/muwire/gui/UISettings.groovy
Normal file
23
gui/src/main/groovy/com/muwire/gui/UISettings.groovy
Normal 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")
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user