X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fui%2FConfigItemColor.java;h=500efff4b3b802831ad584550ea183f0d0bb9195;hb=5584adbbbf5444c0039fed2b35dc7d5bb57b71b1;hp=cbb80843fb82850008fb138e678b32d172284d0f;hpb=d5026c096121da14c20d69893520594a36d088bb;p=nikiroo-utils.git diff --git a/src/be/nikiroo/utils/ui/ConfigItemColor.java b/src/be/nikiroo/utils/ui/ConfigItemColor.java index cbb8084..500efff 100644 --- a/src/be/nikiroo/utils/ui/ConfigItemColor.java +++ b/src/be/nikiroo/utils/ui/ConfigItemColor.java @@ -5,6 +5,8 @@ import java.awt.Color; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; import java.awt.image.BufferedImage; import java.util.HashMap; import java.util.Map; @@ -19,10 +21,11 @@ import javax.swing.JTextField; import be.nikiroo.utils.resources.MetaInfo; -public class ConfigItemColor> extends ConfigItem { +class ConfigItemColor> extends ConfigItem { private static final long serialVersionUID = 1L; private Map fields = new HashMap(); + private Map panels = new HashMap(); /** * Create a new {@link ConfigItemColor} for the given {@link MetaInfo}. @@ -46,7 +49,7 @@ public class ConfigItemColor> extends ConfigItem { @Override protected Object getFromInfo(int item) { - return info.getString(item, false); + return info.getString(item, true); } @Override @@ -55,7 +58,11 @@ public class ConfigItemColor> extends ConfigItem { if (field != null) { field.setText(value == null ? "" : value.toString()); } - // TODO: change color too + + JButton colorWheel = panels.get(getField(item)); + if (colorWheel != null) { + colorWheel.setIcon(getIcon(17, getFromInfoColor(item))); + } } @Override @@ -63,6 +70,16 @@ public class ConfigItemColor> extends ConfigItem { info.setString((String) value, item); } + /** + * Get the colour currently present in the linked info for the given item. + * + * @param item + * the item number to get for an array of values, or -1 to get + * the whole value (has no effect if {@link MetaInfo#isArray()} + * is FALSE) + * + * @return a colour + */ private int getFromInfoColor(int item) { Integer color = info.getColor(item, true); if (color == null) { @@ -73,7 +90,7 @@ public class ConfigItemColor> extends ConfigItem { } @Override - protected JComponent createField(final int item) { + protected JComponent createEmptyField(final int item) { final JPanel pane = new JPanel(new BorderLayout()); final JTextField field = new JTextField(); @@ -94,10 +111,20 @@ public class ConfigItemColor> extends ConfigItem { } }); + field.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + info.setString(field.getText() + e.getKeyChar(), item); + int color = getFromInfoColor(item); + colorWheel.setIcon(getIcon(17, color)); + } + }); + pane.add(colorWheel, BorderLayout.WEST); pane.add(field, BorderLayout.CENTER); fields.put(pane, field); + panels.put(pane, colorWheel); return pane; }