Merge from trunk 10605

This commit is contained in:
Yuriy Artamonov 2013-03-28 13:50:46 +00:00
parent 6f4b079669
commit 32bbf4d4ee
3 changed files with 91 additions and 9 deletions

View File

@ -10425,11 +10425,54 @@ return count</programlisting></para>
</section>
<section>
<title>Инспектор сущностей</title>
<para>TODO</para>
<para>Инспектор сущностей позволяет работать с любыми объектами предметной области без создания специфических экранов. Инспектор динамически генерирует экраны просмотра списка и редактирования экземпляра выбранной сущности.</para>
<para>Это дает возможность администратору системы просматривать и редактировать данные, которые недоступны в стандартных экранах в силу их дизайна, а на этапе прототипирования создать только модель данных и пункты главного меню, ссылающиеся на инспектор сущностей.</para>
<para>Точкой входа в инспектор является экран <filename>com/haulmont/cuba/gui/app/core/entityinspector/entity-inspector-browse.xml</filename>. </para>
<para>Если в экран передан параметр <code>entity</code> типа <code>String</code> с именем сущности, то инспектор отобразит список экземпляров этой сущности с возможностью фильтрации, выбора и редактирования экземпляров. Параметр может быть указан при регистрации экрана в <link linkend="screens.xml">
<filename>screens.xml</filename>
</link>, например:</para>
<para><filename>screens.xml</filename><programlisting>&lt;screen id=&quot;sales$Product.lookup&quot;
template=&quot;/com/haulmont/cuba/gui/app/core/entityinspector/entity-inspector-browse.xml&quot;&gt;
&lt;param name=&quot;entity&quot;
value=&quot;sales$Product&quot;/&gt;
&lt;/screen&gt;</programlisting></para>
<para><filename>menu.xml</filename><programlisting>&lt;item id=&quot;sales$Product.lookup&quot;/&gt;</programlisting></para>
<para>Идентификатор экрана вида <code>{имя_сущности}.lookup</code> дает возможность использовать этот экран компонентам <code>
<link linkend="gui_PickerField">PickerField</link>
</code> и <code>
<link linkend="gui_LookupPickerField">LookupPickerField</link>
</code> в стандартном действии <code>PickerField.LookupAction</code>.</para>
<para>В общем случае данный экран можно вызывать без передачи параметров, тогда в его верхней части отображается поле для выбора сущности. В базовом проекте <structname>cuba</structname> экран инспектора зарегистрирован с идентификатором <code>entityInspector.browse</code>, поэтому для его вызова достаточно наличия пункта меню:<programlisting>&lt;item id=&quot;entityInspector.browse&quot;/&gt;</programlisting></para>
</section>
<section>
<section id="credits">
<title>Информация об используемом ПО</title>
<para>TODO</para>
<para>Платформа предоставляет средства для регистрации и отображения в пользовательском интерфейсе информации об используемом в приложении стороннем программном обеспечении (credits). Информация включает в себя название, ссылку на веб-сайт и текст лицензии.</para>
<para><link linkend="base_projects">Базовые проекты</link> платформы содержат собственные файлы описаний <filename>cuba-credits.xml</filename>, <filename>reports-credits.xml</filename> и т.д. В проекте приложения можно создать аналогичный файл и в свойстве приложения <property>
<link linkend="cuba.creditsConfig">cuba.creditsConfig</link>
</property> определить список файлов описаний в зависимости от используемых базовых проектов.</para>
<para>Структура файла <filename>credits.xml</filename>: <itemizedlist>
<listitem>
<para>Элемент <sgmltag>items</sgmltag> - перечисление используемых библиотек с указанием текста лицензии либо во вложенном элементе <sgmltag>license</sgmltag>, либо атрибутом <sgmltag>license</sgmltag> со ссылкой на текст в секции <sgmltag>licenses</sgmltag>.</para>
<para>Cсылаться можно на лицензии, объявленные не только в этом же файле, но и в любом другом файле, объявленном в переменной <property>cuba.creditsConfig</property> раньше, чем текущий. </para>
</listitem>
<listitem>
<para>Элемент <sgmltag>licenses</sgmltag> - перечисление текстов общеупотребительных лицензий.</para>
</listitem>
</itemizedlist></para>
<para>Для отображения общего списка используемого ПО предназначен фрейм <filename>com/haulmont/cuba/gui/app/core/credits/credits-frame.xml</filename>, загружающий информацию из файлов, заданных в свойстве <property>cuba.creditsConfig</property>. Пример использования фрейма в экране:<programlisting>&lt;layout expand=&quot;creditsBox&quot;&gt;
&lt;groupBox id=&quot;creditsBox&quot;
caption=&quot;msg://credits&quot;
width=&quot;100%&quot;&gt;
&lt;iframe id=&quot;credits&quot;
src=&quot;/com/haulmont/cuba/gui/app/core/credits/credits-frame.xml&quot;
width=&quot;100%&quot;
height=&quot;100%&quot;/&gt;
&lt;/groupBox&gt;
&lt;/layout&gt;</programlisting></para>
<para>Если экран с фреймом открывается в модальном режиме (<code>WindowManager.OpenType.DIALOG</code>), ему необходимо задать высоту, иначе возможна неправильная работа скроллинга. Это можно сделать, например, в контроллере экрана, выводящего фрейм: <programlisting>@Override
public void init(Map&lt;String, Object&gt; params) {
getDialogParams().setWidth(500).setHeight(400);
}</programlisting></para>
</section>
</section>
<section id="extension">

