package com.intuit.tank.filter;
/*
* #%L
* JSF Support Beans
* %%
* Copyright (C) 2011 - 2015 Intuit Inc.
* %%
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
* #L%
*/
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import com.intuit.tank.util.Messages;
import com.intuit.tank.auth.Security;
import com.intuit.tank.dao.ScriptFilterGroupDao;
import com.intuit.tank.project.ScriptFilterGroup;
import com.intuit.tank.util.Multiselectable;
import com.intuit.tank.view.filter.ViewFilterType;
import com.intuit.tank.vm.settings.AccessRight;
import com.intuit.tank.wrapper.SelectableBean;
import com.intuit.tank.wrapper.SelectableWrapper;
@Named
@ViewScoped
public class FilterGroupBean extends SelectableBean<ScriptFilterGroup> implements Serializable,
Multiselectable<ScriptFilterGroup> {
private static final long serialVersionUID = 1L;
private SelectableWrapper<ScriptFilterGroup> selectedFilter;
@Inject
private FilterBean filterBean;
@Inject
private Security security;
@Inject
private Messages messages;
/**
* Code for deleting a filter group goes here.
*
* @param event
*/
public void delete(ScriptFilterGroup group) {
if (!security.hasRight(AccessRight.DELETE_FILTER) && !security.isOwner(group)) {
messages.warn("You don't have permission to delete this filter group.");
} else {
new ScriptFilterGroupDao().delete(group);
refresh();
}
}
/**
* @{inheritDoc
*/
@Override
public List<ScriptFilterGroup> getEntityList(ViewFilterType viewFilter) {
List<ScriptFilterGroup> all = new ScriptFilterGroupDao().findAll();
Collections.sort(all);
return all;
}
/**
* @{inheritDoc
*/
@Override
public boolean isCurrent() {
return true;
}
/**
* @return the selectedFilter
*/
public SelectableWrapper<ScriptFilterGroup> getSelectedFilter() {
return selectedFilter;
}
/**
* @param selectedFilter
* the selectedFilter to set
*/
public void setSelectedFilter(SelectableWrapper<ScriptFilterGroup> selectedFilter) {
this.selectedFilter = selectedFilter;
}
public void deleteSelectedFilterGroup() {
if (selectedFilter != null) {
delete(selectedFilter.getEntity());
}
}
/**
*
* @{inheritDoc
*/
@Override
public void selectAll() {
super.selectAll();
processAllSelection();
}
/**
*
* @{inheritDoc
*/
@Override
public void unselectAll() {
super.unselectAll();
processAllSelection();
}
public void processAllSelection() {
List<SelectableWrapper<ScriptFilterGroup>> wrappers = getSelectionList();
for (SelectableWrapper<ScriptFilterGroup> wrapper : wrappers) {
filterBean.processSelection(wrapper);
}
}
}