diff options
author | geronimo <geronimo013@gmx.de> | 2012-08-18 17:56:25 +0200 |
---|---|---|
committer | geronimo <geronimo013@gmx.de> | 2012-08-18 17:56:25 +0200 |
commit | 8a5e0576efd267ee9acb4e74bb482d3513eb0012 (patch) | |
tree | 05f677988a7a2dd6ba70683d287ef8b3c4137800 /cmpcj/src/de/schwarzrot/control/config | |
parent | 4866f2c251513937ec7745eda248b5ee8e6d083b (diff) | |
download | cmp-master.tar.gz cmp-master.tar.bz2 |
worked out missing messages, extended delete genre support to non-empty genres, worked out dark color schemeHEADmaster
Diffstat (limited to 'cmpcj/src/de/schwarzrot/control/config')
4 files changed, 114 insertions, 14 deletions
diff --git a/cmpcj/src/de/schwarzrot/control/config/CMPUIDark.java b/cmpcj/src/de/schwarzrot/control/config/CMPUIDark.java new file mode 100644 index 0000000..237980d --- /dev/null +++ b/cmpcj/src/de/schwarzrot/control/config/CMPUIDark.java @@ -0,0 +1,53 @@ +package de.schwarzrot.control.config; + + +import java.awt.Color; +import java.util.HashMap; +import java.util.Map; +import javax.swing.UIManager; +import de.schwarzrot.control.app.UIDefaults; + + +public class CMPUIDark implements UIDefaults { + private static final Color DarkBlue; + private static final Map<String, Color> theme; + + + public void apply() { + for (String key : theme.keySet()) + UIManager.put(key, theme.get(key)); + } + + + public Color getColor(String key) { + if (theme.containsKey(key)) + return theme.get(key); + Object rv = UIManager.get(key); + + if (rv instanceof Color) + return (Color) rv; + return Color.GRAY; + } + + static { + DarkBlue = new Color(0, 0, 50); + theme = new HashMap<String, Color>(); + + theme.put("control", Color.BLACK); // Dialog, Panel, defaults + theme.put("nimbusBase", Color.BLUE); + theme.put("nimbusBlueGrey", Color.DARK_GRAY); + theme.put("nimbusBorder", Color.BLACK); + theme.put("nimbusFocus", Color.CYAN); + theme.put("nimbusLightBackground", Color.BLACK); // Tree, Textfield + theme.put("Table.alternateRowColor", DarkBlue); + theme.put("Table[Enabled+Selected].textForeground", Color.CYAN); + theme.put("Tree.selectionForeground", Color.CYAN); // Tree selected Text + theme.put("info", Color.BLUE); // info background + theme.put("text", Color.WHITE); // inactive dockable tabs foreground (includes textForeground, menuText, infoText) + theme.put("menu", Color.DARK_GRAY); // inactive dockable tabs background + theme.put("nimbusSelectionBackground", Color.BLUE); + theme.put("nimbusSelection", Color.BLUE); // active dockable tabs background + theme.put("menuText", Color.YELLOW); // inactive dockable tabs foreground + theme.put("textForeground", Color.WHITE); // standard Text + } +} diff --git a/cmpcj/src/de/schwarzrot/control/config/CMPUIDefaults.java b/cmpcj/src/de/schwarzrot/control/config/CMPUIDefaults.java new file mode 100644 index 0000000..6c6ed3f --- /dev/null +++ b/cmpcj/src/de/schwarzrot/control/config/CMPUIDefaults.java @@ -0,0 +1,36 @@ +package de.schwarzrot.control.config; + + +import java.awt.Color; +import java.util.HashMap; +import java.util.Map; +import javax.swing.UIManager; +import de.schwarzrot.control.app.UIDefaults; + + +public class CMPUIDefaults implements UIDefaults { + private static final Map<String, Color> theme; + + + @Override + public void apply() { + for (String key : theme.keySet()) + UIManager.put(key, theme.get(key)); + } + + + @Override + public Color getColor(String key) { + if (theme.containsKey(key)) + return theme.get(key); + Object rv = UIManager.get(key); + + if (rv instanceof Color) + return (Color) rv; + return Color.GRAY; + } + + static { + theme = new HashMap<String, Color>(); + } +} diff --git a/cmpcj/src/de/schwarzrot/control/config/ConfigDialog.java b/cmpcj/src/de/schwarzrot/control/config/ConfigDialog.java index 32bd808..0f28610 100644 --- a/cmpcj/src/de/schwarzrot/control/config/ConfigDialog.java +++ b/cmpcj/src/de/schwarzrot/control/config/ConfigDialog.java @@ -30,13 +30,14 @@ import java.awt.Dimension; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.swing.AbstractAction; import javax.swing.JComponent; import javax.swing.JScrollPane; -import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.KeyStroke; import javax.swing.ListSelectionModel; @@ -53,6 +54,7 @@ import ca.odell.glazedlists.swing.DefaultEventTableModel; import de.schwarzrot.base.dock.BasicDockable; import de.schwarzrot.base.util.AbstractDialog; import de.schwarzrot.base.util.ApplicationServiceProvider; +import de.schwarzrot.control.app.UIDefaults; import de.schwarzrot.control.table.PlayerDefinitionTableFormat; import de.schwarzrot.control.table.ServerDefinitionTableFormat; import de.schwarzrot.media.domain.AbstractMediaNode; @@ -69,13 +71,22 @@ public class ConfigDialog extends AbstractDialog implements WindowProvider { event.forbid(); } } + private class WindowListener extends WindowAdapter { + @Override + public void windowOpened(WindowEvent e) { + System.out.println("window opened ..."); + servers.toFront(); + } + } public ConfigDialog(Window parent) { super(parent, true, DialogMode.CANCEL_APPROVE, Orientation.Right); config = ApplicationServiceProvider.getService(Config.class); listeners = new ArrayList<WindowProviderListener>(); + theme = ApplicationServiceProvider.getService(UIDefaults.class); setFixedSize(new Dimension(520, 320)); + this.addWindowListener(new WindowListener()); } @@ -86,16 +97,6 @@ public class ConfigDialog extends AbstractDialog implements WindowProvider { } - public JComponent create_Old_ContentPane() { - JTabbedPane rv = new JTabbedPane(); - - rv.addTab("server", createServerTable()); - rv.addTab("player", createPlayerTable()); - - return rv; - } - - @Override public JComponent createContentPane() { CControl docking = new CControl(this); @@ -104,10 +105,10 @@ public class ConfigDialog extends AbstractDialog implements WindowProvider { docking.setTheme(ThemeMap.KEY_ECLIPSE_THEME); docking.getController().getRelocator() .addVetoableDockRelocatorListener(new TabbedVetoableDockRelocatorListener()); - BasicDockable servers = new BasicDockable("servers", msgBundle.getMessage(getClass().getSimpleName() - + ".servers"), createServerTable()); BasicDockable players = new BasicDockable("players", msgBundle.getMessage(getClass().getSimpleName() + ".players"), createPlayerTable()); + servers = new BasicDockable("servers", msgBundle.getMessage(getClass().getSimpleName() + ".servers"), + createServerTable()); servers.setMinimizable(false); servers.setExternalizable(false); @@ -115,8 +116,9 @@ public class ConfigDialog extends AbstractDialog implements WindowProvider { players.setMinimizable(false); players.setExternalizable(false); players.setMaximizable(false); - grid.add(0, 0, 1, 1, players); grid.add(0, 0, 1, 1, servers); + grid.add(0, 0, 1, 1, players); + grid.select(0, 0, 1, 1, servers); docking.getContentArea().deploy(grid); return docking.getContentArea(); @@ -162,6 +164,8 @@ public class ConfigDialog extends AbstractDialog implements WindowProvider { } } playerTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + playerTable.setSelectionBackground(theme.getColor("Table[Enabled+Selected].textBackground")); + playerTable.setSelectionForeground(theme.getColor("Table[Enabled+Selected].textForeground")); return playerTableScrollPane; } @@ -201,6 +205,8 @@ public class ConfigDialog extends AbstractDialog implements WindowProvider { }); serverTable.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT, 0), "createServerDefinition"); serverTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + serverTable.setSelectionBackground(theme.getColor("Table[Enabled+Selected].textBackground")); + serverTable.setSelectionForeground(theme.getColor("Table[Enabled+Selected].textForeground")); return serverTableScrollPane; } @@ -223,5 +229,7 @@ public class ConfigDialog extends AbstractDialog implements WindowProvider { private EventList<MediaServer> serverDefinitions; private EventList<PlayerDefinition> playerDefinitions; private List<WindowProviderListener> listeners; + private BasicDockable servers; + private UIDefaults theme; private Config config; } diff --git a/cmpcj/src/de/schwarzrot/control/config/ConfigFactory.java b/cmpcj/src/de/schwarzrot/control/config/ConfigFactory.java index edf438a..eb53b4f 100644 --- a/cmpcj/src/de/schwarzrot/control/config/ConfigFactory.java +++ b/cmpcj/src/de/schwarzrot/control/config/ConfigFactory.java @@ -120,6 +120,9 @@ public class ConfigFactory { } } } + } else if (key.compareToIgnoreCase("style") == 0) { + if (value.compareToIgnoreCase("dark") == 0) + rv.setUseDarkStyle(true); } else if (key.compareToIgnoreCase("size") == 0) { String[] parts = value.split("\\s*x\\s*"); |