# Catalog Editor Sample

Catalog editor is a two page editor that primarily demonstrates grouping of flat data.

1. Key Concepts

1. Using a custom list binding to group items based on an item property value
2. Simultaneous presentation of the same items grouped in different ways.

2. Model

1. Value property
2. Derived value property using EL
3. List property (homogeneous and heterogeneous)
4. @ReadOnly list property
5. @Required
6. @LongString
7. @PossibleValues using values from model

3. XML

1. Basic root binding using @XmlBinding
2. Basic value property binding using @XmlBinding
3. Basic list property binding using @XmlListBinding
4. Custom list property binding using @CustomXmlListBinding
5. Two page editor with an XML source editor page

4. Forms

1. Master-details editor page

1. Extending persistent state

1. Custom persistent state element type for the "Show Manufacturer" and "Show Price" features
2. Generic persistent attributes used for the "Color Code Manufacturers" feature

2. Custom page-level toggle action

2. Content node
3. Content node factory

1. EL used for node label to base label of item nodes on item name and manufacturer
2. EL used for node image to implement the "Color Code Manufacturers" feature

4. Content node include

1. Reuse the same node factory definition in several places

5. Section

1. EL used for section description to customize description to context

6. Section Reference

1. Reuse the same section definition in several places

7. Property editor

1. Text field
2. Table

8. Page book

1. Using list selection for master-details effect

9. Label
10. Actuator
11. Line separator with label

5. Expression Language

1. Ternary operator (conditional expression)
2. Concat() function
3. Min() function
4. Max() function
5. Scale() function
6. State() function
7. Custom function (CatalogItemImage)

Copyright (c) 2016 Oracle
Content made available under the terms of Eclipse Public License.