public JComponent createJComponent(ViewerFactory factory) {
ClientResource cr = factory.getClientResource();
CFJTabbedPane tabbedPane = new CFJTabbedPane(cr);
try {
JPanel personPanel = new ArrayPanel(false, ArrayLayout.FULL_SIZE);
JComponent personEditor = factory.createDefaultEditor(memberModel.getPerson()).getJComponent();
personPanel.add(personEditor);
personPanel.add(createFieldEditor(MemberModel.FIELD_TYPE, factory));
tabbedPane.addTab(PersonModel.FIELD_PERSON, createTabComponent(personPanel));
DataModel addressList = memberModel.getChild(AddressListModel.FIELD_ADDRESS_LIST);
tabbedPane.addTab(AddressListModel.FIELD_ADDRESS_LIST, createTabComponent(factory.createDefaultEditor(addressList).getJComponent()));
DataModel phoneList = memberModel.getChild(PhoneListModel.FIELD_PHONE_LIST);
tabbedPane.addTab(PhoneListModel.FIELD_PHONE_LIST, createTabComponent(factory.createDefaultEditor(phoneList).getJComponent()));