/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/osp/trunk/common/api/src/java/org/theospi/portfolio/list/model/ListConfig.java $
* $Id: ListConfig.java 105079 2012-02-24 23:08:11Z ottenhoff@longsight.com $
***********************************************************************************
*
* Copyright (c) 2005, 2006, 2008 The Sakai Foundation
*
* Licensed under the Educational Community 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.opensource.org/licenses/ECL-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.theospi.portfolio.list.model;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.sakaiproject.metaobj.shared.model.Agent;
import org.sakaiproject.metaobj.shared.model.Id;
public class ListConfig {
protected final transient Log logger = LogFactory.getLog(getClass());
private Id id;
private Id toolId;
private Agent owner;
private String title;
private List selectedColumns = new ArrayList();
private int height;
private int rows;
// not persisted, used on UI
private List columns;
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getRows() {
return rows;
}
public void setRows(int rows) {
this.rows = rows;
}
public List getColumns() {
return columns;
}
public void setColumns(List columns) {
this.columns = columns;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Id getToolId() {
return toolId;
}
public void setToolId(Id toolId) {
this.toolId = toolId;
}
public Agent getOwner() {
return owner;
}
public void setOwner(Agent owner) {
this.owner = owner;
}
public List getSelectedColumns() {
return selectedColumns;
}
public void setSelectedColumns(List selectedColumns) {
this.selectedColumns = selectedColumns;
}
public Map getSelected() {
return new ColumnMap(getSelectedColumns());
}
public Id getId() {
return id;
}
public void setId(Id id) {
this.id = id;
}
private class ColumnMap extends HashMap {
private List selectedColumns;
private final Column FAKE_COLUMN = new Column("empty", false);
/**
* Constructs an empty <tt>HashMap</tt> with the default initial capacity
* (16) and the default load factor (0.75).
*/
public ColumnMap(List selectedColumns) {
this.selectedColumns = selectedColumns;
}
public Object get(Object indexString) {
int index = Integer.parseInt(indexString.toString());
if (selectedColumns.size() > index) {
return new Column((String)selectedColumns.get(index),
true);
}
else {
return FAKE_COLUMN;
}
}
/* (non-Javadoc)
* @see java.util.HashMap#entrySet()
*/
public Set entrySet() {
Set entries = new HashSet();
for (int i=0; i<this.selectedColumns.size(); i++) {
entries.add((Column)get(i));
}
return entries;
}
}
}