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); }
/** * Fill the UI component with both information from the persistent model and some coming from the * portlet.xml defined by the JSR 286 specification */ private static <S> void toUIPortlet(UIPortlet<S, ?> uiPortlet, Application<S> model) { // PortletState<S> portletState = new PortletState<S>(model.getState(), model.getType()); /* * Fill UI component object with info from the XML file that persist portlet information */ uiPortlet.setWidth(model.getWidth()); uiPortlet.setHeight(model.getHeight()); uiPortlet.setState(portletState); uiPortlet.setTitle(model.getTitle()); uiPortlet.setIcon(model.getIcon()); uiPortlet.setDescription(model.getDescription()); uiPortlet.setShowInfoBar(model.getShowInfoBar()); uiPortlet.setShowWindowState(model.getShowApplicationState()); uiPortlet.setShowPortletMode(model.getShowApplicationMode()); uiPortlet.setProperties(model.getProperties()); uiPortlet.setTheme(model.getTheme()); if (model.getAccessPermissions() != null) uiPortlet.setAccessPermissions(model.getAccessPermissions()); uiPortlet.setModifiable(model.isModifiable()); Portlet portlet = uiPortlet.getProducedOfferedPortlet(); if (portlet == null || portlet.getInfo() == null) return; PortletInfo portletInfo = portlet.getInfo(); /* * Define which portlet modes the portlet supports and hence should be shown in the portlet info bar */ Set<ModeInfo> modes = portletInfo.getCapabilities().getModes(MediaType.create("text/html")); List<String> supportModes = new ArrayList<String>(); for (ModeInfo modeInfo : modes) { String modeName = modeInfo.getModeName().toLowerCase(); if ("config".equals(modeInfo.getModeName())) { supportModes.add(modeName); } else { supportModes.add(modeName); } } if (supportModes.size() > 1) supportModes.remove("view"); uiPortlet.setSupportModes(supportModes); }