@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();
  }
Ejemplo n.º 2
0
  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);
  }
Ejemplo n.º 4
0
  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);
  }
Ejemplo n.º 5
0
 /**
  * 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;
 }
Ejemplo n.º 6
0
 /**
  * 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);
     }
   }
 }
Ejemplo n.º 7
0
 /**
  * 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);
     }
   }
 }
Ejemplo n.º 8
0
  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);
  }
Ejemplo n.º 9
0
  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);
    }
  }