Re: UI Komponenten mit zusätzlicher Status Infromation



Wolfgang Rostek schrieb:
Ich hätte aber lieber folgendes
public class JCheckBoxInheritable extends mypackage.JCheckBox

Ginge dann z.B. so:

public interface Inheritable {
boolean isInherited();
void setInherited(boolean b);
}

public class InheritableManager {
private static WeakReferenceMap map = new WeakReferenceMap();
private InheritableManager() {
}
public static void register(Inheritable i) {
map.put(i, new InheritableConstraints());
}
public static void unregister(Inheritable i) {
map.remove(i);
}
private InheritableConstraints getConstraints(Inheritable i) {
return (InheritableConstraints)map.get(i);
}
public boolean isInherited(Inheritable i) {
InheritableConstraints c = getConstraints(i);
return c.inherited;
}
public void setInherited(Inheritable i, boolean b) {
InheritableConstraints c = getConstraints(i);
c.inherited = b;
if (c instanceof JComponent) {
JComponent j = (JComponent)c;
j.setBorder(b ? ... : ...);
}
}
private static class InheritableConstraints {
...
}
}

public class JCheckBoxInheritable extends mypackage.JCheckBox implements Inheritable {
public JCheckBoxInheritable() {
InheritableManager.register(this);
}
public boolean isInherited() {
return InheritableManager.isInherited(this);
}
public void setInherited(boolean b) {
InheritableManager.setInherited(this, b);
... (PropertyChangeEvent etc.)
}
}
.