001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.geronimo.console.configcreator;
018
019 import java.io.IOException;
020 import java.util.Collections;
021 import java.util.List;
022
023 import javax.portlet.ActionRequest;
024 import javax.portlet.ActionResponse;
025 import javax.portlet.PortletException;
026 import javax.portlet.RenderRequest;
027 import javax.portlet.RenderResponse;
028
029 import org.apache.commons.logging.Log;
030 import org.apache.commons.logging.LogFactory;
031 import org.apache.geronimo.console.MultiPageModel;
032
033 /**
034 * A handler for ...
035 *
036 * @version $Rev: 706640 $ $Date: 2008-10-21 14:44:05 +0000 (Tue, 21 Oct 2008) $
037 */
038 public class DependenciesHandler extends AbstractHandler {
039 private static final Log log = LogFactory.getLog(DependenciesHandler.class);
040
041 public DependenciesHandler() {
042 super(DEPENDENCIES_MODE, "/WEB-INF/view/configcreator/dependencies.jsp");
043 }
044
045 public String actionBeforeView(ActionRequest request, ActionResponse response, MultiPageModel model)
046 throws PortletException, IOException {
047 return getMode();
048 }
049
050 public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model)
051 throws PortletException, IOException {
052 WARConfigData data = getSessionData(request);
053 request.setAttribute(DATA_PARAMETER, data);
054 List commonLibs = JSR77_Util.getCommonLibs(request);
055 List addedDependencies = data.getDependencies();
056 //addedDependencies will be a subset of commonLibs
057 //sort commonLibs so that addedDependencies show up towards the beginning
058 commonLibs.removeAll(addedDependencies);
059 Collections.sort(commonLibs);
060 Collections.sort(addedDependencies);
061 commonLibs.addAll(0, addedDependencies);
062 request.setAttribute(COMMON_LIBS_PARAMETER, commonLibs);
063 }
064
065 public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model)
066 throws PortletException, IOException {
067 WARConfigData data = getSessionData(request);
068 data.getDependencies().clear();
069 String[] selectedJars = request.getParameterValues(SELECTED_LIBS_PARAMETER);
070 for (int i = 0; selectedJars != null && i < selectedJars.length; i++) {
071 data.getDependencies().add(selectedJars[i]);
072 }
073 return DISPLAY_PLAN_MODE + "-before";
074 }
075 }