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.jetspeed.portlets.rpad.portlet.web.deployer;
018:
019: import java.util.Iterator;
020: import java.util.List;
021: import java.util.Map;
022:
023: import javax.faces.application.FacesMessage;
024: import javax.faces.context.FacesContext;
025: import javax.faces.model.SelectItem;
026:
027: import org.apache.jetspeed.portlets.rpad.PortletApplication;
028: import org.apache.jetspeed.portlets.rpad.Repository;
029: import org.apache.jetspeed.portlets.rpad.RepositoryManager;
030: import org.apache.jetspeed.portlets.rpad.portlet.deployer.PortletDeployer;
031: import org.apache.jetspeed.portlets.rpad.portlet.util.FacesMessageUtil;
032:
033: public class DisplayPortletsPage {
034:
035: protected static final String SEARCH = "org.apache.jetspeed.portlets.rpad.portlet.web.deployer.Search";
036:
037: protected static final String REPOSITORY_NAME = "org.apache.jetspeed.portlets.rpad.portlet.web.deployer.RepositoryNamee";
038:
039: private String repositoryName = null;
040:
041: private String search = null;
042:
043: private RepositoryManager repositoryManager = null;
044:
045: private PortletDeployer portletDeployer;
046:
047: public DisplayPortletsPage() {
048: Map sessionMap = FacesContext.getCurrentInstance()
049: .getExternalContext().getSessionMap();
050:
051: String repositoryName = (String) sessionMap
052: .get(REPOSITORY_NAME);
053: if (repositoryName != null) {
054: this .repositoryName = repositoryName;
055: }
056:
057: String search = (String) sessionMap.get(SEARCH);
058: if (search != null) {
059: this .search = search;
060: }
061: }
062:
063: public RepositoryManager getRepositoryManager() {
064: if (repositoryManager == null) {
065: repositoryManager = RepositoryManager.getInstance();
066: }
067: return repositoryManager;
068: }
069:
070: public String doSearch() {
071: Map sessionMap = FacesContext.getCurrentInstance()
072: .getExternalContext().getSessionMap();
073:
074: if (getRepositoryName() != null
075: && !getRepositoryName().equals("")) {
076: sessionMap.put(REPOSITORY_NAME, getRepositoryName());
077: } else {
078: sessionMap.remove(REPOSITORY_NAME);
079: }
080:
081: if (getSearch() != null && !getSearch().equals("")) {
082: sessionMap.put(SEARCH, getSearch());
083: } else {
084: sessionMap.remove(SEARCH);
085: }
086:
087: return null;
088: }
089:
090: public String jumpUpdateRepository() {
091: return "deployer_displayRepositories";
092: }
093:
094: public String doRefresh() {
095: return null;
096: }
097:
098: public String doDeploy() {
099: PortletApplication portlet = (PortletApplication) FacesContext
100: .getCurrentInstance().getExternalContext()
101: .getRequestMap().get("portlet");
102: if (portlet != null) {
103: if (getPortletDeployer() != null) {
104: getPortletDeployer().deploy(portlet);
105: } else {
106: //TODO i18n
107: FacesMessageUtil.addMessage(
108: FacesMessage.SEVERITY_ERROR,
109: "Could not find the portlet deployer.", null);
110: }
111: } else {
112: //TODO i18n
113: FacesMessageUtil.addMessage(FacesMessage.SEVERITY_ERROR,
114: "Could not find the target portlet.", null);
115: }
116:
117: return null;
118: }
119:
120: public SelectItem[] getRepositoryNames() {
121: List repos = getRepositoryManager().getRepositories();
122: SelectItem[] items = new SelectItem[repos.size() + 1];
123: items[0] = new SelectItem("");
124: int c = 1;
125: for (Iterator i = repos.iterator(); i.hasNext(); c++) {
126: Repository repo = (Repository) i.next();
127: items[c] = new SelectItem(repo.getName());
128: }
129: return items;
130: }
131:
132: public List getPortlets() {
133: //TODO search
134: if (repositoryName != null) {
135: return getRepositoryManager().getPortletApplications(
136: repositoryName);
137: } else {
138: return getRepositoryManager().getPortletApplications();
139: }
140: }
141:
142: public int getPageSize() {
143: //TODO move to portlet.xml or somewhere..
144: return 10;
145: }
146:
147: /**
148: * @return the repositoryName
149: */
150: public String getRepositoryName() {
151: return repositoryName;
152: }
153:
154: /**
155: * @param repositoryName the repositoryName to set
156: */
157: public void setRepositoryName(String repositoryName) {
158: this .repositoryName = repositoryName;
159: }
160:
161: /**
162: * @return the search
163: */
164: public String getSearch() {
165: return search;
166: }
167:
168: /**
169: * @param search the search to set
170: */
171: public void setSearch(String search) {
172: this .search = search;
173: }
174:
175: /**
176: * @return the portletDeployer
177: */
178: public PortletDeployer getPortletDeployer() {
179: return portletDeployer;
180: }
181:
182: /**
183: * @param portletDeployer the portletDeployer to set
184: */
185: public void setPortletDeployer(PortletDeployer portletDeployer) {
186: this .portletDeployer = portletDeployer;
187: }
188:
189: public boolean isDeployable() {
190: return portletDeployer.getStatus() == PortletDeployer.READY;
191: }
192:
193: }
|