} catch (Exception ex) { System.err.println(ex.getMessage()); m_ElementEditor = null; }
  private void updateEditorType(Object o) {    // Determine if the current object is an array    m_ElementEditor = null; m_ListModel = null;    removeAll();    if ((o != null) && (o.getClass().isArray())) {      Class elementClass = o.getClass().getComponentType();          PropertyEditor editor = PropertyEditorManager.findEditor(elementClass);      Component view = null;      ListCellRenderer lcr = new DefaultListCellRenderer();      if (editor != null) {	if (editor instanceof GenericObjectEditor) {	  ((GenericObjectEditor) editor).setClassType(elementClass);	}	if (editor.isPaintable() && editor.supportsCustomEditor()) {	  view = new PropertyPanel(editor);	  lcr = new EditorListCellRenderer(editor.getClass(), elementClass);	} else if (editor.getTags() != null) {	  view = new PropertyValueSelector(editor);	} else if (editor.getAsText() != null) {	  view = new PropertyText(editor);	}      }      if (view == null) {	System.err.println("No property editor for class: "			   + elementClass.getName());      } else {	m_ElementEditor = editor;	// Create the ListModel and populate it	m_ListModel = new DefaultListModel();	m_ElementClass = elementClass;	for (int i = 0; i < Array.getLength(o); i++) {	  m_ListModel.addElement(Array.get(o,i));	}	m_ElementList.setCellRenderer(lcr);	m_ElementList.setModel(m_ListModel);	if (m_ListModel.getSize() > 0) {	  m_ElementList.setSelectedIndex(0);	  m_DeleteBut.setEnabled(true);	} else {	  m_DeleteBut.setEnabled(false);	}	try {	  if (m_ListModel.getSize() > 0) {	    m_ElementEditor.setValue(m_ListModel.getElementAt(0));	  } else {	    if (m_ElementEditor instanceof GenericObjectEditor) {	      ((GenericObjectEditor)m_ElementEditor).setDefaultValue();	    } else {	      m_ElementEditor.setValue(m_ElementClass.newInstance());	    }	  }	  	  JPanel panel = new JPanel();	  panel.setLayout(new BorderLayout());	  panel.add(view, BorderLayout.CENTER);	  panel.add(m_AddBut, BorderLayout.EAST);	  add(panel, BorderLayout.NORTH);	  add(new JScrollPane(m_ElementList), BorderLayout.CENTER);	  add(m_DeleteBut, BorderLayout.SOUTH);	  m_ElementEditor	    .addPropertyChangeListener(new PropertyChangeListener() {	    public void propertyChange(PropertyChangeEvent e) {	      repaint();	    }	  });	} catch (Exception ex) {	  System.err.println(ex.getMessage());	  m_ElementEditor = null;	}      }    }    if (m_ElementEditor == null) {      add(m_Label, BorderLayout.CENTER);    }    m_Support.firePropertyChange("", null, null);    validate();  }