summaryrefslogtreecommitdiff
path: root/cmpcj/src/de/schwarzrot/control/config
diff options
context:
space:
mode:
authorgeronimo <geronimo013@gmx.de>2012-08-18 17:56:25 +0200
committergeronimo <geronimo013@gmx.de>2012-08-18 17:56:25 +0200
commit8a5e0576efd267ee9acb4e74bb482d3513eb0012 (patch)
tree05f677988a7a2dd6ba70683d287ef8b3c4137800 /cmpcj/src/de/schwarzrot/control/config
parent4866f2c251513937ec7745eda248b5ee8e6d083b (diff)
downloadcmp-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')
-rw-r--r--cmpcj/src/de/schwarzrot/control/config/CMPUIDark.java53
-rw-r--r--cmpcj/src/de/schwarzrot/control/config/CMPUIDefaults.java36
-rw-r--r--cmpcj/src/de/schwarzrot/control/config/ConfigDialog.java36
-rw-r--r--cmpcj/src/de/schwarzrot/control/config/ConfigFactory.java3
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*");