git://git.nikiroo.be
/
fanfix.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix CacheMemory stackoverflow
[fanfix.git]
/
src
/
be
/
nikiroo
/
utils
/
ui
/
ConfigItemColor.java
diff --git
a/src/be/nikiroo/utils/ui/ConfigItemColor.java
b/src/be/nikiroo/utils/ui/ConfigItemColor.java
index cbb80843fb82850008fb138e678b32d172284d0f..951ff45a22b48ab4108ea4f00ea29bf3a920c2c9 100644
(file)
--- 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.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;
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;
import be.nikiroo.utils.resources.MetaInfo;
-
public
class ConfigItemColor<E extends Enum<E>> extends ConfigItem<E> {
+class ConfigItemColor<E extends Enum<E>> extends ConfigItem<E> {
private static final long serialVersionUID = 1L;
private Map<JComponent, JTextField> fields = new HashMap<JComponent, JTextField>();
private static final long serialVersionUID = 1L;
private Map<JComponent, JTextField> fields = new HashMap<JComponent, JTextField>();
+ private Map<JComponent, JButton> panels = new HashMap<JComponent, JButton>();
/**
* Create a new {@link ConfigItemColor} for the given {@link MetaInfo}.
/**
* Create a new {@link ConfigItemColor} for the given {@link MetaInfo}.
@@
-46,7
+49,7
@@
public class ConfigItemColor<E extends Enum<E>> extends ConfigItem<E> {
@Override
protected Object getFromInfo(int item) {
@Override
protected Object getFromInfo(int item) {
- return
info.getString(item, fals
e);
+ return
getInfo().getString(item, tru
e);
}
@Override
}
@Override
@@
-55,16
+58,30
@@
public class ConfigItemColor<E extends Enum<E>> extends ConfigItem<E> {
if (field != null) {
field.setText(value == null ? "" : value.toString());
}
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
protected void setToInfo(Object value, int item) {
}
@Override
protected void setToInfo(Object value, int item) {
-
info
.setString((String) value, item);
+
getInfo()
.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) {
private int getFromInfoColor(int item) {
- Integer color =
info
.getColor(item, true);
+ Integer color =
getInfo()
.getColor(item, true);
if (color == null) {
return new Color(255, 255, 255, 255).getRGB();
}
if (color == null) {
return new Color(255, 255, 255, 255).getRGB();
}
@@
-73,7
+90,7
@@
public class ConfigItemColor<E extends Enum<E>> extends ConfigItem<E> {
}
@Override
}
@Override
- protected JComponent createField(final int item) {
+ protected JComponent create
Empty
Field(final int item) {
final JPanel pane = new JPanel(new BorderLayout());
final JTextField field = new JTextField();
final JPanel pane = new JPanel(new BorderLayout());
final JTextField field = new JTextField();
@@
-85,19
+102,30
@@
public class ConfigItemColor<E extends Enum<E>> extends ConfigItem<E> {
int icol = getFromInfoColor(item);
Color initialColor = new Color(icol, true);
Color newColor = JColorChooser.showDialog(ConfigItemColor.this,
int icol = getFromInfoColor(item);
Color initialColor = new Color(icol, true);
Color newColor = JColorChooser.showDialog(ConfigItemColor.this,
-
info
.getName(), initialColor);
+
getInfo()
.getName(), initialColor);
if (newColor != null) {
if (newColor != null) {
- info.setColor(newColor.getRGB(), item);
- field.setText(info.getString(item, false));
- colorWheel.setIcon(getIcon(17, info.getColor(item, true)));
+ getInfo().setColor(newColor.getRGB(), item);
+ field.setText(getInfo().getString(item, false));
+ colorWheel.setIcon(getIcon(17,
+ getInfo().getColor(item, true)));
}
}
});
}
}
});
+ field.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyTyped(KeyEvent e) {
+ getInfo().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);
pane.add(colorWheel, BorderLayout.WEST);
pane.add(field, BorderLayout.CENTER);
fields.put(pane, field);
+ panels.put(pane, colorWheel);
return pane;
}
return pane;
}