Etoolbox Authoring Kit Versions Save

Offers a set of tools that create Granite UI authoring interfaces for Adobe Experience Manager components from Java code. This is a comprehensive solution that makes different widgets work in a coordinated manner, provides greater interactivity in AEM dialogs, and introduces additional features (customizable data lists, options selection, etc.)

v.2.0.8

2 years ago

New features

  • Another dialog widget supported - create ButtonGroups (see) with Java code annotations.
  • Extended support of TextFields and TextAreas - all the properties according to the spec.

Updates and fixes

  • Dialog-level forceIgnoreFreshness: we made sure that the pre-existing properties are correctly rendered when the dialog is updated with the forceIgnoreFreshness flag.
  • Improved project documentation.

Issues managed

  • EAK-270, EAK-272, EAK-275

v.2.0.7

2 years ago

New features

  • Ability to set up forceIgnoreFreshness feature (see) not only for a particular component but for the entire dialog.
  • Ability to force composite multifield mode (data stored in subnodes, rather than arrays) for a one-widget multifield.

Updates and fixes

  • @Place annotation now understands the _Super presudoclass.
  • Added the possibility to specify different widget annotations for the field and the similarly named accessor method (e.g., text and getText()).
  • Fixed @Replace processing logic: not observing the manually specified order of widgets in the target class; crashing when the same field is set to be replaced several times.
  • Fixed multifields not properly rendered when @Multipe is added to a class member which defines a complex dialog widget, such as @RichTextEditor.
  • Made update-options DependsOn action restore selected options when more than one options needs to be selected.
  • UI: improved complex multifields performance.
  • Improved compatibility with AEM as a Cloud Service.

v.2.0.6

2 years ago

New features

  • Ability to specify a Sling TypeHint/DeleteHint for a Multifield.
  • Ability to exclude EToolbox Lists' pages from search indexing.

Updates and fixes

  • Fixed extra dialog fields being rendered in a tab when using the "tabs from nested classes" setup.
  • Fixed the login of moving widget's properties to the nested container of a multifield when using @Miltiple.
  • Fixed the cause for the "component already started" exception occasionally logged on bundle restart.
  • Documentation updates.

v.2.0.5

3 years ago

New features

  • Ability to create page properties dialogs.
  • Display of plugin statistics at the end of execution.

Updates and fixes

  • A default cq:editConfig node is created when neither of the dialogs is specified for a component (allows a component to still appear in the "Insert new component" popup and the component rail when a component dialog is not needed).
  • Fixed replication status display of Exadel Toolbox Lists content policies.
  • DependsOn fixes and code optimization.
  • Documentation updates.

v.2.0.4

3 years ago

New features

  • Ability to create a folder for the path specified in @AemComponent if missing in the package (create components on the fly).
  • Ability to set up custom views for Exadel Toolbox List item: item properties and item preview section.

Updates and fixes

  • OptionProvider allows creating option sets containing only static values (without the need to specify JCR sources).
  • Open Exadel Toolbox List item dialog with a double click.
  • Fixes in DependsOn validation and widget showing/hiding logic.

Documentation

  • Complete Javadoc on API and core functionality published here.

v.2.0.3

3 years ago

New features

  • @Include annotation for including JCR resources into Touch UI dialogs.
  • Ability to specify an absolute path to a component in @AemComponent(path = ...) regardless of componentsPathBase config value.
  • Ability to exclude one or more options from rendering despite stored in a JCR resource when using OptionProvider.

Updates and fixes

  • Fixed an interference between ordinary HTTP query parameters and OptionProvider config values when using in a Granite console.
  • Overal stability improvements and fixes.

Documentation and visual styles

  • New graphic identity in line with Exadel Toolbox visual style.
  • Improved README, Javadoc, and Jsdoc.

v.2.0.2

3 years ago

(Formerly AEM Authoring Toolkit)

This is the first release of the version 2 branch. The project has been rebranded but retains compatibility with AEM Authoring Toolkit both in its philosophy and codebase.

Overall changes

Project structure now complies with the modern AEM project archetype by Adobe. Former api module has been renamed to core. Former assets package is now the cumulative all package that comprises ui.apps and ui.content modules.

