blob: d02b105c6ea877b72e25c5fcd46f9139d3e9ea99 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.myfaces.html5.demo.bean;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.AbortProcessingException;
import org.apache.myfaces.html5.demo.model.ApacheProject;
import org.apache.myfaces.html5.demo.model.ApacheProjectLanguage;
import org.apache.myfaces.html5.event.DropEvent;
@ManagedBean(name = "dndBean")
@ViewScoped
public class DndBean implements Serializable
{
private static final long serialVersionUID = 1L;
private String simpleDndOutput = "Nothing dropped yet";
private String dragAnythingOutput = "Nothing dropped yet";
private String projectDropOutput = "Nothing dropped yet";
public void processSimpleDnd(DropEvent event) throws AbortProcessingException
{
simpleDndOutput = "";
simpleDndOutput += "Drop Time : " + new Date().toLocaleString() + "<br/>\n";
simpleDndOutput += "Drop event parameter : " + event.getParam() + "<br/>\n";
}
public void processDragAnything(DropEvent event) throws AbortProcessingException
{
dragAnythingOutput = "";
dragAnythingOutput += "Drop Time : " + new Date().toLocaleString() + "<br/>\n";
dragAnythingOutput += "Drop event parameter : " + event.getParam() + "<br/>\n";
Map<String, String> dropDataMap = event.getDropDataMap();
if (dropDataMap != null)
{
Set<String> keySet = dropDataMap.keySet();
for (String key : keySet)
{
dragAnythingOutput += key + " : " + dropDataMap.get(key) + "<br/>\n";
}
}
}
public String getSimpleDndOutput()
{
return simpleDndOutput;
}
public String getDragAnythingOutput()
{
return dragAnythingOutput;
}
private List<ApacheProject> projects;
private List<ApacheProject> cProjects;
private List<ApacheProject> javaProjects;
public DndBean()
{
initProjects();
}
public String initProjects()
{
projects = new ArrayList<ApacheProject>();
cProjects = new ArrayList<ApacheProject>();
javaProjects = new ArrayList<ApacheProject>();
projects.add(new ApacheProject("spamassassin", "SpamAssasin", ApacheProjectLanguage.C));
projects.add(new ApacheProject("subversion", "Subversion", ApacheProjectLanguage.C));
projects.add(new ApacheProject("myfaces", "MyFaces", ApacheProjectLanguage.JAVA));
projects.add(new ApacheProject("tomcat", "Tomcat", ApacheProjectLanguage.JAVA));
this.simpleDndOutput = "Nothing dropped yet";
this.dragAnythingOutput = "Nothing dropped yet";
this.projectDropOutput = "Nothing dropped yet";
return null;
}
public List<ApacheProject> getProjects()
{
return projects;
}
// TODO: reuse the code!
public void processJavaProjectDrop(DropEvent event) throws AbortProcessingException
{
String param = event.getParam();
if (param == null || param.isEmpty())
return;
ApacheProject droppedProject = null;
for (ApacheProject project : this.projects)
{
if (project.getId().equals(param))
{
droppedProject = project;
break;
}
}
if (droppedProject == null)
{
projectDropOutput = "No project or already dropped project is dropped.";
return;
}
projects.remove(droppedProject);
javaProjects.add(droppedProject);
projectDropOutput = droppedProject.getName() + " is moved.";
}
public void processCProjectDrop(DropEvent event) throws AbortProcessingException
{
String param = event.getParam();
if (param == null || param.isEmpty())
return;
ApacheProject droppedProject = null;
for (ApacheProject project : this.projects)
{
if (project.getId().equals(param))
{
droppedProject = project;
break;
}
}
if (droppedProject == null)
{
projectDropOutput = "No project or already dropped project is dropped.";
return;
}
projects.remove(droppedProject);
cProjects.add(droppedProject);
projectDropOutput = droppedProject.getName() + " is moved.";
}
public void processProjectDrop(DropEvent event) throws AbortProcessingException
{
String param = event.getParam();
if (param == null || param.isEmpty())
return;
ApacheProject droppedProject = null;
for (ApacheProject project : this.javaProjects)
{
if (project.getId().equals(param))
{
droppedProject = project;
this.javaProjects.remove(project);
break;
}
}
if (droppedProject == null)
{
for (ApacheProject project : this.cProjects)
{
if (project.getId().equals(param))
{
droppedProject = project;
this.cProjects.remove(project);
break;
}
}
}
if (droppedProject == null)
{
projectDropOutput = "No project or already dropped project is dropped.";
return;
}
projects.add(droppedProject);
projectDropOutput = droppedProject.getName() + " is moved.";
}
public String getProjectDropOutput()
{
return projectDropOutput;
}
public List<ApacheProject> getJavaProjects()
{
return javaProjects;
}
public List<ApacheProject> getCProjects()
{
return cProjects;
}
}