All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.citytechinc.cq.component.annotations.Tab Maven / Gradle / Ivy

There is a newer version: 7.0.0
Show newest version
/**
 *    Copyright 2017 ICF Olson
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */
package com.citytechinc.cq.component.annotations;

/**
 * Defines a Tab in a Component dialog.
 */
public @interface Tab {

	/**
	 * Title of the dialog Tab.
	 *
	 * @return String
	 */
	String title() default "";

	/**
	 * Applicable to Classic-UI only
	 * 
	 * Defines the path to the Tab definition in the content repository. This
	 * property may be used when the Tab is to be populated in the rendered
	 * dialog using an existing definition in the repository.
	 *
	 * @return String
	 */
	String classicUIPath() default "";

	/**
	 * Applicable to Touch-UI only
	 * 
	 * Defines the path to the Tab definition in the content repository. This
	 * property may be used when the Tab is to be populated in the rendered
	 * dialog using an existing definition in the repository.
	 * 
	 */
	String touchUIPath() default "";

	/**
	 * Applicable to Classic-UI only
	 * 
	 * The set of listeners which will be attributed to the tab. Listeners are
	 * output as properties in the listeners XML node which is a child of the
	 * XML node representing the dialog tab..
	 *
	 * @return Listener[]
	 */
	public Listener[] listeners() default {};

	/**
	 * Applicable to Touch-UI only
	 * 
	 * Defines the sling:resourceType for the renderCondition node for this tab
	 * 
	 */
	public String renderConditionResourceType() default "";

	/**
	 * Applicable to Touch-UI only
	 * 
	 * Defines additional properties to be added to the renderCondition node
	 * 
	 * These will only be added if renderConditionResourceType is not empty
	 * 
	 */
	public Property[] renderConditionProperties() default {};

	/**
	 * Applicable to Touch-UI only
	 * 
	 * Controls whether or not the tab is shown in the create page dialog
	 * 
	 */
	public boolean showOnCreate() default true;

	/**
	 * Applicable to Touch-UI only
	 *
	 * Controls whether or not the tab is hidden in the edit page dialog
	 *
	 */
	public boolean hideOnEdit() default false;

	/**
	 * Applicable to Touch-UI only
	 *
	 * Allows direct control over the name of the node generated for the Tab.
	 * This is useful in situations where you are supertyping a resource or you
	 * plan for your resource to be supertyped as it allows for the dialog
	 * structure to be shared by the inheriting components which is necessary
	 * for the resource merger mechanisms to act as expected.
	 *
	 * If unset the tab names will continue to default to a sanitized version of
	 * the title.
	 */
	String touchUINodeName() default "";

	/**
	 * Applicable to Touch-UI only
	 *
	 * Sets the sling:orderBefore property. This can be used when supertyping a
	 * resource to reorder the tabs
	 */
	String orderBefore() default "";
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy