package org.imixs.marty.profile; import java.util.List; import javax.faces.bean.ViewScoped; import javax.inject.Inject; import org.imixs.workflow.faces.workitem.ViewController; /** * This View Controller extends the default viewController and provides a custom * getQuery method based on the current user profile * * @author rsoika * */ @ViewScoped public class FavoritesViewController extends ViewController { private static final long serialVersionUID = 1L; @Inject protected UserController userController; /** * Generate custom query based on the user profile */ @SuppressWarnings("unchecked") @Override public String getQuery() { List<String> favorites = null; if (userController.getWorkitem() == null) { return null; } // get favorite ids from profile favorites = userController.getWorkitem().getItemValue("txtWorkitemRef"); if (favorites == null || favorites.size() == 0) { return null; } String sQuery = "(type:\"workitem\" OR type:\"workitemarchive\") "; // create IN list sQuery += " ( "; for (String aID : favorites) { sQuery += "$uniqueid:\"" + aID + "\" OR "; } // cut last , sQuery = sQuery.substring(0, sQuery.length() - 3); sQuery += " ) "; return sQuery; } }