Передача ссылки на узел в модальное диалоговое окно в orbeon - PullRequest
0 голосов
/ 28 апреля 2011

Я пытаюсь использовать один экземпляр RTE и повторно использовать его для всех элементов управления на странице, которые требуют редактирования расширенного текста.У меня есть две текстовые области, и когда я фокусируюсь на одной из текстовых областей, я хотел бы открыть модальное диалоговое окно и передать ссылку на выбранный узел.* Открыть модальное диалоговое окно просто, но как передать ссылку?

Спасибо, Бинеш Гуммади

1 Ответ

0 голосов
/ 30 апреля 2011

Передача указателя на узел для редактирования в виде выражения XPath, как вы и сделали, - это хороший путь.Я обновил код, на который вы ссылались: я сделал его немного проще, заставил его работать и вставил приведенный ниже результат.

Кроме того, вы можете передать идентификатор элемента управления, который хотите редактировать.Затем в диалоговом окне сохраните его в экземпляре и используйте xxforms:binding(), чтобы найти узел, связанный с этим элементом управления.

<xhtml:html xmlns:xforms="http://www.w3.org/2002/xforms"
            xmlns:f="http://orbeon.org/oxf/xml/formatting" xmlns:xhtml="http://www.w3.org/1999/xhtml"
            xmlns:xxforms="http://orbeon.org/oxf/xml/xforms" xmlns:xi="http://www.w3.org/2001/XInclude"
            xmlns:xxi="http://orbeon.org/oxf/xml/xinclude" xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:widget="http://orbeon.org/oxf/xml/widget"
            xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes"
            xmlns:xbl="http://www.w3.org/ns/xbl" xmlns:fr="http://orbeon.org/oxf/xml/form-runner">
    <xhtml:head>
        <xforms:model id="main"
                      xxforms:session-heartbeat="true"
                      xxforms:show-error-dialog="true">
            <xforms:instance id="instance">
                <dynamic>
                    <textarea1>Area1</textarea1>
                    <textarea2>Area2</textarea2>
                    <selectedNode/>
                </dynamic>
            </xforms:instance>
        </xforms:model>
    </xhtml:head>

    <xhtml:body class="body">

        <xforms:input ref="textarea1">
            <xforms:label>Text Area 1</xforms:label>
        </xforms:input>
        <fr:button>
            <xforms:label>Edit</xforms:label>
            <xforms:action ev:event="DOMActivate">
                <xforms:setvalue ref="selectedNode" value="context()/textarea1/saxon:path()"/>
                <xxforms:show dialog="hello-dialog"/>
            </xforms:action>
        </fr:button>

        <xhtml:br/>

        <xforms:input ref="textarea2">
            <xforms:label>Text Area 2</xforms:label>
        </xforms:input>
        <fr:button>
            <xforms:label>Edit</xforms:label>
            <xforms:action ev:event="DOMActivate">
                <xforms:setvalue ref="selectedNode" value="context()/textarea2/saxon:path()"/>
                <xxforms:show dialog="hello-dialog"/>
            </xforms:action>
        </fr:button>

        <xxforms:dialog id="hello-dialog">
            <xhtml:div>
                <xforms:textarea mediatype="text/html"
                                 ref="if (selectedNode != '') then saxon:evaluate(selectedNode) else ()"/>
            </xhtml:div>
        </xxforms:dialog>

    </xhtml:body>

</xhtml:html>
...