@Override protected void afterSecondBootWithOverride(PortalContainer container) throws Exception { // RequestLifeCycle.begin(container); DataStorage dataStorage = (DataStorage) container.getComponentInstanceOfType(DataStorage.class); PortalConfig portal = dataStorage.getPortalConfig("classic"); Container layout = portal.getPortalLayout(); assertEquals(1, layout.getChildren().size()); Application<Portlet> layoutPortlet = (Application<Portlet>) layout.getChildren().get(0); assertEquals("site1/layout", dataStorage.getId(layoutPortlet.getState())); // Page home = dataStorage.getPage("portal::classic::home"); assertNotNull(home); assertEquals("site 1", home.getTitle()); Page page1 = dataStorage.getPage("portal::classic::page1"); assertNotNull(page1); assertEquals("site 1", page1.getTitle()); Page page2 = dataStorage.getPage("portal::classic::page2"); assertNotNull(page2); assertEquals("site 2", page2.getTitle()); Page dashboard1 = dataStorage.getPage("user::root::dashboard1"); assertNotNull(dashboard1); assertEquals("site 2", dashboard1.getTitle()); RequestLifeCycle.end(); }
public static void toUIPortal(UIPortal uiPortal, PortalConfig model) throws Exception { uiPortal.setSiteKey(new SiteKey(model.getType(), model.getName())); uiPortal.setStorageId(model.getStorageId()); uiPortal.setName(model.getName()); uiPortal.setId("UIPortal"); // uiPortal.setFactoryId(model.getFactoryId()); uiPortal.setModifiable(model.isModifiable()); uiPortal.setLabel(model.getLabel()); uiPortal.setDescription(model.getDescription()); uiPortal.setLocale(model.getLocale()); uiPortal.setSkin(model.getSkin()); uiPortal.setAccessPermissions(model.getAccessPermissions()); uiPortal.setEditPermission(model.getEditPermission()); uiPortal.setProperties(model.getProperties()); uiPortal.setRedirects(model.getPortalRedirects()); Container layout = model.getPortalLayout(); uiPortal.setMoveAppsPermissions(layout.getMoveAppsPermissions()); uiPortal.setMoveContainersPermissions(layout.getMoveContainersPermissions()); List<ModelObject> children = layout.getChildren(); if (children != null) { for (Object child : children) { buildUIContainer(uiPortal, child, false); } } }
private static void buildUIContainer(UIContainer uiContainer, Object model, boolean dashboard) throws Exception { UIComponent uiComponent = null; WebuiRequestContext context = Util.getPortalRequestContext(); if (model instanceof SiteBody) { UISiteBody uiSiteBody = uiContainer.createUIComponent(context, UISiteBody.class, null, null); uiSiteBody.setStorageId(((SiteBody) model).getStorageId()); uiComponent = uiSiteBody; } else if (model instanceof PageBody) { UIPageBody uiPageBody = uiContainer.createUIComponent(context, UIPageBody.class, null, null); uiPageBody.setStorageId(((PageBody) model).getStorageId()); uiComponent = uiPageBody; } else if (model instanceof Application) { Application application = (Application) model; if (dashboard && application.getType() == ApplicationType.GADGET) { Application<Gadget> ga = (Application<Gadget>) application; UIGadget uiGadget = uiContainer.createUIComponent(context, UIGadget.class, null, null); uiGadget.setStorageId(application.getStorageId()); toUIGadget(uiGadget, ga); uiComponent = uiGadget; } else { UIPortlet uiPortlet = uiContainer.createUIComponent(context, UIPortlet.class, null, null); uiPortlet.setStorageId(application.getStorageId()); if (application.getStorageName() != null) { uiPortlet.setStorageName(application.getStorageName()); } toUIPortlet(uiPortlet, application); uiComponent = uiPortlet; } } else if (model instanceof Container) { Container container = (Container) model; UIComponentFactory<? extends UIContainer> factory = UIComponentFactory.getInstance(UIContainer.class); UIContainer uiTempContainer = factory.createUIComponent(container.getFactoryId(), context); if (uiTempContainer == null) { log.warn( "Can't find container factory for: {}. Default container is used", container.getFactoryId()); uiTempContainer = uiContainer.createUIComponent(context, UIContainer.class, null, null); } toUIContainer(uiTempContainer, (Container) model, dashboard); uiComponent = uiTempContainer; } uiContainer.addChild(uiComponent); }
private static void buildUIContainer(UIContainer uiContainer, Object model, boolean dashboard) throws Exception { UIComponent uiComponent = null; WebuiRequestContext context = Util.getPortalRequestContext(); if (model instanceof SiteBody) { UISiteBody uiSiteBody = uiContainer.createUIComponent(context, UISiteBody.class, null, null); uiSiteBody.setStorageId(((SiteBody) model).getStorageId()); uiComponent = uiSiteBody; } else if (model instanceof PageBody) { UIPageBody uiPageBody = uiContainer.createUIComponent(context, UIPageBody.class, null, null); uiPageBody.setStorageId(((PageBody) model).getStorageId()); uiComponent = uiPageBody; } else if (model instanceof Application) { Application application = (Application) model; if (dashboard && application.getType() == ApplicationType.GADGET) { Application<Gadget> ga = (Application<Gadget>) application; UIGadget uiGadget = uiContainer.createUIComponent(context, UIGadget.class, null, null); uiGadget.setStorageId(application.getStorageId()); toUIGadget(uiGadget, ga); uiComponent = uiGadget; } else { UIPortlet uiPortlet = uiContainer.createUIComponent(context, UIPortlet.class, null, null); uiPortlet.setStorageId(application.getStorageId()); if (application.getStorageName() != null) { uiPortlet.setStorageName(application.getStorageName()); } toUIPortlet(uiPortlet, application); uiComponent = uiPortlet; } } else if (model instanceof Container) { Container container = (Container) model; UIContainer uiTempContainer; if (UITabContainer.TAB_CONTAINER.equals(container.getFactoryId())) { uiTempContainer = uiContainer.createUIComponent(context, UITabContainer.class, null, null); } else if (UIColumnContainer.COLUMN_CONTAINER.equals(container.getFactoryId())) { uiTempContainer = uiContainer.createUIComponent(context, UIColumnContainer.class, null, null); } else { uiTempContainer = uiContainer.createUIComponent(context, UIContainer.class, null, null); } toUIContainer(uiTempContainer, (Container) model, dashboard); uiComponent = uiTempContainer; } uiContainer.addChild(uiComponent); }
/** * Find app instances by id. * * @param container the container * @param applicationId the application id * @return the application */ public static Application<?> findAppInstancesById(Container container, String applicationId) { ArrayList<ModelObject> chidren = container.getChildren(); if (chidren == null) return null; for (ModelObject object : chidren) { if (object instanceof Application) { Application<?> app = Application.class.cast(object); if (app.getId().equals(applicationId)) { application = app; } } else if (object instanceof Container) { Container child = Container.class.cast(object); findAppInstancesById(child, applicationId); } } return application; }
/** * Find app instances by container and name. * * @param container the container * @param applicationName the application name * @param results the results */ private static void findAppInstancesByContainerAndName( Container container, String applicationName, List<String> results) { ArrayList<ModelObject> chidren = container.getChildren(); if (chidren == null) return; for (ModelObject object : chidren) { if (object instanceof Application) { Application<?> application = Application.class.cast(object); if (application.getId().contains(applicationName)) { results.add(application.getId()); } } else if (object instanceof Container) { Container child = Container.class.cast(object); findAppInstancesByContainerAndName(child, applicationName, results); } } }
/** * Removed app instances in container by names. * * @param container the container * @param removingApplicationIds the removing application ids */ private static void removedAppInstancesInContainerByNames( Container container, List<String> removingApplicationIds) { ArrayList<ModelObject> childrenTmp = new ArrayList<ModelObject>(); ArrayList<ModelObject> chidren = container.getChildren(); if (chidren == null) return; for (ModelObject object : chidren) { if (object instanceof Application) { Application<?> application = Application.class.cast(object); if (!removingApplicationIds.contains(application.getId())) { childrenTmp.add(object); } } else if (object instanceof Container) { Container child = Container.class.cast(object); removedAppInstancesInContainerByNames(child, removingApplicationIds); childrenTmp.add(child); } } }
public static void toContainer(Container model, UIContainer uiContainer) { model.setId(uiContainer.getId()); model.setName(uiContainer.getName()); model.setTitle(uiContainer.getTitle()); model.setIcon(uiContainer.getIcon()); model.setDescription(uiContainer.getDescription()); model.setHeight(uiContainer.getHeight()); model.setWidth(uiContainer.getWidth()); model.setTemplate(uiContainer.getTemplate()); model.setFactoryId(uiContainer.getFactoryId()); model.setAccessPermissions(uiContainer.getAccessPermissions()); model.setMoveAppsPermissions(uiContainer.getMoveAppsPermissions()); model.setMoveContainersPermissions(uiContainer.getMoveContainersPermissions()); List<UIComponent> uiChildren = uiContainer.getChildren(); if (uiChildren == null) return; ArrayList<ModelObject> children = new ArrayList<ModelObject>(); for (UIComponent child : uiChildren) { ModelObject component = buildModelObject(child); if (component != null) children.add(component); } model.setChildren(children); }
private static void toUIContainer(UIContainer uiContainer, Container model, boolean dashboard) throws Exception { uiContainer.setStorageId(model.getStorageId()); uiContainer.setId(model.getId()); uiContainer.setWidth(model.getWidth()); uiContainer.setHeight(model.getHeight()); uiContainer.setTitle(model.getTitle()); uiContainer.setIcon(model.getIcon()); uiContainer.setDescription(model.getDescription()); uiContainer.setFactoryId(model.getFactoryId()); uiContainer.setName(model.getName()); uiContainer.setTemplate(model.getTemplate()); if (model.getAccessPermissions() != null) { uiContainer.setAccessPermissions(model.getAccessPermissions()); } uiContainer.setMoveAppsPermissions(model.getMoveAppsPermissions()); uiContainer.setMoveContainersPermissions(model.getMoveContainersPermissions()); List<ModelObject> children = model.getChildren(); if (children == null) return; for (Object child : children) { buildUIContainer(uiContainer, child, dashboard); } }