001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.wicket.settings;
018:
019: /**
020: * Settings interface for various debug settings
021: * <p>
022: * <i>componentUseCheck </i> (defaults to true) - Causes the framework to do a
023: * check after rendering each page to ensure that each component was used in
024: * rendering the markup. If components are found that are not referenced in the
025: * markup, an appropriate error will be displayed <i>serializeSessionAttributes</i>
026: * (defaults to true in devel mode) - Causes the framework to serialize any
027: * attribute put into session - this helps find Not Serializable errors early
028: * <p>
029: *
030: *
031: * @author Igor Vaynberg (ivaynberg)
032: */
033: public interface IDebugSettings {
034: /**
035: * @return true if componentUseCheck is enabled
036: */
037: boolean getComponentUseCheck();
038:
039: /**
040: * Sets componentUseCheck debug settings
041: *
042: * @param check
043: */
044: void setComponentUseCheck(boolean check);
045:
046: /**
047: * Enables or disables ajax debug mode. See {@link IAjaxSettings} for
048: * details
049: *
050: * @param enable
051: *
052: */
053: void setAjaxDebugModeEnabled(boolean enable);
054:
055: /**
056: * Returns status of ajax debug mode. See {@link IAjaxSettings} for details
057: *
058: * @return true if ajax debug mode is enabled, false otherwise
059: *
060: */
061: boolean isAjaxDebugModeEnabled();
062:
063: /**
064: * Enables wrapping output of markup container in html comments that contain
065: * markup container's class name. (Useful for determining which part of page
066: * belongs to which markup file).
067: *
068: * @param enable
069: */
070: void setOutputMarkupContainerClassName(boolean enable);
071:
072: /**
073: * Returns whether the output of markup container's should be wrapped by
074: * comments containing the container's class name.
075: *
076: * @return true if the markup container's class name should be written to
077: * response
078: */
079: public boolean isOutputMarkupContainerClassName();
080:
081: /**
082: * Returns status of line precise error reporting for added components that
083: * are not present in the markup: it points to the line where the component
084: * was added to the hierarchy in your Java classes. This can cause a
085: * significant decrease in performance, do not use in customer facing
086: * applications.
087: *
088: * @return true if the line precise error reporting is enabled
089: */
090: public boolean isLinePreciseReportingOnAddComponentEnabled();
091:
092: /**
093: * Enables line precise error reporting for added components that are not
094: * present in the markup: it points to the line where the component was
095: * added to the hierarchy in your Java classes. This can cause a significant
096: * decrease in performance, do not use in customer facing applications.
097: *
098: * @param enable
099: */
100: public void setLinePreciseReportingOnAddComponentEnabled(
101: boolean enable);
102:
103: /**
104: * Returns status of line precise error reporting for new components that
105: * are not present in the markup: it points to the line where the component
106: * was created in your Java classes. This can cause a significant decrease
107: * in performance, do not use in customer facing applications.
108: *
109: * @return true if the line precise error reporting is enabled
110: */
111: public boolean isLinePreciseReportingOnNewComponentEnabled();
112:
113: /**
114: * Enables line precise error reporting for new components that are not
115: * present in the markup: it points to the line where the component was
116: * created in your Java classes. This can cause a significant decrease in
117: * performance, do not use in customer facing applications.
118: *
119: * @param enable
120: */
121: public void setLinePreciseReportingOnNewComponentEnabled(
122: boolean enable);
123: }
|