/** * */ package org.openntf.domino.xsp.helpers; import java.util.logging.Logger; import org.openntf.domino.xsp.ODAPlatform; import com.ibm.commons.util.StringUtil; import com.ibm.xsp.model.domino.ViewNavigatorEx; import com.ibm.xsp.model.domino.ViewNavigatorFactory; import com.ibm.xsp.model.domino.viewnavigator.FTViewNavigatorEx; import com.ibm.xsp.model.domino.viewnavigator.NOIViewNavigatorEx; import com.ibm.xsp.model.domino.viewnavigator.NOIViewNavigatorEx9; /** * @author Nathan T. Freeman * * OpenntfViewNavigatorFactoryFactory class */ public class OpenntfViewNavigatorFactoryFactory implements ViewNavigatorFactory.Factory { @SuppressWarnings("unused") private static final Logger log_ = Logger.getLogger(OpenntfViewNavigatorFactoryFactory.class.getName()); // static { // System.out.println("Loaded " + OpenntfViewNavigatorFactoryFactory.class.getName()); // } /** * Constructor */ public OpenntfViewNavigatorFactoryFactory() { // System.out.println(OpenntfViewNavigatorFactoryFactory.class.getName() + " constructed with no arguments."); } // public OpenntfViewNavigatorFactoryFactory(final ViewNavigatorFactory delegate) { // delegate_ = delegate; // System.out.println("OpenntfViewNavigatorFactoryFactory constructed with delegate!"); // } /* * (non-Javadoc) * * @see com.ibm.xsp.model.domino.ViewNavigatorFactory.Factory#createFactory(java.lang.String, java.lang.String) */ @Override public ViewNavigatorFactory createFactory(final String dbPath, final String viewName) { // System.out.println("OpenntfViewNavigatorFactoryFactory.createFactory called with arguments: " + paramString1 + " and " // + paramString2); return new OpenntfViewNavigatorFactory(dbPath, viewName); } /** * OpenntfViewNavigatorFactory class */ public static class OpenntfViewNavigatorFactory extends ViewNavigatorFactory { private static final long serialVersionUID = 1L; @SuppressWarnings("unused") private final String dbPath_; @SuppressWarnings("unused") private final String viewName_; private String entrySearchString; /** * Constructor * * @param dbPath * String database path for which the load a navigator * @param viewName * String view name * @since org.openntf.domino.xsp 4.5.0 */ public OpenntfViewNavigatorFactory(final String dbPath, final String viewName) { dbPath_ = dbPath; viewName_ = viewName; } @Override public String getFTSearch() { String superFT = super.getFTSearch(); if (superFT != null && superFT.startsWith("searchInEntries:")) { setFTSearch(""); entrySearchString = superFT.substring(16); } return superFT; } /* * (non-Javadoc) * * @see com.ibm.xsp.model.domino.ViewNavigatorFactory#findNavigatorType() */ @Override public int findNavigatorType() { // System.out.println("findNavigatorType requested"); return 1337; } /* * (non-Javadoc) * * @see com.ibm.xsp.model.domino.ViewNavigatorFactory#createNavigator() */ @Override public ViewNavigatorEx createNavigator() { ViewNavigatorEx result = super.createNavigator(); if (result instanceof FTViewNavigatorEx) { if (ODAPlatform.isAppGodMode(null) && StringUtil.isNotEmpty(entrySearchString)) { result = new OpenntfViewNavigatorEx(this, entrySearchString); } } if (result instanceof NOIViewNavigatorEx9 || result instanceof NOIViewNavigatorEx) { if (ODAPlatform.isAppGodMode(null)) { // FacesContext ctx = FacesContext.getCurrentInstance(); // if (ctx instanceof DominoFacesContext) { // DominoFacesContext impl = (DominoFacesContext) ctx; // ApplicationEx ae = impl.getApplicationEx(); // String persistMode = ae.getApplicationProperty("xsp.persistence.mode", null); // // System.out.println("Current persistence mode: " + persistMode); // StateManager sm = impl.getApplicationEx().getStateManager(); // if (persistMode.equals("file")) { // System.out // .println("ALERT! This application is set to use file state management mode but also use the OpenNTF API in takeover mode, which can cause problems!"); // System.out.println("Switch to 'keep current page in memory' to eliminate this message."); // // return result; // } else if (persistMode.equals("persistance")) { // persistence // System.out.println("This application is set to use persistence state management mode"); // } else if (persistMode.equals("session")) { // session // System.out.println("This application is set to use session state management mode"); // } else { // default // System.out.println("This application is set to use basic state management mode"); // } // } result = new OpenntfViewNavigatorEx(this, entrySearchString); } } else { // System.out.println("returning a " + result.getClass().getName()); } // if (!(result instanceof OpenntfViewNavigatorEx)) { // System.out.println("Returning a ViewNavigatorEx of type " + result.getClass().getName()); // } return result; } // public OpenntfViewNavigatorFactory(ViewNavigatorFactory delegate) { // delegate_ =delegate; // System.out.println("OpenntfViewNavigatoryFactory constructed with delegate"); // } } }