blob: 89f2db5dedd51c7f5a6d73a50fd9b791a8e5fba9 [file] [log] [blame]
/*
* $Id$
*
* Copyright 2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.struts2.showcase.jsf;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.struts2.showcase.action.EmployeeAction;
import org.apache.struts2.showcase.dao.SkillDao;
import org.apache.struts2.showcase.model.Employee;
import org.apache.struts2.showcase.model.Skill;
/**
* Overriding the EmployeeAction to main provide getters returning the data in
* the form required by the JSF components
*/
public class JsfEmployeeAction extends EmployeeAction {
private static final long serialVersionUID = 1L;
/**
* Creating a default employee and main skill, since the JSF EL can't handle
* creating new objects as necessary
*
*/
public JsfEmployeeAction() {
Employee e = new Employee();
e.setMainSkill(new Skill());
setCurrentEmployee(e);
}
private SkillDao skillDao;
public void setSkillDao(SkillDao skillDao) {
this.skillDao = skillDao;
}
/**
* Returning a List because the JSF dataGrid can't handle a Set for some
* reason
*/
@Override
public Collection getAvailableItems() {
return new ArrayList(super.getAvailableItems());
}
/**
* Changing the String array into a Map
*/
public Map<String, String> getAvailablePositionsAsMap() {
Map<String, String> map = new LinkedHashMap<String, String>();
for (String val : super.getAvailablePositions()) {
map.put(val, val);
}
return map;
}
/**
* Converting the list into a map
*/
public Map getAvailableLevelsAsMap() {
Map map = new LinkedHashMap();
for (Object val : super.getAvailableLevels()) {
map.put(val, val);
}
return map;
}
/**
* Converting the Skill object list into a map
*/
public Map<String, String> getAvailableSkills() {
Map<String, String> map = new HashMap<String, String>();
for (Object val : skillDao.findAll()) {
Skill skill = (Skill) val;
map.put(skill.getDescription(), skill.getName());
}
return map;
}
/**
* Gets the selected Skill objects as a list
*/
public List<String> getSelectedSkillsAsList() {
System.out.println("asked for skills");
List<String> list = new ArrayList<String>();
List skills = super.getSelectedSkills();
if (skills != null) {
for (Object val : skills) {
if (val instanceof Skill) {
list.add(((Skill) val).getDescription());
} else {
Skill skill = skillDao.getSkill((String) val);
list.add(skill.getDescription());
}
}
}
return list;
}
}