@Override
 protected JPanel createPanel(Object value) {
   ObjectPanel opanel =
       new ObjectPanel(
           _ctx,
           _property.getComponentTypeLabel(),
           _property.getComponentSubtypes(),
           _lineage,
           _object);
   opanel.setValue(value);
   opanel.addChangeListener(ObjectPanelArrayListEditor.this);
   return opanel;
 }
 @Override
 protected void updatePanel(EntryPanel panel, Object value) {
   ObjectPanel opanel = (ObjectPanel) panel.getContent();
   opanel.setOuter(_object);
   opanel.setValue(value);
 }
 // documentation inherited from interface ChangeListener
 public void stateChanged(ChangeEvent event) {
   ObjectPanel panel = (ObjectPanel) event.getSource();
   int idx = ((EntryPanel) panel.getParent()).getIndex();
   setValue(idx, panel.getValue());
   fireStateChanged(true);
 }