View File

@ -256,6 +256,34 @@ shortcut=&quot;ALT-CTRL-SHIFT-C&quot;</programlisting></para>
<para>По умолчанию главное меню не влияет на возможность изменения размера диалоговых окон.</para>
</listitem>
</itemizedlist></para>
<para>Элементы <sgmltag>item</sgmltag>:<itemizedlist>
<listitem>
<para><sgmltag>param</sgmltag> - задает параметр экрана, передаваемый в мэп метода <code>init()</code> <link linkend="screen_controller">контроллера</link>. Параметры, заданные в <filename>menu.xml</filename>, переопределяют одноименные параметры, заданные в <link linkend="screens.xml">
<filename>screens.xml</filename>
</link>.</para>
<para>Атрибуты <sgmltag>param</sgmltag>:<itemizedlist>
<listitem>
<para><sgmltag>name</sgmltag> - имя параметра</para>
</listitem>
<listitem>
<para><sgmltag>value</sgmltag> - значение параметра. Строковое значение может преобразовываться в некоторый объект по следующим правилам:<itemizedlist>
<listitem>
<para>Если строка представляет собой идентификатор сущности, записанный по правилам класса <code>EntityLoadInfo</code>, то загружается указанный экземпляр сущности.</para>
</listitem>
<listitem>
<para>Если строка имеет вид <code>${some_name}</code>, то значением параметра будет свойство приложения <property>some_name</property>.</para>
</listitem>
<listitem>
<para>Строки <literal>true</literal> и <literal>false</literal> преобразуются в соответствующие значения типа <code>Boolean</code>.</para>
</listitem>
<listitem>
<para>Если ничего из вышеперечисленного не подходит, значением параметра становится сама строка.</para>
</listitem>
</itemizedlist></para>
</listitem>
</itemizedlist></para>
</listitem>
</itemizedlist></para>
</listitem>
</itemizedlist></para>
<para>Пример файла меню:<programlisting>&lt;menu-config xmlns=&quot;http://schemas.haulmont.com/cuba/4.0/menu.xsd&quot;&gt;
@ -714,6 +742,17 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
<para>Используется во всех стандартных <link linkend="app_tiers">блоках</link>.</para>
</listitem>
</varlistentry>
<varlistentry id="cuba.creditsConfig">
<term>cuba.creditsConfig</term>
<listitem>
<para>Конфигурационный параметр, задает набор файлов <filename>credits.xml</filename>, содержащих <link linkend="credits">информацию об используемом программном обеспечении</link>. </para>
<para>Значением свойства должен быть список имен файлов, разделенный пробелами. Файлы загружаются по правилам интерфейса <code>
<link linkend="resources">Resources</link>
</code>.</para>
<para>Используется в блоках Web Client и Desktop Client.</para>
<para>Пример:<programlisting>cuba.creditsConfig=cuba-credits.xml reports-credits.xml credits.xml</programlisting></para>
</listitem>
</varlistentry>
<varlistentry id="cuba.dataSourceJndiName">
<term>cuba.dataSourceJndiName</term>
<listitem>

View File

@ -717,15 +717,15 @@
<!-- Table -->
<xs:complexType name="tableComponent">
<xs:sequence>
<xs:all>
<xs:element name="actions" minOccurs="0" maxOccurs="1" type="componentActions"/>
<xs:element name="buttonsPanel" minOccurs="0" maxOccurs="1" type="buttonsPanelComponent"/>
<xs:element name="rowsCount" minOccurs="0" maxOccurs="1">
<xs:complexType/>
</xs:element>
<xs:element name="columns" minOccurs="1" maxOccurs="unbounded" type="tableColumnsList"/>
<xs:element name="columns" minOccurs="1" maxOccurs="1" type="tableColumnsList"/>
<xs:element name="rows" minOccurs="1" type="tableRowsType"/>
</xs:sequence>
</xs:all>
<xs:attributeGroup ref="hasId"/>
@ -739,15 +739,15 @@
<!-- GroupTable -->
<xs:complexType name="groupTableComponent">
<xs:sequence>
<xs:all>
<xs:element name="actions" minOccurs="0" maxOccurs="1" type="componentActions"/>
<xs:element name="buttonsPanel" minOccurs="0" maxOccurs="1" type="buttonsPanelComponent"/>
<xs:element name="rowsCount" minOccurs="0" maxOccurs="1">
<xs:complexType/>
</xs:element>
<xs:element name="columns" minOccurs="1" maxOccurs="unbounded" type="groupTableColumnsType"/>
<xs:element name="columns" minOccurs="1" maxOccurs="1" type="groupTableColumnsType"/>
<xs:element name="rows" minOccurs="1" type="tableRowsType"/>
</xs:sequence>
</xs:all>
<xs:attributeGroup ref="hasId"/>