long start = System.currentTimeMillis();
List<TabDTO> tabDtos = new ArrayList<TabDTO>();
List<Tab> tabs = inPerson.getTabs(TabGroupType.START);
for (Tab tab : tabs)
{
TabDTO tdto = new TabDTO();
tdto.setId(tab.getId());
tdto.setTabIndex(tab.getTabIndex());
tdto.setTabLayout(tab.getTabLayout());
tdto.setTabName(tab.getTabName());
List<GadgetDTO> gadgetDtos = new ArrayList<GadgetDTO>();
for (Gadget gadget : tab.getGadgets())
{
// create gadget dto from gadget.
GadgetDTO gdto = new GadgetDTO();
gdto.setId(gadget.getId());
gdto.setMaximized(gadget.isMaximized());
gdto.setMinimized(gadget.isMinimized());
gdto.setZoneIndex(gadget.getZoneIndex());
gdto.setZoneNumber(gadget.getZoneNumber());
gdto.setGadgetUserPref(gadget.getGadgetUserPref());
// create gadget definintion dto.
GadgetDefinition gadgetDef = gadget.getGadgetDefinition();
GadgetDefinitionDTO gadgetDefDto = new GadgetDefinitionDTO();
gadgetDefDto.setId(gadgetDef.getId());
gadgetDefDto.setUrl(gadgetDef.getUrl());
gadgetDefDto.setUuid(gadgetDef.getUUID());
// set gadget def dto in gadget dto.
gdto.setGadgetDefinition(gadgetDefDto);
// add to collection.
gadgetDtos.add(gdto);
}
// set gadgets for tab.
tdto.setGadgets(gadgetDtos);
// add tab to list of tabs.
tabDtos.add(tdto);
}