/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.core.action;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import java.util.*;
import java.io.Serializable;
/**
* Holds cut/copied node identifiers in a session-scoped clipboard.
*
* @author Christian Bauer
*/
@Name("clipboard")
@Scope(ScopeType.SESSION)
@AutoCreate
public class Clipboard implements Serializable {
private Map<Long, Boolean> items = new LinkedHashMap<Long, Boolean>();
public Set<Long> getItems() {
return items.keySet();
}
public List<Long> getItemsAsList() {
return new ArrayList<Long>(getItems());
}
public void clear() {
items.clear();
}
public void add(Long nodeId, Boolean cut) {
items.put(nodeId, cut);
}
public boolean isCut(Long nodeId) {
return items.containsKey(nodeId) && items.get(nodeId);
}
}