<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you 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.
-->
<section id="tools_table_entry_editor_features">
	<title>Table Entry Editor Features</title>
	<para>
		This section describes the features of the Table Entry editor.
	</para>
	
	<simplesect id="tools_table_entry_editor_sorting">
		<title>Sorting</title>
		<para>
			You could sort the displayed attributes by attribute
			description or value by clicking to the column header. The
			current sort criteria and direction is indicated by an
			arrow. The default sorting behaviour could be changed in the
			<link linkend="tools_table_entry_editor_sortdialog">
				Sort Dialog
			</link>
			(
			<emphasis role="strong">
				Toolbar menu ->
				<guiicon>
					<inlinemediaobject>
						<imageobject>
							<imagedata scale="50" fileref="icons/sort.gif"
								format="GIF" />
						</imageobject>
					</inlinemediaobject>
				</guiicon>
				Sorting
			</emphasis>
			):
		</para>
	</simplesect>

	<simplesect id="tools_table_entry_editor_sortdialog">
		<title>Sort dialog</title>
		<para>
			The default sorting behaviour of the entry editor could be
			changed in this dialog.
			<screenshot>
				<mediaobject>
					<imageobject>
						<imagedata width="10cm"
							fileref="images/tools_entry_editor_2.png" format="PNG" />
					</imageobject>
				</mediaobject>
			</screenshot>
		</para>
		<informaltable frame="all">
			<tgroup cols="3">
				<colspec colname="Field"  colwidth="1*"/>
				<colspec colname="Description"  colwidth="2*"/>
				<colspec colname="Default"  colwidth="1*"/>
				<thead>
					<row>
						<entry>Field</entry>
						<entry>Description</entry>
						<entry>Default</entry>
					</row>
				</thead>
				<tbody>
					<row>
						<entry>
							ObjectClass and must attributes first
						</entry>
						<entry>
							If enabled, objectClass and must attributes
							are grouped at the top.
						</entry>
						<entry>on</entry>
					</row>
					<row>
						<entry>Operational attributes last</entry>
						<entry>
							If enabled, operational attributes (e.g.
							createTimestamp and modifyTimestamp) are
							grouped at the bottom.
						</entry>
						<entry>on</entry>
					</row>
					<row>
						<entry>Sort by</entry>
						<entry>
							Default sort criteria and order of attribute
							and values. Select either 'Attribute
							Description' or 'Value' from the drop-down
							list as sort critera and select the sort
							order. Or select 'No sorting' to disable
							default sorting.
						</entry>
						<entry>
							Attribute Description and Ascending
						</entry>
					</row>
				</tbody>
			</tgroup>
		</informaltable>
	</simplesect>

	<simplesect id="tools_table_entry_editor_quickfilter">
		<title>Quick Filter</title>
		<para>
			If an entry has many attributes and values it is difficult
			to find a specific attribute. The Quick Filter provides a
			client-side filter. To show/hide the Quick Filter toggle the
			<guiicon>
				<inlinemediaobject>
					<imageobject>
						<imagedata scale="50" fileref="icons/filter.gif"
							format="GIF" />
					</imageobject>
				</inlinemediaobject>
			</guiicon>
			button or press
			<shortcut>
				<keycombo>
					<keycap>Ctrl</keycap>
					<keycap>F</keycap>
				</keycombo>
			</shortcut>
			. Enter (even parts of) attribute descriptions or values
			into the input fields, only matching attributes keep
			displayed. When hiding the filter is removed.
			<screenshot>
				<mediaobject>
					<imageobject>
						<imagedata width="10cm"
							fileref="images/tools_entry_editor_7.png" format="PNG" />
					</imageobject>
				</mediaobject>
			</screenshot>
		</para>
	</simplesect>

	<simplesect id="tools_table_entry_editor_visibleattributes">
		<title>Visible attributes</title>
		<para>
			By default all user attributes of an entry are fetched and
			displayed in the Entry editor. 
			You could define to request operational attributes
			for each entry for the whole connection, see 
			<link linkend="tools_connection_properties_browser_options">
				Connection properties
			</link>
			for details. 
			Another way is to request operational attributes for the selected
			entry only, choose 
			<emphasis role="strong">Fetch Operational Attributes</emphasis>
			from the context menu.
		</para>
	</simplesect>

	<simplesect id="tools_table_entry_editor_folding">
		<title>Folding</title>
		<para>
			By default attributes with more than 10 values are folded.
			The attribute is displayed as single line containing the
			number of values
			<screenshot>
				<mediaobject>
					<imageobject>
						<imagedata scale="50"
							fileref="images/tools_entry_editor_9.png" format="PNG" />
					</imageobject>
				</mediaobject>
			</screenshot>
		</para>
		<para>
			Expand the attribute to make the values visible
			(double-click works also). To expand/collapse all folded
			attributes use the
			<guiicon>
				<inlinemediaobject>
					<imageobject>
						<imagedata scale="50" fileref="icons/collapseall.gif"
							format="GIF" />
					</imageobject>
				</inlinemediaobject>
			</guiicon>
			Collapse All and
			<guiicon>
				<inlinemediaobject>
					<imageobject>
						<imagedata scale="50" fileref="icons/expandall.gif"
							format="GIF" />
					</imageobject>
				</inlinemediaobject>
			</guiicon>
			Expand All and buttons from toolbar.
			<screenshot>
				<mediaobject>
					<imageobject>
						<imagedata contentdepth="5em"
							fileref="images/tools_entry_editor_8.png" format="PNG" />
					</imageobject>
				</mediaobject>
			</screenshot>
		</para>
		<para>
			You could change this setting in
			<link linkend="preferences_table_entry_editor">
				Entry editor preferences
			</link>.
		</para>
	</simplesect>

	<simplesect id="tools_table_entry_editor_locatednindit">
		<title>Locate DN in DIT</title>
		<para>
			If a value contains a distinguished name the
			<guiicon>
				<inlinemediaobject>
					<imageobject>
						<imagedata scale="50" fileref="icons/locate_dn_in_dit.gif"
							format="GIF" />
					</imageobject>
				</inlinemediaobject>
			</guiicon>
			<emphasis role="strong">Locate DN in DIT</emphasis>
			action can be used to locate and open the entry in the DIT.
		</para>
	</simplesect>

	<simplesect id="tools_table_entry_editor_querybyexample">
		<title>Query by example</title>
		<para>
			When selecting attributes these attribute-value-pairs are
			used to build a search filter, this feature could be used
			for "query by example".
			<itemizedlist>
				<listitem>
					<para>
						Select example attributes and choose
						<emphasis role="strong">New Search...</emphasis>
						from context menu. Watch the search filter in
						the search dialog.
					</para>
				</listitem>
				<listitem>
					<para>
						Select example attributes and choose
						<emphasis role="strong">
							Advanced -> Copy [NOT|AND|OR] Search Filter
						</emphasis>
						from context menu. This copies the search filter
						to system clipboard.
					</para>
				</listitem>
			</itemizedlist>
			When building a filter necessary value encoding is supported
			(*->\2a, (->\28, )->29, \->\5c, NUL->\00).
		</para>
	</simplesect>
	
	<simplesect id="tools_table_entry_editor_edit_attributes">
		<title>Edit Attributes and Values</title>
		<para>
			It is possible to add, edit or delete attributes and values of
			an entry in the Entry editor.
		</para>
		<para>
			To enter the edit mode using the default value editor select a
			value and press
			<emphasis role="strong">Enter</emphasis>
			or
			<emphasis role="strong">F7</emphasis>
			or double-click the value. If the attribute is a simple string
			(like givenName or telephoneNumber) the value could be edited
			in-place, otherwise a specific value editor dialog is opened. To
			use a specific value editor choose one from
			<emphasis role="strong">
				Context Menu -> Edit Value With
			</emphasis>.
		</para>
		<para>
			To finish editing press <emphasis role="strong">Enter</emphasis>
			or click to another value or click the OK button in a 
			value editor dialog. To cancel editing press 
			<emphasis role="strong">ESC</emphasis> or click the Cancel button 
			in a value editor dialog.
		</para>
	</simplesect>	
	
	<simplesect id="tools_table_entry_editor_edit_offline">
		<title>Edit Entry Offline and Save Automatically</title>
		<para>
			Sometimes you may want to make multiple modifications on
			an entry and to send these modifications as one request to the server.
			This is necessary e.g. when adding an additional object class
			which requires addional attributes. There are two ways to accomplish this.
		</para>
		<para>
			One way is to toggle the "save modifications automatically" setting. 
			
			This could be done from the editor's drop-down menu or in the 
			<link linkend="preferences_table_entry_editor">Table Entry Editor preferences</link>.
			
			This mode could be set independently for the single-tab and the 
			multi-tab editor. For the single-tab editor it is enabled by default, 
			for the multi-tab editor it is disabled by default.
			
			If disabled the editor becomes dirty (an asterisk '*' appears in the editor tab)
			if the entry is modified. The editor must be saved explicitely using 
			<emphasis role="strong">Ctrl+S</emphasis>.
		</para>
		<para>
			Another way is to use the <link linkend="tools_editentry_wizard">Editor Entry Wizard</link>.
			To start the wizard press <emphasis role="strong">F8</emphasis>
			or choose <emphasis role="strong">Edit Entry...</emphasis> from the
			context menu.
		</para>
	</simplesect>	

</section>