diff options
Diffstat (limited to 'src/com/sun/apoc/manager/profiles/AssignedAboveTableView.java')
-rwxr-xr-x | src/com/sun/apoc/manager/profiles/AssignedAboveTableView.java | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/src/com/sun/apoc/manager/profiles/AssignedAboveTableView.java b/src/com/sun/apoc/manager/profiles/AssignedAboveTableView.java new file mode 100755 index 0000000..9ea21f5 --- /dev/null +++ b/src/com/sun/apoc/manager/profiles/AssignedAboveTableView.java @@ -0,0 +1,130 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * + * The contents of this file are subject to the terms of either + * the GNU General Public License Version 2 only ("GPL") or + * the Common Development and Distribution License("CDDL") + * (collectively, the "License"). You may not use this file + * except in compliance with the License. You can obtain a copy + * of the License at www.sun.com/CDDL or at COPYRIGHT. See the + * License for the specific language governing permissions and + * limitations under the License. When distributing the software, + * include this License Header Notice in each file and include + * the License file at /legal/license.txt. If applicable, add the + * following below the License Header, with the fields enclosed + * by brackets [] replaced by your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * Contributor(s): + * + * If you wish your version of this file to be governed by + * only the CDDL or only the GPL Version 2, indicate your + * decision by adding "[Contributor] elects to include this + * software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice + * of license, a recipient has the option to distribute your + * version of this file under either the CDDL, the GPL Version + * 2 or to extend the choice of license to its licensees as + * provided above. However, if you add GPL Version 2 code and + * therefore, elected the GPL Version 2 license, then the + * option applies only if the new code is made subject to such + * option by the copyright holder. + */ + +package com.sun.apoc.manager.profiles; + +import com.iplanet.jato.model.ModelControlException; +import com.iplanet.jato.view.RequestHandlingViewBase; +import com.iplanet.jato.view.View; +import com.iplanet.jato.view.event.ChildDisplayEvent; +import com.iplanet.jato.view.event.RequestInvocationEvent; +import com.sun.apoc.manager.Toolbox2; +import com.sun.web.ui.view.html.CCHiddenField; +import com.sun.web.ui.view.html.CCStaticTextField; +import com.sun.web.ui.view.table.CCActionTable; +import java.io.IOException; +import java.util.Map; +import javax.servlet.ServletException; + +public class AssignedAboveTableView extends RequestHandlingViewBase { + public static final String CHILD_PROFILE_TABLE = "AssignedAboveTable"; + public static final String CHILD_OPENEDITOR = "ConditionalOpenEditor"; + public static final String CHILD_HIDDEN_PROFILE = "SelectedProfile"; + + protected AssignedAboveTableModel m_Model = null; + private String m_pageModelName; + + public AssignedAboveTableView(View parent, String name) throws ModelControlException { + super(parent, name); + m_Model = (AssignedAboveTableModel) getModel(AssignedAboveTableModel.class); + m_Model.setDocument(getRequestContext().getServletContext(), "/jsp/profiles/AssignedAboveTable.xml"); + m_Model.retrieve(Toolbox2.getSelectedEntity()); + registerChildren(); + } + + protected void registerChildren() { + registerChild(CHILD_PROFILE_TABLE, CCActionTable.class); + registerChild(CHILD_OPENEDITOR, CCStaticTextField.class); + registerChild(CHILD_HIDDEN_PROFILE, CCHiddenField.class); + m_Model.registerChildren(this); + } + + protected View createChild(String name) { + if (name.equals(CHILD_PROFILE_TABLE)) { + CCActionTable child = new CCActionTable(this, m_Model, name); + return child; + } + else if (name.equals(CHILD_OPENEDITOR)) { + CCStaticTextField child = new CCStaticTextField(this, name, ""); + return child; + } + else if (name.equals(CHILD_HIDDEN_PROFILE)) { + CCHiddenField child = new CCHiddenField(this, name, ""); + child.setElementId("SelectedProfileCopyMoveWizard"); + return child; + } + else if (m_Model.isChildSupported(name)) { + return m_Model.createChild(this, name); + } + else { + throw new IllegalArgumentException("Invalid child name [" + name + "]"); + } + } + + public void handleNameHrefRequest(RequestInvocationEvent event) + throws ServletException, IOException { + getRootView().forwardTo(getRequestContext()); + } + + public boolean beginChildDisplay(ChildDisplayEvent event) throws ModelControlException { + super.beginDisplay(event); + + if (event.getChildName().equals(CHILD_PROFILE_TABLE)) { + int nSize = m_Model.getSize(); + int nMaxRows = m_Model.getMaxRows(); + String sQuery = getRequestContext().getRequest().getQueryString(); + + if ((sQuery != null) && (sQuery.indexOf(CCActionTable.CHILD_PAGINATION_HREF) != -1)) { + getRootView().setPageSessionAttribute("userPagination", new Boolean(true)); + } + + Object userPagination = getRootView().getPageSessionAttribute("userPagination"); + + m_Model.setShowPaginationIcon(nSize > nMaxRows); + m_Model.setShowPaginationControls(nSize > (nMaxRows * 5)); + + if ((userPagination == null)) { + String sChildName = getChild(CHILD_PROFILE_TABLE).getQualifiedName() + ".stateData"; + Map stateData = (Map) getRootView().getPageSessionAttribute(sChildName); + + if (stateData != null) { + stateData.put("showPaginationControls", new Boolean((nSize > (nMaxRows * 5)))); + } + } + } + + return true; + } +} |