New and updated features

  • We introduced the intuitive annotation structure that maps to the AEM component node structure (now having @AemComponent, @Dialog, @DesignDialog in addition to @EditConfig, @ChildEditConfig, @HtmlTag).
  • We implemented the ability to spread component definitions across multiple Java classes and interfaces, if reasonable. E.g. a Java class may be annotated with @Dialog, another class/interface with @DesignDialog, etc., and yet they assemble into the one AEM component.
  • Ability to put annotations to not only fields but also methods, including interface methods.
  • Brand new handlers/customization API with Java-native methods for traversing and modifying markup. More intuitive and error-proof. See documentation for details.
  • Ability to register custom handlers to all of the component nodes, not only dialog and dialog fields.
  • Ability to create either handler-processed or automapped custom annotations bound to any component node.
  • New dialog layout option: Accordion-shaped dialogs.
  • Ability to specify relative paths in FieldSets' prefixes and postfixes, custom Property-s, and custom annotation properties' renditions.
  • A bunch of new dialog widgets: @Accordion, @Tabs, @AnchorButton , @Hyperlink, @Text.

Plus: multiple performance optimizations and bug fixes for the core, plugin, and the DependsOn microframework.

New authoring experience

  • Introducing EToolbox Lists - an advanced rendition of authorable structured dictionary storage (somewhat similar to the ACS AEM Commons lists but with the support of an arbitrary number of values in a list entry, any data type).
  • Option Provider - the way to create a list of options consumable by option selector components, such as @Select/Dropdown or @RadioGroup, from an arbitrary list, tag folder, or just a node with its child nodes. Allows modifying options on the fly as a foreign component's value changes.

Deprecation and cleanup

API traits that were deprecated in versions 1.0.2-1.2.1 have been removed. Several other traits have been deprecated in favor of modern ones. A proper alternative is proposed for each of them in Javadoc.

Documenting

New documentation has been introduced.

Sample project

Updated with the features and improvements of recent releases.

v.1.2.1

3 years ago

AEM Authoring Toolkit API and Maven plugin

New features:

  • @HtmlTag anntation to define a specific wrapper tag for an AEM component;
  • @Multiple annotation that allows to create a multifield out of a single widget field with no need of a special servce class;
  • Adanced terminateOn config giving the possibility to flexibly turn on/off exceptions and groups of exceptions that would interrupt Maven build workflow.

Updates and fixes:

  • More verbose and flexible setup of Select widget;
  • Updated ImageUpload API;
  • Ability to set properties of Heading and Alert widgets;
  • Check and report if duplicate node names within a container would cause unexpected rendering;
  • More informative javadoc and user manuals; guides on usage of Coral utility classes.

Assets/DependsOn module

New features:

  • DependsOn updated to internal version 2.4.1;
  • Brand new fetch action to asynchronously rertieve an arbitrary resource's vaue.

Updates and fixes:

  • Ability to skip default field name in DependsOnRef;
  • Enhanced support of object/JSON values inside DependsOn references;
  • Code optimizations and fixes.

Sample project

Updated with the features and improvements of recent releases.

v.1.2.0

4 years ago

Updates in AEM Authoring Toolkit API and Maven plugin

New features:

  • @ChildEditConfig to set up cq:childEditConfig node of your component;
  • New widget-defining annotations: @Button and @Heading;
  • Ability to set up arbitrary @DataSource for radio groups and drop-down lists;
  • @IgnoreField annotation that helps to reuse more flexibly pre-exising code structures (use a foreign @FieldSet but alter or skip a couple of fields from it);
  • Ability to redirect value stored by a widget to a ./sub/node (bi-directional) or a ../parent/node (write-only) thus changing the @DialogField.name();
  • Same for fieldsets' prefixes;
  • Usage of @Property/@CommonProperty as multiple annotations.

Updates and fixes:

  • Fixed and optimized rendering of @ColorPicker, @Select, @RichTextEditor;
  • Fixed Maven plugin crash when a non-existent tab label set in @PlaceOnTab annotation;
  • More verbose user warnings;
  • Several performance tweaks.

v.1.1.1

4 years ago

This release contains updates mainly in DependsOn microframework within the aem-authoring-toolkit-assets module

Updates in Assets/DependsOn module

New DependsOn features:

  • Added multifield accessor

DependsOn bug fixes:

  • Fixed "required" action for several fields (ColorField, PathField, DatePicker, FileUpload)
  • Fixed tab focus for the cases when the first tab is hidden
  • Fixed "asterisk" for Checkbox
  • Fixed "disabled" action for RTE (now disabled RTE's values are not sent on form submission)

Updates in AEM Authoring Toolkit API and Maven plugin

  • Added validation property to @DialogField annotation (maps to default Adobe Granite validation feature)