diff src/main/java/de/mpiwg/itgroup/ismi/entry/beans/DigiListBean.java @ 1:2e911857a759

(none)
author jurzua
date Wed, 29 Oct 2014 14:00:28 +0000
parents
children 4aa8c425685d
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/DigiListBean.java	Wed Oct 29 14:00:28 2014 +0000
@@ -0,0 +1,172 @@
+package de.mpiwg.itgroup.ismi.entry.beans;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.faces.event.ActionEvent;
+import javax.faces.event.AjaxBehaviorEvent;
+import javax.faces.event.ValueChangeEvent;
+import javax.faces.model.SelectItem;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.mpi.openmind.cache.WrapperService;
+import org.mpi.openmind.repository.bo.Entity;
+
+import de.mpiwg.itgroup.ismi.utils.templates.DigitalizationTemplate;
+
+public class DigiListBean extends AbstractBean{
+	private static final long serialVersionUID = 8982550339613012125L;
+	private static Logger logger = Logger.getLogger(DigiListBean.class);
+	
+	
+	private static List<SelectItem> codexFilter;
+	
+	private static int ALL = 0;
+	private static int WITH_CODEX = 1;
+	private static int WITHOUT_CODEX = 2;
+	private int selectedFilter = ALL;
+	
+	static{
+		codexFilter = new ArrayList<SelectItem>();
+		codexFilter.add(new SelectItem(ALL, "All"));
+		codexFilter.add(new SelectItem(WITH_CODEX, "With codex"));
+		codexFilter.add(new SelectItem(WITHOUT_CODEX, "Without codex"));
+	}
+	
+	private List<DigitalizationTemplate> allList;
+	private List<DigitalizationTemplate> list;
+	private List<String> suggestionList;
+	private String filterTerm;
+	
+	public DigiListBean(WrapperService om){
+		reset(om);
+	}
+	
+	
+	/*
+	public void listenerDigiFilter(ValueChangeEvent event){
+		//System.out.println("listenerDigiFilter");
+		//System.out.println(event.getNewValue());
+		this.filterTerm = event.getNewValue() + "";
+		filter();
+	}*/
+	
+	public void eventFilter(AjaxBehaviorEvent event){
+		//System.out.println("AjaxBehaviorEvent: " + this.filterTerm);
+		if(StringUtils.isNotEmpty(filterTerm)){
+			filter();
+		}else{
+			reset(getAppBean().getWrapper());
+		}
+	}
+	
+	private void filter(){
+		//System.out.println(this.allList.size());
+		this.list = new ArrayList<DigitalizationTemplate>();
+		this.suggestionList = new ArrayList<String>();
+		
+		for(DigitalizationTemplate digi : this.allList){
+			if(StringUtils.containsIgnoreCase(digi.getEntity().getOwnValue(), filterTerm)){
+				addDigi(digi);
+			}
+		}
+		//System.out.println(this.list.size());
+		Collections.sort(list);
+	}
+	
+	private void reset(WrapperService om){
+		//System.out.println("Reset");
+		list = new ArrayList<DigitalizationTemplate>();
+		allList = new ArrayList<DigitalizationTemplate>();
+		suggestionList = new ArrayList<String>();
+		filterTerm = null;
+		
+		long start = System.currentTimeMillis();
+		List<Entity> entList = om.getEntitiesByDef("DIGITALIZATION");
+		for(Entity digi : entList){
+			DigitalizationTemplate d = new DigitalizationTemplate(digi, om);
+			d.init();
+			if(selectedFilter == ALL){
+				//list.add(d);
+				this.addDigi(d);
+			}else if(selectedFilter == WITH_CODEX && d.isHasCodex()){
+				//list.add(d);
+				this.addDigi(d);
+			}else if(selectedFilter == WITHOUT_CODEX && !d.isHasCodex()){
+				//list.add(d);
+				this.addDigi(d);
+			}
+		}
+		Collections.sort(list);
+		this.allList = new ArrayList<DigitalizationTemplate>(list);
+		
+		long diff = System.currentTimeMillis() - start;
+		logger.info("DigitalizationList Generation - Time[ms] = " + diff);	
+	}
+	
+	private void addDigi(DigitalizationTemplate d){
+		this.list.add(d);
+		if(!suggestionList.contains(d.getEntity().getOwnValue())){
+			this.suggestionList.add(d.getEntity().getOwnValue());
+		}
+	}
+	
+	public int getListSize(){
+		return this.list.size();
+	}
+	
+	public void listenerRefresh(ActionEvent event){
+		System.out.println("listenerRefresh");
+		reset(getAppBean().getWrapper());
+	}
+	
+	public String actionEditDigi(){
+		DigitalizationTemplate digi = (DigitalizationTemplate)getRequestBean("digi");
+		if(digi != null){
+			getSessionBean().editEntity(digi.getEntity());
+			return "entry_edit_entity";
+		}
+		return null;	
+	}
+	
+	public String actionEditWitness(){
+		Entity entity = (Entity)getRequestBean("witness");
+		if(entity != null){
+			getSessionBean().editEntity(entity);
+			return "entry_edit_entity";
+		}
+		return null;	
+	}
+	
+	public List<DigitalizationTemplate> getList() {
+		return list;
+	}
+
+	public int getSelectedFilter() {
+		return selectedFilter;
+	}
+
+	public void setSelectedFilter(int selectedFilter) {
+		this.selectedFilter = selectedFilter;
+	}
+	
+	public List<SelectItem> getCodexFilter(){
+		return codexFilter;
+	}
+
+
+	public String getFilterTerm() {
+		return filterTerm;
+	}
+
+
+	public void setFilterTerm(String filterTerm) {
+		this.filterTerm = filterTerm;
+	}
+
+	public List<String> getSuggesstionList(){
+		return this.suggestionList;
+	}
+}