📄 layoutmanagerportlet.java
字号:
itsanewtab = true; PortletTab tab = new PortletTab(); createColsListBox(event, req, tab.getPortletComponent()); comp = tab; } else if (req.getParameter("newmenutab") != null) { controlUI = "menu"; TextFieldBean nameTF = event.getTextFieldBean("nameTF"); nameTF.setValue(this.getLocalizedText(req, "LAYOUT_NEW_MENUTAB")); itsanewtab = true; PortletTab tab = new PortletTab(); createColsListBox(event, req, tab.getPortletComponent()); comp = tab; } if (itsanewtab) { TextFieldBean labelTF = event.getTextFieldBean("labelTF"); labelTF.setValue(""); ActionSubmitBean moveLeftButton = event.getActionSubmitBean("moveLeftButton"); moveLeftButton.setDisabled(true); ActionSubmitBean moveRightButton = event.getActionSubmitBean("moveRightButton"); moveRightButton.setDisabled(true); req.setAttribute("isnewtab", "true"); } ListBoxBean rolesLB = event.getListBoxBean("rolesLB"); rolesLB.clear(); ListBoxItemBean item = new ListBoxItemBean(); item.setValue(this.getLocalizedText(req, "LAYOUT_ROLE_NONE_REQUIRED")); item.setName("NONE"); rolesLB.addBean(item); List<PortletRole> roles = roleManagerService.getRoles(); for (PortletRole role : roles) { item = new ListBoxItemBean(); item.setValue(role.getName()); item.setName(role.getName()); if ((comp != null) && (comp.getRequiredRole() != null) && (comp.getRequiredRole().equalsIgnoreCase(role.getName()))) item.setSelected(true); rolesLB.addBean(item); } HiddenFieldBean compHF = event.getHiddenFieldBean("compHF"); compHF.setName("compid"); compHF.setValue(compid); req.setAttribute("portletComp", comp); req.setAttribute("controlUI", controlUI); } StringBuffer pageBuffer = new StringBuffer(); PortletComponent comp = page.getPortletComponent(); log.debug("rendering the component"); comp.doRender(gsevent); pageBuffer = comp.getBufferedOutput(req); //System.err.println(pageBuffer); ListBoxBean navigationLB = event.getListBoxBean("navigationLB"); navigationLB.clear(); ListBoxItemBean item = new ListBoxItemBean(); item.setName("bar"); item.setValue(this.getLocalizedText(req, "LAYOUT_SINGLE_DIVIDER")); if (comp instanceof PortletBar) { item.setSelected(true); } navigationLB.addBean(item); item = new ListBoxItemBean(); item.setName("menu"); item.setValue(this.getLocalizedText(req, "LAYOUT_MENUBAR")); if (comp instanceof PortletMenu) { item.setSelected(true); } navigationLB.addBean(item); item = new ListBoxItemBean(); item.setName("pane"); item.setValue(this.getLocalizedText(req, "LAYOUT_TABBEDPANE")); if (comp instanceof PortletTabbedPane) { item.setSelected(true); } navigationLB.addBean(item); req.setAttribute("pane", pageBuffer.toString()); pages.put(sessionId, page); // put old cid back so beans/tags work!! req.setAttribute(SportletProperties.COMPONENT_ID, cid); // remove special layout attributes so the rest of "real" layout after this portlet renders properly req.removeAttribute(SportletProperties.EXTRA_QUERY_INFO); req.removeAttribute(SportletProperties.LAYOUT_EDIT_MODE); //setNextState(req, VIEW_JSP); } public void selectLayout(ActionFormEvent event) throws PortletException, IOException { ListBoxBean layoutsLB = event.getListBoxBean("layoutsLB"); PortletSession session = event.getActionRequest().getPortletSession(); session.setAttribute(SELECTED_LAYOUT, layoutsLB.getSelectedValue()); pages.remove(session.getId()); } public void selectTheme(ActionFormEvent event) throws PortletException, IOException { ListBoxBean themesLB = event.getListBoxBean("themesLB"); String selectedTheme = themesLB.getSelectedValue(); portalConfigService.setProperty(PortalConfigService.DEFAULT_THEME, selectedTheme); MessageBoxBean msg = event.getMessageBoxBean("msg"); String value = this.getLocalizedText(event.getActionRequest(), "LAYOUT_SAVETHEMEMSG") + " " + selectedTheme; msg.setValue(value); } public void doSaveNav(ActionFormEvent event) { PortletRequest req = event.getActionRequest(); String sessionId = req.getPortletSession().getId(); PortletPage page = (PortletPage) pages.get(sessionId); PortletComponent navComp = page.getPortletComponent(); ListBoxBean navLB = event.getListBoxBean("navigationLB"); String name = navLB.getSelectedName(); CheckBoxBean showModesCB = event.getCheckBoxBean("showModesCB"); CheckBoxBean showStatesCB = event.getCheckBoxBean("showStatesCB"); page.setDisplayModes(showModesCB.isSelected()); page.setDisplayStates(showStatesCB.isSelected()); // switch to a PortletBar, no tabs whatsoever if (name.equals("bar")) { // the actual component matches the selected one, do nothing if (!(navComp instanceof PortletBar)) { PortletBar bar = new PortletBar(); // set the first menu tab component to be the bar component if (navComp instanceof PortletMenu) { // MB -> SDB PortletMenu menu = (PortletMenu) navComp; List<PortletTab> tabs = menu.getPortletTabs(); if (tabs.size() > 0) { PortletTab tab = tabs.get(0); bar.setPortletComponent(tab.getPortletComponent()); } else { } } // converting tabbespane into single diver bar, we remove the all portlets since many could exist and we // just have one plain layout if (navComp instanceof PortletTabbedPane) { // DTP -> SDB PortletTableLayout table = new PortletTableLayout(); PortletRowLayout row = new PortletRowLayout(); PortletColumnLayout col = new PortletColumnLayout(); col.setWidth("100%"); row.addPortletComponent(col); table.addPortletComponent(row); bar.setPortletComponent(table); } page.setPortletComponent(bar); } // switch to a menu, single row of tabs } else if (name.equals("menu")) { if (!(navComp instanceof PortletMenu)) { PortletMenu menu = new PortletMenu(); if (navComp instanceof PortletBar) { // SDB -> MB PortletBar bar = (PortletBar) navComp; PortletTab tab = new PortletTab(); tab.setTitle(req.getLocale().getLanguage(), this.getLocalizedText(req, "LAYOUT_DEFAULT_TAB_NAME")); tab.setPortletComponent(bar.getPortletComponent()); menu.addTab(tab); } if (navComp instanceof PortletTabbedPane) { // DTP -> MB PortletTabbedPane pane = (PortletTabbedPane) navComp; List<PortletTab> tabs = pane.getPortletTabs(); for (PortletTab atab : tabs) { PortletTabbedPane subpane = (PortletTabbedPane) atab.getPortletComponent(); List<PortletTab> subtabs = subpane.getPortletTabs(); if (subtabs.size() > 0) { for (PortletTab stab : subtabs) { menu.addTab(stab); } } } } page.setPortletComponent(menu); } // switch to a tabbed pane, double line of tabs } else if (name.equals("pane")) { if (!(navComp instanceof PortletTabbedPane)) { PortletTabbedPane pane = new PortletTabbedPane(); pane.setStyle("menu"); if (navComp instanceof PortletBar) { // SDB -> DTP PortletTab newtab = new PortletTab(); newtab.setTitle(req.getLocale().getLanguage(), this.getLocalizedText(req, "LAYOUT_DEFAULT_TAB_NAME")); pane.addTab(newtab); PortletTabbedPane subpane = new PortletTabbedPane(); subpane.setStyle("sub-menu"); newtab.setPortletComponent(subpane); PortletTab subtab = new PortletTab(); subtab.setTitle(req.getLocale().getLanguage(), this.getLocalizedText(req, "LAYOUT_DEFAULT_TAB_NAME")); PortletTableLayout table = new PortletTableLayout(); PortletRowLayout row = new PortletRowLayout(); PortletColumnLayout col = new PortletColumnLayout(); col.setWidth("100%"); row.addPortletComponent(col); table.addPortletComponent(row); subtab.setPortletComponent(table); subpane.addTab(subtab); } else if (navComp instanceof PortletMenu) { // MB -> DTP PortletMenu menu = (PortletMenu) navComp; List<PortletTab> tabs = menu.getPortletTabs(); for (PortletTab atab : tabs) { PortletTab newtab = new PortletTab(); newtab.setTitle(req.getLocale().getLanguage(), atab.getTitle(req.getLocale().getLanguage())); pane.addTab(newtab); PortletTabbedPane subpane = new PortletTabbedPane(); subpane.setStyle("sub-menu"); newtab.setPortletComponent(subpane); subpane.addTab(atab); } } page.setPortletComponent(pane); } } pageFactory.savePortletPageMaster(page); page.init(req, new ArrayList<ComponentIdentifier>()); pages.put(sessionId, page); } /** * Modifies a portlet tab to provide the desired column layout strategy given a tab * The numbering is as follows: * "one" - 1 column * "two" - 2 col, 33%, 66% * "three" - 2 col, 50%, 50% * "four" - 2 col, 66%, 33% * "five" - 3 col, 33%, 33%, 33% * "six" - 3 col 25%, 50%, 25% * * @param strategyNum the string as one of the above * @param comp a portlet component * @return the updated table layout */ private PortletComponent createLayoutStrategy(String strategyNum, PortletComponent comp) { log.debug("col strategy: " + strategyNum); if ((comp != null) && (comp instanceof PortletTableLayout)) { PortletTableLayout table = (PortletTableLayout) comp; List rows = table.getPortletComponents(); if ((rows != null) && (!rows.isEmpty())) { PortletComponent c = (PortletComponent) rows.get(0); if (c instanceof PortletRowLayout) { PortletRowLayout row = (PortletRowLayout) c; List cols = row.getPortletComponents(); System.err.println("cols size= " + cols.size()); if (cols.size() == 1) { if (strategyNum.equals("one")) { return table; } if (strategyNum.equals("two")) { // deal with case where column layout needs to be extended PortletColumnLayout oldcol = (PortletColumnLayout) cols.get(0); PortletColumnLayout col = new PortletColumnLayout(); oldcol.setWidth("33%"); col.setWidth("66%"); row.addPortletComponent(col); } if (strategyNum.equals("three")) { PortletColumnLayout oldcol = (PortletColumnLayout) cols.get(0); PortletColumnLayout col = new PortletColumnLayout(); oldcol.setWidth("50%"); col.setWidth("50%"); row.addPortletComponent(col); } if (strategyNum.equals("four")) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -