예제 #1
0
파일: Utils.java 프로젝트: canhpv/ecms
 /**
  * Checks if is edits the portlet in create page wizard.
  *
  * @return true, if is edits the portlet in create page wizard
  */
 public static boolean isEditPortletInCreatePageWizard() {
   UIPortalApplication portalApplication = Util.getUIPortalApplication();
   UIMaskWorkspace uiMaskWS = portalApplication.getChildById(UIPortalApplication.UI_MASK_WS_ID);
   // show maskworkpace is being in Portal page edit mode
   if (uiMaskWS.getWindowWidth() > 0 && uiMaskWS.getWindowHeight() < 0) return true;
   return false;
 }
예제 #2
0
    public void execute(final Event<UIPortletForm> event) throws Exception {
      UIPortletForm uiPortletForm = event.getSource();
      UIPortlet uiPortlet = uiPortletForm.getUIPortlet();
      UIFormInputIconSelector uiIconSelector =
          uiPortletForm.getChild(UIFormInputIconSelector.class);
      uiPortletForm.invokeSetBindingBean(uiPortlet);
      if (uiIconSelector.getSelectedIcon().equals("Default")) {
        uiPortlet.setIcon("PortletIcon");
      } else {
        uiPortlet.setIcon(uiIconSelector.getSelectedIcon());
      }
      UIFormInputThemeSelector uiThemeSelector =
          uiPortletForm.getChild(UIFormInputThemeSelector.class);
      uiPortlet.putSuitedTheme(
          null, uiThemeSelector.getChild(UIItemThemeSelector.class).getSelectedTheme());
      uiPortletForm.savePreferences();
      UIMaskWorkspace uiMaskWorkspace = uiPortletForm.getParent();
      PortalRequestContext pcontext = (PortalRequestContext) event.getRequestContext();
      uiMaskWorkspace.createEvent("Close", Phase.DECODE, pcontext).broadcast();
      if (uiPortletForm.hasEditMode()) {
        uiPortlet.setCurrentPortletMode(PortletMode.VIEW);
      }

      String width = uiPortletForm.getUIStringInput("width").getValue();
      if (width == null || width.length() == 0) {
        uiPortlet.setWidth(null);
      } else {
        if (!width.endsWith("px")) {
          width.concat("px");
        }
        uiPortlet.setWidth(width);
      }

      String height = uiPortletForm.getUIStringInput("height").getValue();
      if (height == null || height.length() == 0) {
        uiPortlet.setHeight(null);
      } else {
        if (!height.endsWith("px")) {
          height.concat("px");
        }
        uiPortlet.setHeight(height);
      }

      pcontext
          .getJavascriptManager()
          .addJavascript("eXo.portal.PortalComposer.toggleSaveButton();");
      UIPortalApplication uiPortalApp = uiPortlet.getAncestorOfType(UIPortalApplication.class);
      UIWorkingWorkspace uiWorkingWS =
          uiPortalApp.getChildById(UIPortalApplication.UI_WORKING_WS_ID);
      pcontext.addUIComponentToUpdateByAjax(uiWorkingWS);
      pcontext.ignoreAJAXUpdateOnPortlets(true);
    }
예제 #3
0
 public void execute(final Event<UIPortletForm> event) throws Exception {
   UIPortletForm uiPortletForm = event.getSource();
   UIPortlet uiPortlet = uiPortletForm.getUIPortlet();
   if (uiPortletForm.hasEditMode()) {
     uiPortlet.setCurrentPortletMode(PortletMode.VIEW);
   }
   UIPortalApplication uiPortalApp = Util.getUIPortalApplication();
   PortalRequestContext pcontext = (PortalRequestContext) event.getRequestContext();
   // add by Pham Dinh Tan
   UIMaskWorkspace uiMaskWorkspace = uiPortalApp.getChildById(UIPortalApplication.UI_MASK_WS_ID);
   uiMaskWorkspace.broadcast(event, Phase.DECODE);
   pcontext.ignoreAJAXUpdateOnPortlets(true);
 }
    public void execute(Event<UIPortlet> event) throws Exception {
      UIPortlet uiPortlet = event.getSource();
      UIPortalApplication uiApp = Util.getUIPortalApplication();
      UIMaskWorkspace uiMaskWS = uiApp.getChildById(UIPortalApplication.UI_MASK_WS_ID);
      UIPortletForm uiPortletForm = uiMaskWS.createUIComponent(UIPortletForm.class, null, null);

      if (uiPortletForm.setValues(uiPortlet) == false) {
        uiMaskWS.setUIComponent(null);
        WebuiRequestContext context = WebuiRequestContext.getCurrentInstance();
        context
            .getUIApplication()
            .addMessage(
                (new ApplicationMessage(
                    "UIPortlet.message.portletDeleted", null, ApplicationMessage.ERROR)));
      } else {
        uiMaskWS.setUpdated(true);
        uiMaskWS.setWindowSize(800, -1);
        event.getRequestContext().addUIComponentToUpdateByAjax(uiMaskWS);
      }
    }
