/**
*
*/
package org.nightlabs.jfire.department.admin.ui.editor;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import javax.jdo.FetchPlan;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.ui.IEditorInput;
import org.nightlabs.base.ui.entity.tree.IEntityTreeCategory;
import org.nightlabs.base.ui.table.TableLabelProvider;
import org.nightlabs.jdo.NLJDOHelper;
import org.nightlabs.jfire.base.ui.entity.tree.ActiveJDOEntityTreeCategory;
import org.nightlabs.jfire.department.Department;
import org.nightlabs.jfire.department.dao.DepartmentDAO;
import org.nightlabs.jfire.department.id.DepartmentID;
import org.nightlabs.progress.ProgressMonitor;
/**
* An {@link IEntityTreeCategory} that shows the departments.
*
* @author Chairat Kongarayawetchakun <!-- chairat [AT] nightlabs [DOT] de -->
*/
public class EntityTreeCategoryDepartment
extends ActiveJDOEntityTreeCategory<DepartmentID, Department> {
public static String[] FETCH_GROUPS_DEPARTMENT = new String[] {
FetchPlan.DEFAULT, Department.FETCH_GROUP_NAME
};
/*
* (non-Javadoc)
* @see org.nightlabs.jfire.base.ui.entity.tree.ActiveJDOEntityTreeCategory#getJDOObjectClass()
*/
@Override
protected Class<Department> getJDOObjectClass() {
return Department.class;
}
/*
* (non-Javadoc)
* @see org.nightlabs.jfire.base.ui.entity.tree.ActiveJDOEntityTreeCategory#retrieveJDOObjects(java.util.Set, org.nightlabs.progress.ProgressMonitor)
*/
@Override
protected Collection<Department> retrieveJDOObjects(
Set<DepartmentID> objectIDs, ProgressMonitor monitor) {
return DepartmentDAO.sharedInstance().getDepartments(objectIDs,
FETCH_GROUPS_DEPARTMENT, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor);
}
@Override
protected Collection<Department> retrieveJDOObjects(ProgressMonitor monitor) {
return DepartmentDAO.sharedInstance().getDepartments(
FETCH_GROUPS_DEPARTMENT, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor);
}
/*
* (non-Javadoc)
* @see org.nightlabs.jfire.base.ui.entity.tree.ActiveJDOEntityTreeCategory#sortJDOObjects(java.util.List)
*/
@Override
protected void sortJDOObjects(List<Department> objects) {
}
/*
* (non-Javadoc)
* @see org.nightlabs.base.ui.entity.tree.IEntityTreeCategory#createEditorInput(java.lang.Object)
*/
@Override
public IEditorInput createEditorInput(Object o) {
Department department = (Department)o;
DepartmentID departmentID = DepartmentID.create(department.getOrganisationID(), department.getDepartmentID());
return new DepartmentEditorInput(departmentID);
}
/*
* (non-Javadoc)
* @see org.nightlabs.base.ui.entity.tree.IEntityTreeCategory#createLabelProvider()
*/
@Override
public ITableLabelProvider createLabelProvider() {
return new TableLabelProvider() {
@Override
public String getColumnText(Object element, int columnIndex) {
switch (columnIndex) {
case 0:
if (element instanceof Department)
return ((Department) element).getName().getText();
else
return String.valueOf(element);
default:
return ""; //$NON-NLS-1$
}
}
@Override
public String getText(Object element) {
if (element instanceof Department)
return ((Department) element).getName().getText();
else
return String.valueOf(element);
}
};
}
}