-
Notifications
You must be signed in to change notification settings - Fork 149
GXE Structure
GXE is intended to support metadata profiles or additional metadata schemas. This section describes how to configure GXE for this as well as how to alter the behavior of the editor for existing metadata schemas. For general introduction and additional topics, see Geoportal XML Editor. After reading this topic, you can work through the GXE Crash Course to become familiar with customizing the GXE Editor.
The files that define the core structure for the editor are located within the [webapp]/WEB-INF/classes/gpt/gxe
directory. These files provide a foundation for reuse when defining the content of an editor. Although it is not mandatory to extend an editor from these files, the editors that ship with the Geoportal Server all extend from this core.
-
[webapp]/WEB-INF/classes/gpt/gxe/editor.xml
This is the base editor from which all other editors extend.
The directory at [webapp]/WEB-INF/classes/gpt/gxe/core/ui
contains a collection of reusable files
associated with the binding of editor components to the user interface. Below is a description of files found in the ui directory.
-
[webapp]/WEB-INF/classes/gpt/gxe/core/ui
A collection of reusable files associated with the binding of editor components to the user interface. -
[webapp]/WEB-INF/classes/gpt/gxe/core/ui/InputText.xml
seful for binding an input text box to the value of a target XML node (element text or attribute). The default definition will render an HTML<input>
tag of type text with a size of 60 and max length of 2048. A JavaScript object of typegxe.control.InputText
will be instantiated to process the component.
<h:input xmlns:g="http://www.esri.com/geoportal/gxe" xmlns:h="http://www.esri.com/geoportal/gxe/html" h:tag="input" h:type="text" h:size="60" h:maxlength="2048" g:jsClass="gxe.control.InputText"/>
-
[webapp]/WEB-INF/classes/gpt/gxe/core/ui/InputTextArea.xml
Useful for binding an input text area box to the value of a target XML node (element text). The default definition will render an HTML<textarea>
tag of type text with 46 columns and 3 rows. A JavaScript object of typegxe.control.InputTextArea
will be instantiated to process the component.
<h:textarea xmlns:g="http://www.esri.com/geoportal/gxe" xmlns:h="http://www.esri.com/geoportal/gxe/html" h:tag="textarea" h:cols="46" h:rows="3" g:jsClass="gxe.control.InputTextArea"/>
-
[webapp]/WEB-INF/classes/gpt/gxe/core/ui/InputSelectOne.xml
Useful for binding a select dropdown to the value of a target XML node (element text or attribute). The default definition will render an HTML<select>
tag. A JavaScript object of typegxe.control.InputSelectOne
will be instantiated to process the component. The selectable options are provided by the definition component extending this file.
<h:select xmlns:g="http://www.esri.com/geoportal/gxe" xmlns:h="http://www.esri.com/geoportal/gxe/html" h:tag="select" g:jsClass="gxe.control.InputSelectOne"> <g:options g:overridable="true"/> </h:select>
-
[webapp]/WEB-INF/classes/gpt/gxe/core/ui/InputSelectMany.xml
Useful for binding a multiple checkbox control to the values associated with a repeatable XML target node (element text). The default definition will render an HTML <ul> tag with a CSS class namedgxeSelectMany
. A JavaScript object of typegxe.control.InputSelectMany
will be instantiated to process the component. The selectable options are provided by the definition component extending this file, and will be rendered as checkboxes within HTML<li>
tag.
<h:ul xmlns:g="http://www.esri.com/geoportal/gxe" xmlns:h="http://www.esri.com/geoportal/gxe/html" h:tag="ul" h:class="gxeSelectMany" g:jsClass="gxe.control.InputSelectMany"> <g:options g:overridable="true"/> </h:ul>
-
[webapp]/WEB-INF/classes/gpt/gxe/core/ui/InputDelimitedTextArea.xml
Useful for binding an input text area box (comma delimited by default) to the values associated with a repeatable XML target node (element text). The default definition will render an HTML<textarea>
tag of type text with 60 columns and 10 rows. A JavaScript object of typegxe.control.InputDelimitedTextArea
will be instantiated to process the component.
The directory at [webapp]/WEB-INF/classes/gpt/gxe/core/xml
contains a collection of reusable files associated with the binding of editor components to the targeted XML mapping. Below is a description of files found in the xml directory.
-
[webapp]/WEB-INF/classes/gpt/gxe/core/xml/Element.xml
Useful for binding a user interface component to a complex target XML element type (i.e. an element that has an attribute or children). This definition component extends from$base/core/ui/Section.xml
(i.e., inherits structure and behavior). The qualified name for the component will be overridden asg:element
. The JavaScript object (g:jsClass
) instantiated to process the component will be overridden asgxe.control.Element
.
<g:element xmlns:g="http://www.esri.com/geoportal/gxe" xmlns:h="http://www.esri.com/geoportal/gxe/html" g:jsClass="gxe.control.Element" g:extends="$base/core/ui/Section.xml"/>
-
[webapp]/WEB-INF/classes/gpt/gxe/core/xml/ElementTextOnly.xml
Useful for binding a user interface component to a simple target XML element type (i.e., an element that has text content but no attribute or children). This definition component adds an input text box to the body of the underlying section. The input component is flagged as overridable and can be replaced if required by a component that extends this component.
<g:element xmlns:g="http://www.esri.com/geoportal/gxe" xmlns:h="http://www.esri.com/geoportal/gxe/html" g:extends="$base/core/xml/Element.xml"> <g:body> <g:input g:overridable="true" g:extends="$base/core/ui/InputText.xml"/> </g:body> </g:element>
-
[webapp]/WEB-INF/classes/gpt/gxe/core/xml/Attribute.xml
Useful for binding a user interface component to a target XML attribute. This definition component adds an input text box to the body of the underlying section. The input component is flagged as overridable and can be replaced if required by a component that extends this component.
<g:attribute xmlns:g="http://www.esri.com/geoportal/gxe" xmlns:h="http://www.esri.com/geoportal/gxe/html" g:jsClass="gxe.control.Attribute" g:extends="$base/core/ui/Section.xml"> <g:body> <g:input g:overridable="true" g:extends="$base/core/ui/InputText.xml"/> </g:body> </g:attribute>
-
[webapp]/WEB-INF/classes/gpt/gxe/core/xml/ElementChoice.xml
Useful for binding an exclusive user interface choice component to a list of target XML element. A section will be added to the user interface (HTML<div>
tag with a CSS class namedgxeTabs
, processed by a JavaScript object of typegxe.control.ElementChoice
). A header will be added to the section (HTML<div>
tag with a CSS class named gxeTabsHeader). An array of tabs will be added to the header (HTML<ul>
tag with a CSS class namedgxeTabArray
, processed by a JavaScript object of typegxe.control.TabArray
). A body will be added to the section (HTML<div>
tag with a CSS class namedgxeTabsBody
, processed by a JavaScript object of typegxe.control.ElementChoiceBody
). A radio button will be generated for each child declared within the body. Only one of these children will be selected at any given time, and only that element will be serialized within the resultant XML document.
<g:elementChoice xmlns:g="http://www.esri.com/geoportal/gxe" xmlns:h="http://www.esri.com/geoportal/gxe/html" h:tag="div" h:class="gxeTabs" g:label="$i18n.catalog.gxe.general.choose" g:labelNone="$i18n.catalog.gxe.general.choose.none" g:jsClass="gxe.control.ElementChoice"> <g:header g:extensible="true" h:tag="div" h:class="gxeTabsHeader"> <g:label g:extensible="true" h:tag="label" h:class="gxeElementChoiceCaption"/> <g:tabArray h:tag="ul" h:class="gxeTabArray" g:jsClass="gxe.control.TabArray"/> </g:header> <g:body g:extensible="true" h:tag="div" h:class="gxeTabsBody" g:jsClass="gxe.control.ElementChoiceBody"/> </g:elementchoice>
-
[webapp]/WEB-INF/classes/gpt/gxe/core/xml/TextNode.xml
Useful for binding a user interface component to text content of a complex target XML type (i.e., an element that has text content but no attribute or children). This definition component adds an input text box to the body of the underlying section. The input component is flagged as overridable and can be replaced if required by a component that extends this component.
<g:textNode xmlns:g="http://www.esri.com/geoportal/gxe" xmlns:h="http://www.esri.com/geoportal/gxe/html" g:extends="$base/core/ui/Section.xml"> <g:body> <g:input g:overridable="true" g:extends="$base/core/ui/InputText.xml"/> </g:body> </g:textnode>
Back to Geoportal XML Editor