예제 #5
0
  /**
   * Add Application to UiPage
   *
   * @param event
   * @throws Exception
   */
  private static void addApplicationToPage(Event<UIAddNewApplication> event, boolean atStartup)
      throws Exception {
    UIPortalApplication uiPortalApp = Util.getUIPortalApplication();
    UIPortal uiPortal = uiPortalApp.getShowedUIPortal();
    PortalRequestContext pcontext = Util.getPortalRequestContext();

    UIDesktopPage uiDesktopPage = uiPortal.findFirstComponentOfType(UIDesktopPage.class);
    if (uiDesktopPage == null) {
      pcontext.addUIComponentToUpdateByAjax(
          uiPortalApp.getChildById(UIPortalApplication.UI_WORKING_WS_ID));
      UIMaskWorkspace maskWorkspace = uiPortalApp.getChildById(UIPortalApplication.UI_MASK_WS_ID);
      maskWorkspace.createEvent("Close", Event.Phase.DECODE, event.getRequestContext()).broadcast();
      pcontext.setFullRender(true);
      return;
    }

    String applicationId = event.getRequestContext().getRequestParameter(UIComponent.OBJECTID);

    Application application = event.getSource().getApplication(applicationId);
    ApplicationType appType = application.getType();

    UIPortlet uiPortlet = uiDesktopPage.createUIComponent(UIPortlet.class, null, null);
    ApplicationState appState;

    // TODO: Check if there 's already a portlet window of this portlet. A CloneApplicationState
    // should be created in such case
    appState = new TransientApplicationState<Object>(application.getContentId());

    uiPortlet.setState(new PortletState(appState, appType));
    uiPortlet.setPortletInPortal(false);

    if (atStartup) {
      uiPortlet.getProperties().setProperty("appStatus", "HIDE");
    }

    String portletName = application.getApplicationName();
    String displayName = application.getDisplayName();
    if (displayName != null) {
      uiPortlet.setTitle(displayName);
    } else if (portletName != null) {
      uiPortlet.setTitle(portletName);
    }
    uiPortlet.setDescription(application.getDescription());
    List<String> accessPers = application.getAccessPermissions();
    String[] accessPermissions = accessPers.toArray(new String[accessPers.size()]);
    uiPortlet.setAccessPermissions(accessPermissions);

    // Add portlet to page
    uiDesktopPage.addChild(uiPortlet);

    if (uiDesktopPage.isModifiable()) {
      Page page = (Page) PortalDataMapper.buildModelObject(uiDesktopPage);
      if (page.getChildren() == null) {
        page.setChildren(new ArrayList<ModelObject>());
      }
      DataStorage dataService = uiPortalApp.getApplicationComponent(DataStorage.class);
      dataService.save(page);

      // Rebuild the uiPage to synchronize (storageId, storageName) mapping
      page = dataService.getPage(page.getPageId());
      page.setModifiable(true);
      uiDesktopPage.getChildren().clear();
      PortalDataMapper.toUIPage(uiDesktopPage, page);
    }

    UIWorkingWorkspace uiWorkingWS = uiPortalApp.getChildById(UIPortalApplication.UI_WORKING_WS_ID);
    pcontext.setFullRender(true);
    pcontext.addUIComponentToUpdateByAjax(uiWorkingWS);
  }
예제 #6
0
    public void execute(Event<UIPageForm> event) throws Exception {
      UIPageForm uiPageForm = event.getSource();
      UIPortalApplication uiPortalApp = uiPageForm.getAncestorOfType(UIPortalApplication.class);
      PortalRequestContext pcontext = Util.getPortalRequestContext();
      UIMaskWorkspace uiMaskWS = uiPortalApp.getChildById(UIPortalApplication.UI_MASK_WS_ID);
      uiMaskWS.setUIComponent(null);
      uiMaskWS.setShow(false);
      pcontext.addUIComponentToUpdateByAjax(uiMaskWS);

      UIPage uiPage = uiPageForm.getUIPage();
      if (uiPage == null) return;
      String storageId = uiPage.getStorageId();
      Page page = new Page();
      page.setPageId(uiPage.getPageId());
      uiPageForm.invokeSetBindingBean(page);
      page.setOwnerType(uiPage.getOwnerType());
      List<UIPortlet> uiPortlets = new ArrayList<UIPortlet>();
      findAllPortlet(uiPortlets, uiPage);
      ArrayList<ModelObject> applications = new ArrayList<ModelObject>();
      for (UIPortlet uiPortlet : uiPortlets) {
        applications.add(PortalDataMapper.buildModelObject(uiPortlet));
      }

      if (Page.DESKTOP_PAGE.equals(uiPage.getFactoryId())
          && !Page.DESKTOP_PAGE.equals(page.getFactoryId())) {
        page.setShowMaxWindow(false);
        uiPage.getChildren().clear();
        page.setChildren(applications);

        PortalDataMapper.toUIPage(uiPage, page);
        //        if(page.getTemplate() == null) page.setTemplate(uiPage.getTemplate()) ;
        if (page.getChildren() == null) page.setChildren(new ArrayList<ModelObject>());

        //        uiEditBar.setUIPage(uiPage);
        //        Class<?> [] childrenToRender = {UIPageEditBar.class,
        //            UIPageNodeSelector.class, UIPageNavigationControlBar.class};
        //        uiManagement.setRenderedChildrenOfTypes(childrenToRender);

        pcontext.setFullRender(true);
        UIWorkingWorkspace uiWorkingWS =
            uiPortalApp.getChildById(UIPortalApplication.UI_WORKING_WS_ID);
        pcontext.addUIComponentToUpdateByAjax(uiWorkingWS);

        return;
      }

      if (Page.DESKTOP_PAGE.equals(page.getFactoryId())) {
        uiPage.getChildren().clear();
        page.setChildren(applications);

        PortalDataMapper.toUIPage(uiPage, page);
        //        if(page.getTemplate() == null) page.setTemplate(uiPage.getTemplate()) ;
        if (page.getChildren() == null) page.setChildren(new ArrayList<ModelObject>());

        UIPortalToolPanel toolPanel = Util.getUIPortalToolPanel();
        toolPanel.setShowMaskLayer(true);
        pcontext.setFullRender(true);
        UIWorkingWorkspace uiWorkingWS =
            uiPortalApp.getChildById(UIPortalApplication.UI_WORKING_WS_ID);
        pcontext.addUIComponentToUpdateByAjax(uiWorkingWS);
        DataStorage dataService = uiPageForm.getApplicationComponent(DataStorage.class);
        dataService.save(page);
        return;
      }

      List<UIComponent> uiChildren = uiPage.getChildren();
      if (uiChildren == null) {
        PortalDataMapper.toUIPage(uiPage, page);
        return;
      }
      ArrayList<ModelObject> children = new ArrayList<ModelObject>();
      for (UIComponent child : uiChildren) {
        ModelObject component = PortalDataMapper.buildModelObject(child);
        if (component != null) children.add(component);
      }
      page.setChildren(children);
      uiPage.getChildren().clear();

      try {
        PortalDataMapper.toUIPage(uiPage, page);
      } catch (NoSuchDataException de) {
        uiPortalApp.addMessage(
            new ApplicationMessage(
                "UIPageForm.msg.notExistOrDeleted", null, ApplicationMessage.ERROR));
        UIPortalComposer uiPortalComposer =
            (UIPortalComposer) uiPortalApp.findComponentById("UIPageEditor");
        if (uiPortalComposer != null) {
          Event aboutEvent =
              new Event<UIPortalComposer>(uiPortalComposer, "Abort", event.getRequestContext());
          uiPortalComposer.broadcast(aboutEvent, event.getExecutionPhase());
        }
      }

      uiPage.setStorageId(storageId);
      //      if(page.getTemplate() == null) page.setTemplate(uiPage.getTemplate()) ;
      if (page.getChildren() == null) page.setChildren(new ArrayList<ModelObject>());
    }