@PostConstruct protected void initialize() { // 1. set options for first layout layoutOptionsOne = new LayoutOptions(); // options for all panes (center and west) LayoutOptions panes = new LayoutOptions(); panes.addOption("slidable", false); panes.addOption("spacing", 6); panes.addOption("resizeWhileDragging", true); layoutOptionsOne.setPanesOptions(panes); // options for west pane LayoutOptions west = new LayoutOptions(); west.addOption("size", 150); west.addOption("minSize", 40); west.addOption("maxSize", 300); layoutOptionsOne.setWestOptions(west); // 2. set options for second layout layoutOptionsTwo = new LayoutOptions(); // options for all panes panes = new LayoutOptions(); panes.addOption("slidable", false); panes.addOption("spacing", 6); panes.addOption("resizeWhileDragging", true); layoutOptionsTwo.setPanesOptions(panes); // options for east pane LayoutOptions east = new LayoutOptions(); panes.addOption("resizable", false); panes.addOption("closable", false); east.addOption("size", "50%"); layoutOptionsTwo.setEastOptions(east); // options for nested east layout LayoutOptions childEastOptions = new LayoutOptions(); east.setChildOptions(childEastOptions); // options for east-south pane LayoutOptions eastSouth = new LayoutOptions(); eastSouth.addOption("size", "50%"); childEastOptions.setSouthOptions(eastSouth); }
private void setOptions(UIComponent parent) { // create layout options for this pane via attributes defined in pe:layoutPane String position = getPosition(); LayoutOptions thisLayoutOptions = getOptions(); LayoutOptions options; if (parent instanceof LayoutPane) { LayoutOptions parentLayoutOptions = ((LayoutPane) parent).getOptions(); options = parentLayoutOptions.getChildOptions(); if (options == null) { options = new LayoutOptions(); parentLayoutOptions.setChildOptions(options); } } else if (parent instanceof Layout) { options = (LayoutOptions) ((Layout) parent).getOptions(); if (options == null) { Layout layout = ((Layout) parent); options = new LayoutOptions(); layout.setOptions(options); // options for all panes LayoutOptions panes = null; String resizerTip = layout.getResizerTip(); if (resizerTip != null) { panes = new LayoutOptions(); panes.addOption(Layout.PropertyKeys.resizerTip.toString(), resizerTip); } String togglerTipOpen = layout.getTogglerTipOpen(); if (togglerTipOpen != null) { if (panes == null) { panes = new LayoutOptions(); } panes.addOption(Layout.PropertyKeys.togglerTip_open.toString(), togglerTipOpen); } String togglerTipClosed = layout.getTogglerTipClosed(); if (togglerTipClosed != null) { if (panes == null) { panes = new LayoutOptions(); } panes.addOption(Layout.PropertyKeys.togglerTip_closed.toString(), togglerTipClosed); } if (panes != null) { options.setPanesOptions(panes); } } } else if (parent instanceof UIForm) { // layout pane can be within a h:form setOptions(parent.getParent()); return; } else if (parent instanceof HtmlPanelGroup && Layout.STYLE_CLASS_LAYOUT_CONTENT.equals(((HtmlPanelGroup) parent).getStyleClass()) && "block".equals(((HtmlPanelGroup) parent).getLayout())) { // layout pane can be within h:panelGroup representing a HTML div setOptions(parent.getParent()); return; } else if (parent instanceof OutputPanel && Layout.STYLE_CLASS_LAYOUT_CONTENT.equals(((OutputPanel) parent).getStyleClass()) && "block".equals(((OutputPanel) parent).getLayout())) { // layout pane can be within p:outputPanel representing a HTML div setOptions(parent.getParent()); return; } else if (parent != null && parent.toString().contains(Layout.STYLE_CLASS_LAYOUT_CONTENT)) { // plain div (UIInstructions) with class "ui-layout-content" setOptions(parent.getParent()); return; } else { throw new FacesException( "LayoutPane can be only placed within another LayoutPane, Layout, UIForm or DIV with class 'ui-layout-content'"); } if (Layout.PANE_POSITION_CENTER.equals(position)) { options.setCenterOptions(thisLayoutOptions); } else if (Layout.PANE_POSITION_NORTH.equals(position)) { options.setNorthOptions(thisLayoutOptions); } else if (Layout.PANE_POSITION_SOUTH.equals(position)) { options.setSouthOptions(thisLayoutOptions); } else if (Layout.PANE_POSITION_WEST.equals(position)) { options.setWestOptions(thisLayoutOptions); } else if (Layout.PANE_POSITION_EAST.equals(position)) { options.setEastOptions(thisLayoutOptions); } else { throw new FacesException( "Pane position " + position + " is invalid. Valid positions are 'center', 'north' 'south', 'west', 'east'"); } }