com.citytechinc.cq.component.annotations.Tab Maven / Gradle / Ivy
/**
* 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 "";
}