Package er.directtoweb.components

Source Code of er.directtoweb.components.ERD2WDebugFlags

package er.directtoweb.components;

import org.apache.log4j.Level;

import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.woextensions.WOStatsPage;

import er.directtoweb.ERD2WModel;
import er.directtoweb.ERDirectToWeb;
import er.extensions.ERXExtensions;
import er.extensions.ERXFrameworkPrincipal;
import er.extensions.appserver.ERXApplication;
import er.extensions.components.ERXComponentUtilities;
import er.extensions.foundation.ERXProperties;

/**
* This component can be used in the wrapper of a D2W app to provide convenient development time
* (as flagged by WOCachingEnabled) access to the log4j configuration
* ERD2WDebuggingEnabled
*/
public class ERD2WDebugFlags extends WOComponent {
  /**
   * Do I need to update serialVersionUID?
   * See section 5.6 <cite>Type Changes Affecting Serialization</cite> on page 51 of the
   * <a href="http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf">Java Object Serialization Spec</a>
   */
  private static final long serialVersionUID = 1L;

    public ERD2WDebugFlags(WOContext context) {
        super(context);
    }

    @Override
    public boolean isStateless() {
        return true;
    }

    public WOComponent statisticsPage() {
        WOStatsPage nextPage = (WOStatsPage) pageWithName("ERXStatisticsPage");
        nextPage.password = ERXProperties.stringForKey("WOStatisticsPassword");
        return nextPage.submit();
    }
   
    public WOComponent toggleD2WInfo() {   
        boolean currentState = ERDirectToWeb.d2wDebuggingEnabled(session());
        Level level = currentState ? Level.INFO : Level.DEBUG;
        ERDirectToWeb.debugLog.setLevel(level);
        ERD2WModel.ruleTraceEnabledLog.setLevel(level);
        ERDirectToWeb.setD2wDebuggingEnabled(session(), !currentState);
        ERDirectToWeb.setD2wComponentNameDebuggingEnabled(session(), !currentState);
        ERDirectToWeb.setD2wPropertyKeyDebuggingEnabled(session(), !currentState);
        return null;
    }

    public WOComponent toggleAdaptorLogging() {
        boolean currentState = adaptorLoggingEnabled();
        ERXExtensions.setAdaptorLogging(!currentState);
        return null;
    }

    public boolean adaptorLoggingEnabled() {
        return ERXExtensions.adaptorLogging();
    }

    public WOComponent clearD2WRuleCache() {
        ERD2WModel.erDefaultModel().clearD2WRuleCache();
        return null;
    }

    /**
     * Toggles the display of page metrics.
     * @return the current page
     */
    public WOComponent togglePageMetrics() {
        ERDirectToWeb.setPageMetricsEnabled(!metricsEnabled());
        return null;
    }

    /**
     * Determines if detailed page metrics should be displayed.
     * @return true if they should be displayed
     */
    public boolean metricsEnabled() {
        return ERDirectToWeb.pageMetricsEnabled();
    }

    /**
     * Toggles the display of detailed page metrics.
     * @return the current page
     */
    public WOComponent toggleDetailedPageMetrics() {
        ERDirectToWeb.setDetailedPageMetricsEnabled(!detailedMetricsEnabled());
        return null;
    }

    /**
     * Determines if detailed page metrics should be displayed.
     * @return true if they should be displayed
     */
    public boolean detailedMetricsEnabled() {
        return ERDirectToWeb.detailedPageMetricsEnabled();
    }

    /**
     * Allow users to override when the debug flags show.  Defaults to showing when the application is running in
     * {@link er.extensions.appserver.ERXApplication#isDevelopmentMode development mode}, i.e. is not deployed to production.
     * @return true when the debug flags should be displayed
     */
    public boolean shouldShow() {
        return ERXComponentUtilities.booleanValueForBinding(this, "shouldShow", ERXApplication.erxApplication().isDevelopmentMode());
    }

    /**
     * Check if Selenium Framework is installed.
     *
     * @return if Selenium Framework is Installed the <code>true</code> will return
     */
    public boolean hasSeleniumFramework() {
      return ERXFrameworkPrincipal.hasFrameworkInstalled("ERSelenium");
    }

}
TOP

Related Classes of er.directtoweb.components.ERD2WDebugFlags

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.