28#include <bitmaps.hlst>
29#include <fpicker/strings.hrc>
32#include <svx/svxids.hrc>
46#include <com/sun/star/beans/PropertyAttribute.hpp>
47#include <com/sun/star/container/XSet.hpp>
48#include <com/sun/star/frame/XController.hpp>
49#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
50#include <com/sun/star/xforms/XFormsSupplier.hpp>
51#include <com/sun/star/xml/dom/XDocument.hpp>
108 #define MIN_PAGE_COUNT 3
115 explicit ItemNode(
const Reference< css::xml::dom::XNode >& _rxNode ) :
117 explicit ItemNode(
const Reference< XPropertySet >& _rxSet ) :
122 : DropTargetHelper(rWidget.get_drop_target())
138 if (rCEvt.GetCommand() != CommandEventId::ContextMenu)
141 Point aPos(rCEvt.GetMousePosPixel());
143 if (m_xItemList->get_dest_row_at_pos(aPos, m_xScratchIter.get(),
false) && !m_xItemList->is_selected(*m_xScratchIter))
145 m_xItemList->select(*m_xScratchIter);
146 ItemSelectHdl(*m_xItemList);
150 m_xMenu = xBuilder->weld_menu(
"menu");
151 m_aRemovedMenuEntries.clear();
154 m_aRemovedMenuEntries.insert(
"additem");
157 m_aRemovedMenuEntries.insert(
"addelement");
158 m_aRemovedMenuEntries.insert(
"addattribute");
162 m_xMenu->set_label(
"additem",
SvxResId(RID_STR_DATANAV_ADD_SUBMISSION));
163 m_xMenu->set_label(
"edit",
SvxResId(RID_STR_DATANAV_EDIT_SUBMISSION));
164 m_xMenu->set_label(
"delete",
SvxResId(RID_STR_DATANAV_REMOVE_SUBMISSION));
168 m_xMenu->set_label(
"additem",
SvxResId(RID_STR_DATANAV_ADD_BINDING));
169 m_xMenu->set_label(
"edit",
SvxResId(RID_STR_DATANAV_EDIT_BINDING));
170 m_xMenu->set_label(
"delete",
SvxResId(RID_STR_DATANAV_REMOVE_BINDING));
173 for (
const auto& rRemove : m_aRemovedMenuEntries)
174 m_xMenu->remove(rRemove);
176 OString sCommand = m_xMenu->popup_at_rect(m_xItemList.get(),
tools::Rectangle(aPos,
Size(1,1)));
177 if (!sCommand.isEmpty())
178 DoMenuAction(sCommand);
186 delete weld::fromId<ItemNode*>(
m_xItemList->get_id(rEntry));
202 :
BuilderPage(pPage, nullptr,
"svx/ui/xformspage.ui",
"XFormsPage")
204 , m_xToolBox(m_xBuilder->weld_toolbar(
"toolbar"))
205 , m_xItemList(m_xBuilder->weld_tree_view(
"items"))
206 , m_xScratchIter(m_xItemList->make_iterator())
207 , m_aDropHelper(*m_xItemList)
208 , m_pNaviWin(_pNaviWin)
216 m_xToolBox->set_item_visible(
"additem",
false);
219 m_xToolBox->set_item_visible(
"addelement",
false);
220 m_xToolBox->set_item_visible(
"addattribute",
false);
253 DoToolBoxAction(rIdent);
283 Reference< css::xforms::XDataTypeRepository > xDataTypes =
284 xModel->getDataTypeRepository();
303 OXFormsDescriptor desc;
309 DBG_ASSERT( desc.xPropSet.is(),
"DataTreeListBox::StartDrag(): invalid node binding" );
320 const Reference< css::xml::dom::XNode >& _xNode)
326 Reference< css::xml::dom::XNodeList > xNodeList = _xNode->getChildNodes();
327 if ( xNodeList.is() )
330 sal_Int32
i, nNodeCount = xNodeList->getLength();
331 for (
i = 0;
i < nNodeCount; ++
i )
333 Reference< css::xml::dom::XNode > xChild = xNodeList->item(
i);
334 css::xml::dom::NodeType eChildType = xChild->getNodeType();
336 switch ( eChildType )
338 case css::xml::dom::NodeType_ATTRIBUTE_NODE:
339 aExpImg = RID_SVXBMP_ATTRIBUTE;
341 case css::xml::dom::NodeType_ELEMENT_NODE:
342 aExpImg = RID_SVXBMP_ELEMENT;
344 case css::xml::dom::NodeType_TEXT_NODE:
345 aExpImg = RID_SVXBMP_TEXT;
348 aExpImg = RID_SVXBMP_OTHER;
352 if ( !
sName.isEmpty() )
356 std::unique_ptr<weld::TreeIter> xEntry =
m_xItemList->make_iterator();
360 if ( xChild->hasAttributes() )
362 Reference< css::xml::dom::XNamedNodeMap > xMap = xChild->getAttributes();
365 aExpImg = RID_SVXBMP_ATTRIBUTE;
366 sal_Int32 j, nMapLen = xMap->getLength();
367 for ( j = 0; j < nMapLen; ++j )
369 Reference< css::xml::dom::XNode > xAttr = xMap->item(j);
372 OUString sAttrName =
m_xUIHelper->getNodeDisplayName( xAttr, bShowDetails );
378 if ( xChild->hasChildNodes() )
392 bool bHandled =
false;
393 bool bIsDocModified =
false;
396 if (rToolBoxID ==
"additem" || rToolBoxID ==
"addelement" || rToolBoxID ==
"addattribute")
400 DBG_ASSERT(
xModel.is(),
"XFormsPage::DoToolBoxAction(): Action without model" );
408 Reference< css::xforms::XSubmission > xNewSubmission = aDlg.
GetNewSubmission();
409 Reference< XSet > xSubmissions =
xModel->getSubmissions();
410 xSubmissions->insert(
Any( xNewSubmission ) );
413 bIsDocModified =
true;
425 std::unique_ptr<weld::TreeIter> xEntry(
m_xItemList->make_iterator());
426 bool bEntry =
m_xItemList->get_selected(xEntry.get());
428 std::unique_ptr<ItemNode> pNode;
429 Reference< css::xml::dom::XNode > xParentNode;
430 Reference< XPropertySet > xNewBinding;
432 bool bIsElement =
true;
442 DBG_ASSERT( bEntry,
"XFormsPage::DoToolBoxAction(): no entry" );
444 DBG_ASSERT( pParentNode,
"XFormsPage::DoToolBoxAction(): no parent node" );
445 xParentNode = pParentNode->
m_xNode;
446 Reference< css::xml::dom::XNode > xNewNode;
447 if (rToolBoxID ==
"addelement")
451 pResId = RID_STR_DATANAV_ADD_ELEMENT;
456 TOOLS_WARN_EXCEPTION(
"svx.form",
"XFormsPage::DoToolBoxAction(): exception while create element" );
461 pResId = RID_STR_DATANAV_ADD_ATTRIBUTE;
470 TOOLS_WARN_EXCEPTION(
"svx.form",
"XFormsPage::DoToolBoxAction(): exception while create attribute" );
476 xNewNode = xParentNode->appendChild( xNewNode );
480 TOOLS_WARN_EXCEPTION(
"svx.form",
"XFormsPage::DoToolBoxAction(): exception while append child" );
485 Reference< css::xml::dom::XNode > xPNode;
487 xPNode = xNewNode->getParentNode();
490 || xPNode.is(),
"XFormsPage::DoToolboxAction(): node not added" );
503 TOOLS_WARN_EXCEPTION(
"svx.form",
"XFormsPage::DoToolBoxAction(): exception while get binding for node" );
505 pNode.reset(
new ItemNode( xNewNode ));
511 pResId = RID_STR_DATANAV_ADD_BINDING;
512 xNewBinding =
xModel->createBinding();
513 Reference< XSet > xBindings =
xModel->getBindings();
514 xBindings->insert(
Any( xNewBinding ) );
515 pNode.reset(
new ItemNode( xNewBinding ));
520 TOOLS_WARN_EXCEPTION(
"svx.form",
"XFormsPage::DoToolBoxAction(): exception while adding binding" );
527 short nReturn = aDlg.
run();
535 bIsDocModified =
true;
541 Reference< css::xml::dom::XNode > xPNode;
542 Reference< css::xml::dom::XNode > xNode =
543 xParentNode->removeChild( pNode->m_xNode );
545 xPNode = xNode->getParentNode();
546 DBG_ASSERT( !xPNode.is(),
"XFormsPage::RemoveEntry(): node not removed" );
560 bIsDocModified =
true;
566 Reference< XSet > xBindings =
xModel->getBindings();
567 xBindings->remove(
Any( xNewBinding ) );
577 else if (rToolBoxID ==
"edit")
581 std::unique_ptr<weld::TreeIter> xEntry(
m_xItemList->make_iterator());
582 bool bEntry =
m_xItemList->get_selected(xEntry.get());
602 if ( pNode && pNode->
m_xNode.is() )
606 css::xml::dom::NodeType eChildType = pNode->
m_xNode->getNodeType();
607 if ( eChildType == css::xml::dom::NodeType_ATTRIBUTE_NODE )
609 pResId = RID_STR_DATANAV_EDIT_ATTRIBUTE;
620 pResId = RID_STR_DATANAV_EDIT_BINDING;
647 sNewName += sTemp +
": ";
658 bIsDocModified =
true;
668 bIsDocModified =
true;
673 else if (rToolBoxID ==
"delete")
686 OSL_FAIL(
"XFormsPage::DoToolboxAction: unknown ID!" );
691 if ( bIsDocModified )
701 std::unique_ptr<weld::TreeIter> xParent(
m_xItemList->make_iterator());
704 OUString aImage(_bIsElement ? OUString(RID_SVXBMP_ELEMENT) : OUString(RID_SVXBMP_ATTRIBUTE));
727 OUString aImage(RID_SVXBMP_ELEMENT);
739 m_xItemList->insert(
nullptr, -1, &sTemp, &sId,
nullptr,
nullptr,
false, pRet);
741 std::unique_ptr<weld::TreeIter> xRes(
m_xItemList->make_iterator());
744 OUString sEntry =
SvxResId( RID_STR_DATANAV_SUBM_ACTION ) + sTemp;
745 m_xItemList->insert(pRet, -1, &sEntry,
nullptr,
nullptr,
nullptr,
false, xRes.get());
749 sEntry =
SvxResId( RID_STR_DATANAV_SUBM_METHOD ) +
751 m_xItemList->insert(pRet, -1, &sEntry,
nullptr,
nullptr,
nullptr,
false, xRes.get());
755 sEntry =
SvxResId( RID_STR_DATANAV_SUBM_REF ) + sTemp;
756 m_xItemList->insert(pRet, -1, &sEntry,
nullptr,
nullptr,
nullptr,
false, xRes.get());
760 sEntry =
SvxResId( RID_STR_DATANAV_SUBM_BIND ) + sTemp;
761 m_xItemList->insert(pRet, -1, &sEntry,
nullptr,
nullptr,
nullptr,
false, xRes.get());
765 sEntry =
SvxResId( RID_STR_DATANAV_SUBM_REPLACE ) +
767 m_xItemList->insert(pRet, -1, &sEntry,
nullptr,
nullptr,
nullptr,
false, xRes.get());
770 catch ( Exception
const & )
781 sName += sTemp +
": ";
786 m_xItemList->insert(
nullptr, -1, &
sName, &sId,
nullptr,
nullptr,
false, pRet);
789 catch ( Exception
const & )
803 std::unique_ptr<weld::TreeIter> xEntry(
m_xItemList->make_iterator());
806 SAL_WARN(
"svx.form",
"corrupt tree" );
821 OUString sEntry =
SvxResId( RID_STR_DATANAV_SUBM_BIND ) + sTemp;
824 SAL_WARN(
"svx.form",
"corrupt tree" );
829 sEntry =
SvxResId( RID_STR_DATANAV_SUBM_REF ) + sTemp;
832 SAL_WARN(
"svx.form",
"corrupt tree" );
837 sEntry =
SvxResId( RID_STR_DATANAV_SUBM_ACTION ) + sTemp;
840 SAL_WARN(
"svx.form",
"corrupt tree" );
844 sEntry =
SvxResId( RID_STR_DATANAV_SUBM_METHOD ) +
848 SAL_WARN(
"svx.form",
"corrupt tree" );
853 sEntry =
SvxResId( RID_STR_DATANAV_SUBM_REPLACE ) +
857 SAL_WARN(
"svx.form",
"corrupt tree" );
872 std::unique_ptr<weld::TreeIter> xEntry(
m_xItemList->make_iterator());
873 bool bEntry =
m_xItemList->get_selected(xEntry.get());
880 DBG_ASSERT( pNode,
"XFormsPage::RemoveEntry(): no node" );
887 css::xml::dom::NodeType eChildType = pNode->
m_xNode->getNodeType();
888 bool bIsElement = ( eChildType == css::xml::dom::NodeType_ELEMENT_NODE );
889 TranslateId pResId = bIsElement ? RID_STR_QRY_REMOVE_ELEMENT : RID_STR_QRY_REMOVE_ATTRIBUTE;
892 VclMessageType::Question, VclButtonsType::YesNo,
894 OUString sMessText = xQBox->get_primary_text();
895 sMessText = sMessText.replaceFirst(
897 xQBox->set_primary_text(sMessText);
900 std::unique_ptr<weld::TreeIter> xParent(
m_xItemList->make_iterator(xEntry.get()));
901 bool bParent =
m_xItemList->iter_parent(*xParent); (void)bParent;
902 assert(bParent &&
"XFormsPage::RemoveEntry(): no parent entry");
904 DBG_ASSERT( pParentNode && pParentNode->
m_xNode.is(),
"XFormsPage::RemoveEntry(): no parent XNode" );
906 Reference< css::xml::dom::XNode > xPNode;
907 Reference< css::xml::dom::XNode > xNode =
910 xPNode = xNode->getParentNode();
911 DBG_ASSERT( !xPNode.is(),
"XFormsPage::RemoveEntry(): node not removed" );
924 TranslateId pResId = bSubmission ? RID_STR_QRY_REMOVE_SUBMISSION : RID_STR_QRY_REMOVE_BINDING;
937 VclMessageType::Question, VclButtonsType::YesNo,
939 OUString sMessText = xQBox->get_primary_text();
940 sMessText = sMessText.replaceFirst( sSearch,
sName);
941 xQBox->set_primary_text(sMessText);
971 bool bHandled =
false;
973 sal_uInt16
nCode = rKEvt.GetKeyCode().GetCode();
975 bHandled = DoMenuAction(
"delete");
982 DBG_ASSERT( _xModel.is(),
"XFormsPage::SetModel(): invalid model" );
992 DBG_ASSERT( _nPagePos != -1,
"XFormsPage::SetModel(): invalid page position" );
995 Reference< XContainer > xContainer( _xModel->getInstances(), UNO_QUERY );
996 if ( xContainer.is() )
999 Reference< XEnumerationAccess > xNumAccess = _xModel->getInstances();
1000 if ( xNumAccess.is() )
1002 Reference < XEnumeration > xNum = xNumAccess->createEnumeration();
1003 if ( xNum.is() && xNum->hasMoreElements() )
1006 while ( xNum->hasMoreElements() )
1008 if ( nIter == _nPagePos )
1010 Sequence< PropertyValue > xPropSeq;
1011 Any aAny = xNum->nextElement();
1012 if ( aAny >>= xPropSeq )
1016 SAL_WARN(
"svx.form",
"XFormsPage::SetModel(): invalid instance" );
1022 xNum->nextElement();
1038 DBG_ASSERT( _nPagePos == -1,
"XFormsPage::SetModel(): invalid page position" );
1041 Reference< XContainer > xContainer( _xModel->getSubmissions(), UNO_QUERY );
1042 if ( xContainer.is() )
1045 Reference< XEnumerationAccess > xNumAccess = _xModel->getSubmissions();
1046 if ( xNumAccess.is() )
1048 Reference < XEnumeration > xNum = xNumAccess->createEnumeration();
1049 if ( xNum.is() && xNum->hasMoreElements() )
1051 while ( xNum->hasMoreElements() )
1053 Reference< XPropertySet > xPropSet;
1054 Any aAny = xNum->nextElement();
1055 if ( aAny >>= xPropSet )
1070 DBG_ASSERT( _nPagePos == -1,
"XFormsPage::SetModel(): invalid page position" );
1073 Reference< XContainer > xContainer( _xModel->getBindings(), UNO_QUERY );
1074 if ( xContainer.is() )
1077 Reference< XEnumerationAccess > xNumAccess = _xModel->getBindings();
1078 if ( xNumAccess.is() )
1080 Reference < XEnumeration > xNum = xNumAccess->createEnumeration();
1081 if ( xNum.is() && xNum->hasMoreElements() )
1083 OUString aImage(RID_SVXBMP_ELEMENT);
1084 std::unique_ptr<weld::TreeIter> xRes(
m_xItemList->make_iterator());
1085 while ( xNum->hasMoreElements() )
1087 Reference< XPropertySet > xPropSet;
1088 Any aAny = xNum->nextElement();
1089 if ( aAny >>= xPropSet )
1094 sEntry += sTemp +
": ";
1101 m_xItemList->insert(
nullptr, -1, &sEntry, &
sId,
nullptr,
nullptr,
false, xRes.get());
1115 OSL_FAIL(
"XFormsPage::SetModel: unknown group!" );
1137 for (
const PropertyValue& rProp : _xPropSeq )
1139 if ( sInstModel == rProp.Name )
1141 Reference< css::xml::dom::XNode > xRoot;
1142 if ( rProp.Value >>= xRoot )
1146 Reference< XEventTarget >
xTarget( xRoot, UNO_QUERY );
1150 OUString sNodeName =
1152 if ( sNodeName.isEmpty() )
1153 sNodeName = xRoot->getNodeName();
1154 if ( xRoot->hasChildNodes() )
1163 else if ( sInstName == rProp.Name && ( rProp.Value >>= sTemp ) )
1165 else if ( sInstURL == rProp.Name && ( rProp.Value >>= sTemp ) )
1181 m_xMenu->set_sensitive(rIdent, bSensitive);
1186 bool bEnableAdd =
false;
1187 bool bEnableEdit =
false;
1188 bool bEnableRemove =
false;
1190 std::unique_ptr<weld::TreeIter> xEntry(
m_xItemList->make_iterator());
1191 bool bEntry =
m_xItemList->get_selected(xEntry.get());
1195 bool bSubmitChild =
false;
1199 bSubmitChild =
true;
1205 bEnableRemove = !bSubmitChild;
1207 bEnableRemove =
false;
1212 css::xml::dom::NodeType eChildType = pNode->
m_xNode->getNodeType();
1213 if ( eChildType != css::xml::dom::NodeType_ELEMENT_NODE
1214 && eChildType != css::xml::dom::NodeType_DOCUMENT_NODE )
1229 m_xToolBox->set_item_sensitive(
"additem", bEnableAdd);
1230 m_xToolBox->set_item_sensitive(
"addelement", bEnableAdd);
1231 m_xToolBox->set_item_sensitive(
"addattribute", bEnableAdd);
1232 m_xToolBox->set_item_sensitive(
"edit", bEnableEdit);
1233 m_xToolBox->set_item_sensitive(
"delete", bEnableRemove);
1246 TranslateId pResId1 = RID_STR_DATANAV_EDIT_ELEMENT;
1247 TranslateId pResId2 = RID_STR_DATANAV_REMOVE_ELEMENT;
1251 if ( pNode && pNode->
m_xNode.is() )
1255 css::xml::dom::NodeType eChildType = pNode->
m_xNode->getNodeType();
1256 if ( eChildType == css::xml::dom::NodeType_ATTRIBUTE_NODE )
1258 pResId1 = RID_STR_DATANAV_EDIT_ATTRIBUTE;
1259 pResId2 = RID_STR_DATANAV_REMOVE_ATTRIBUTE;
1278 : m_xParent(pParent)
1279 , m_xModelsBox(rBuilder.weld_combo_box(
"modelslist"))
1280 , m_xModelBtn(rBuilder.weld_menu_button(
"modelsbutton"))
1281 , m_xTabCtrl(rBuilder.weld_notebook(
"tabcontrol"))
1282 , m_xInstanceBtn(rBuilder.weld_menu_button(
"instances"))
1283 , m_nLastSelectedPos(-1)
1284 , m_bShowDetails(false)
1285 , m_bIsNotifyDisabled(false)
1286 , m_aUpdateTimer(
"svx DataNavigatorWindow m_aUpdateTimer")
1302 OString sPageId(
"instance");
1306 OString sNewPageId = aViewOpt.
GetPageID();
1307 if (
m_xTabCtrl->get_page_index(sNewPageId) != -1)
1308 sPageId = sNewPageId;
1315 ActivatePageHdl(sPageId);
1319 "DataNavigatorWindow::LoadModels(): no SfxBindings; can't get frame" );
1324 m_xFrame->addFrameActionListener( xListener );
1331 pPage->SelectFirstEntry();
1337 m_xFrame->removeFrameActionListener( xListener );
1358 ModelSelectHdl(&rBox);
1376 bool bIsDocModified =
false;
1377 Reference< css::xforms::XFormsUIHelper1 > xUIHelper;
1378 sal_Int32 nSelectedPos = m_xModelsBox->get_active();
1379 OUString sSelectedModel(m_xModelsBox->get_text(nSelectedPos));
1380 Reference< css::xforms::XModel >
xModel;
1383 Any aAny = m_xDataContainer->getByName( sSelectedModel );
1385 xUIHelper.set(
xModel, UNO_QUERY );
1391 DBG_ASSERT( xUIHelper.is(),
"DataNavigatorWindow::MenuSelectHdl(): no UIHelper" );
1393 m_bIsNotifyDisabled =
true;
1395 if (rIdent ==
"modelsadd")
1398 bool bShowDialog =
true;
1399 while ( bShowDialog )
1401 bShowDialog =
false;
1404 OUString sNewName = aDlg.
GetName();
1407 if (m_xModelsBox->find_text(sNewName) != -1)
1411 VclMessageType::Warning, VclButtonsType::Ok,
1412 SvxResId(RID_STR_DOUBLE_MODELNAME)));
1413 xErrBox->set_primary_text(xErrBox->get_primary_text().replaceFirst(
MSG_VARIABLE, sNewName));
1422 Reference< css::xforms::XModel > xNewModel(
1423 xUIHelper->newModel( m_xFrameModel, sNewName ), UNO_SET_THROW );
1425 Reference< XPropertySet > xModelProps( xNewModel, UNO_QUERY_THROW );
1426 xModelProps->setPropertyValue(
"ExternalData",
Any( !bDocumentData ) );
1428 m_xModelsBox->append_text(sNewName);
1429 m_xModelsBox->set_active(m_xModelsBox->get_count() - 1);
1430 ModelSelectHdl(m_xModelsBox.get());
1431 bIsDocModified =
true;
1441 else if (rIdent ==
"modelsedit")
1444 aDlg.
SetName( sSelectedModel );
1446 bool bDocumentData(
false );
1449 Reference< css::xforms::XFormsSupplier > xFormsSupp( m_xFrameModel, UNO_QUERY_THROW );
1450 Reference< XNameContainer > xXForms( xFormsSupp->getXForms(), UNO_SET_THROW );
1451 Reference< XPropertySet > xModelProps( xXForms->getByName( sSelectedModel ), UNO_QUERY_THROW );
1452 bool bExternalData =
false;
1453 OSL_VERIFY( xModelProps->getPropertyValue(
"ExternalData" ) >>= bExternalData );
1454 bDocumentData = !bExternalData;
1469 Reference< css::xforms::XFormsSupplier > xFormsSupp( m_xFrameModel, UNO_QUERY_THROW );
1470 Reference< XNameContainer > xXForms( xFormsSupp->getXForms(), UNO_SET_THROW );
1471 Reference< XPropertySet > xModelProps( xXForms->getByName( sSelectedModel ), UNO_QUERY_THROW );
1472 xModelProps->setPropertyValue(
"ExternalData",
Any( !bDocumentData ) );
1473 bIsDocModified =
true;
1481 OUString sNewName = aDlg.
GetName();
1482 if ( !sNewName.isEmpty() && ( sNewName != sSelectedModel ) )
1486 xUIHelper->renameModel( m_xFrameModel, sSelectedModel, sNewName );
1488 m_xModelsBox->remove(nSelectedPos);
1489 m_xModelsBox->append_text(sNewName);
1490 m_xModelsBox->set_active(m_xModelsBox->get_count() - 1);
1491 bIsDocModified =
true;
1500 else if (rIdent ==
"modelsremove")
1503 VclMessageType::Question, VclButtonsType::YesNo,
1504 SvxResId( RID_STR_QRY_REMOVE_MODEL)));
1505 OUString sText = xQBox->get_primary_text();
1506 sText = sText.replaceFirst(
MODELNAME, sSelectedModel );
1507 xQBox->set_primary_text(sText);
1512 xUIHelper->removeModel( m_xFrameModel, sSelectedModel );
1518 m_xModelsBox->remove(nSelectedPos);
1519 if (m_xModelsBox->get_count() <= nSelectedPos)
1520 nSelectedPos = m_xModelsBox->get_count() - 1;
1521 m_xModelsBox->set_active(nSelectedPos);
1522 ModelSelectHdl(m_xModelsBox.get());
1523 bIsDocModified =
true;
1526 else if (rIdent ==
"instancesadd")
1531 OString sPageId = GetNewPageId();
1534 if (
sName.isEmpty())
1536 SAL_WARN(
"svx.form",
"DataNavigatorWindow::CreateInstancePage(): instance without name" );
1540 OUString sURL = aDlg.
GetURL();
1544 xUIHelper->newInstance(
sName, sURL, !bLinkOnce );
1550 ModelSelectHdl(
nullptr );
1556 ActivatePageHdl(sPageId);
1558 bIsDocModified =
true;
1561 else if (rIdent ==
"instancesedit")
1563 OString sIdent = GetCurrentPage();
1571 OUString sOldName = aDlg.
GetName();
1574 OUString sNewName = aDlg.
GetName();
1575 OUString sURL = aDlg.
GetURL();
1579 xUIHelper->renameInstance( sOldName,
1591 m_xTabCtrl->set_tab_label_text(sIdent, sNewName);
1592 bIsDocModified =
true;
1596 else if (rIdent ==
"instancesremove")
1598 OString sIdent = GetCurrentPage();
1604 VclMessageType::Question, VclButtonsType::YesNo,
1605 SvxResId(RID_STR_QRY_REMOVE_INSTANCE)));
1606 OUString sMessText = xQBox->get_primary_text();
1607 sMessText = sMessText.replaceFirst(
INSTANCENAME, sInstName );
1608 xQBox->set_primary_text(sMessText);
1611 bool bDoRemove =
false;
1612 if (IsAdditionalPage(sIdent))
1614 auto aPageListEnd = m_aPageList.end();
1615 auto aFoundPage = std::find_if(m_aPageList.begin(), aPageListEnd,
1616 [pPage](
const auto&elem) { return elem.get() == pPage; });
1617 if ( aFoundPage != aPageListEnd )
1619 m_aPageList.erase( aFoundPage );
1625 m_xInstPage.reset();
1633 xUIHelper->removeInstance( sInstName );
1639 m_xTabCtrl->remove_page(sIdent);
1640 m_xTabCtrl->set_current_page(
"instance");
1641 ModelSelectHdl(
nullptr );
1642 bIsDocModified =
true;
1647 else if (rIdent ==
"instancesdetails")
1649 m_bShowDetails = !m_bShowDetails;
1650 m_xInstanceBtn->set_item_active(
"instancesdetails", m_bShowDetails);
1651 ModelSelectHdl(m_xModelsBox.get());
1655 SAL_WARN(
"svx.form",
"DataNavigatorWindow::MenuSelectHdl(): wrong menu item" );
1658 m_bIsNotifyDisabled =
false;
1660 if ( bIsDocModified )
1671 if (m_xInstanceBtn.get() == &rBtn)
1673 OString sIdent(m_xTabCtrl->get_current_page_ident());
1674 bool bIsInstPage = (IsAdditionalPage(sIdent) || sIdent ==
"instance");
1675 m_xInstanceBtn->set_item_sensitive(
"instancesedit", bIsInstPage );
1676 m_xInstanceBtn->set_item_sensitive(
"instancesremove",
1678 m_xInstanceBtn->set_item_sensitive(
"instancesdetails", bIsInstPage );
1680 else if (m_xModelBtn.get() == &rBtn)
1683 m_xModelBtn->set_item_sensitive(
"modelsremove", m_xModelsBox->get_count() > 1 );
1687 SAL_WARN(
"svx.form",
"DataNavigatorWindow::MenuActivateHdl(): wrong button" );
1696 if (m_xDataContainer.is() && !pPage->
HasModel())
1697 SetPageModel(rIdent);
1702 ModelSelectHdl(
nullptr );
1708 if (rCurId ==
"submissions")
1714 else if (rCurId ==
"bindings")
1720 else if (rCurId ==
"instance")
1752 Reference< XController > xCtrl =
m_xFrame->getController();
1770 Reference< css::xforms::XFormsSupplier > xFormsSupp(
m_xFrameModel, UNO_QUERY );
1771 if ( xFormsSupp.is() )
1773 Reference< XNameContainer > xContainer = xFormsSupp->getXForms();
1774 if ( xContainer.is() )
1777 const Sequence< OUString > aNameList =
m_xDataContainer->getElementNames();
1778 for (
const OUString& rName : aNameList )
1781 Reference< css::xforms::XModel > xFormsModel;
1782 if ( aAny >>= xFormsModel )
1807 Reference< css::xforms::XModel > xFormsModel;
1808 if ( aAny >>= xFormsModel )
1812 DBG_ASSERT( pPage,
"DataNavigatorWindow::SetPageModel(): no page" );
1816 nPagePos =
m_xTabCtrl->get_page_index(rIdent);
1819 OUString sText = pPage->
SetModel( xFormsModel, nPagePos );
1821 if (!sText.isEmpty())
1822 m_xTabCtrl->set_tab_label_text(rIdent, sText);
1825 catch (
const NoSuchElementException& )
1827 SAL_WARN(
"svx.form",
"DataNavigatorWindow::SetPageModel(): no such element" );
1841 Reference< css::xforms::XModel >
xModel;
1844 Reference< XEnumerationAccess > xNumAccess =
xModel->getInstances();
1845 if ( xNumAccess.is() )
1847 Reference < XEnumeration > xNum = xNumAccess->createEnumeration();
1848 if ( xNum.is() && xNum->hasMoreElements() )
1850 sal_Int32 nAlreadyLoadedCount =
m_aPageList.size();
1852 nAlreadyLoadedCount--;
1854 while ( xNum->hasMoreElements() )
1856 if ( nIdx > nAlreadyLoadedCount )
1858 Sequence< PropertyValue > xPropSeq;
1859 if ( xNum->nextElement() >>= xPropSeq )
1863 SAL_WARN(
"svx.form",
"DataNavigator::InitPages(): invalid instance" );
1867 xNum->nextElement();
1874 catch ( NoSuchElementException& )
1876 SAL_WARN(
"svx.form",
"DataNavigatorWindow::SetPageModel(): no such element" );
1911 auto pProp = std::find_if(_xPropSeq.begin(), _xPropSeq.end(),
1912 [](
const PropertyValue& rProp) { return PN_INSTANCE_ID == rProp.Name; });
1913 if (pProp != _xPropSeq.end())
1914 pProp->Value >>= sInstName;
1917 if ( sInstName.isEmpty() )
1919 SAL_WARN(
"svx.form",
"DataNavigatorWindow::CreateInstancePage(): instance without name" );
1920 sInstName =
"untitled";
1927 return m_xTabCtrl->get_page_ident(0) ==
"instance";
1939 if (!sIdent.startsWith(
"additional", &sNumber))
1941 int nPageId = sNumber.toInt32();
1946 return "additional" + OString::number(nMax + 1);
1952 DBG_ASSERT( pCurrentDoc,
"DataNavigatorWindow::SetDocModified(): no objectshell" );
1980 xContainer->addContainerListener( xListener );
2013 :
SfxDockingWindow(_pBindings, _pMgr, _pParent,
"DataNavigator",
"svx/ui/datanavigator.ui")
2019 Size aSize = GetOptimalSize();
2020 Size aLogSize = PixelToLogic(aSize,
MapMode(MapUnit::MapAppFont));
2042 if ( ( eAlign == SfxChildAlignment::TOP ) || ( eAlign == SfxChildAlignment::BOTTOM ) )
2052 case SfxChildAlignment::LEFT:
2053 case SfxChildAlignment::RIGHT:
2054 case SfxChildAlignment::NOALIGNMENT:
2064 DataNavigatorManager::DataNavigatorManager(
2072 GetWindow()->SetSizePixel(
Size( 250, 400 ) );
2077 const Reference< css::xforms::XFormsUIHelper1 >& _rUIHelper)
2078 : GenericDialogController(pParent,
"svx/ui/adddataitemdialog.ui",
"AddDataItemDialog")
2079 , m_xUIHelper(_rUIHelper)
2080 , m_pItemNode(_pNode)
2082 , m_sFL_Element(
SvxResId(RID_STR_ELEMENT))
2083 , m_sFL_Attribute(
SvxResId(RID_STR_ATTRIBUTE))
2084 , m_sFL_Binding(
SvxResId(RID_STR_BINDING))
2085 , m_sFT_BindingExp(
SvxResId(RID_STR_BINDING_EXPR))
2086 , m_xItemFrame(m_xBuilder->weld_frame(
"itemframe"))
2087 , m_xNameFT(m_xBuilder->weld_label(
"nameft"))
2088 , m_xNameED(m_xBuilder->weld_entry(
"name"))
2089 , m_xDefaultFT(m_xBuilder->weld_label(
"valueft"))
2090 , m_xDefaultED(m_xBuilder->weld_entry(
"value"))
2091 , m_xDefaultBtn(m_xBuilder->weld_button(
"browse"))
2092 , m_xSettingsFrame(m_xBuilder->weld_widget(
"settingsframe"))
2093 , m_xDataTypeLB(m_xBuilder->weld_combo_box(
"datatype"))
2094 , m_xRequiredCB(m_xBuilder->weld_check_button(
"required"))
2095 , m_xRequiredBtn(m_xBuilder->weld_button(
"requiredcond"))
2096 , m_xRelevantCB(m_xBuilder->weld_check_button(
"relevant"))
2097 , m_xRelevantBtn(m_xBuilder->weld_button(
"relevantcond"))
2098 , m_xConstraintCB(m_xBuilder->weld_check_button(
"constraint"))
2099 , m_xConstraintBtn(m_xBuilder->weld_button(
"constraintcond"))
2100 , m_xReadonlyCB(m_xBuilder->weld_check_button(
"readonly"))
2101 , m_xReadonlyBtn(m_xBuilder->weld_button(
"readonlycond"))
2102 , m_xCalculateCB(m_xBuilder->weld_check_button(
"calculate"))
2103 , m_xCalculateBtn(m_xBuilder->weld_button(
"calculatecond"))
2104 , m_xOKBtn(m_xBuilder->weld_button(
"ok"))
2121 Reference < XSet > xBindings =
xModel->getBindings();
2122 if ( xBindings.is() )
2155 OUString sTemp, sPropName;
2168 if ( bIsChecked && sTemp.isEmpty() )
2170 else if ( !bIsChecked && !sTemp.isEmpty() )
2178 if ( m_xDefaultBtn.get() == &rBtn )
2180 else if ( m_xRequiredBtn.get() == &rBtn )
2182 else if ( m_xRelevantBtn.get() == &rBtn )
2184 else if ( m_xConstraintBtn.get() == &rBtn )
2186 else if (m_xReadonlyBtn.get() == &rBtn)
2188 else if (m_xCalculateBtn.get() == &rBtn)
2191 bool bIsDefBtn = ( m_xDefaultBtn.get() == &rBtn );
2192 OUString sCondition;
2194 sCondition = m_xDefaultED->get_text();
2198 m_xTempBinding->getPropertyValue( sPropName ) >>= sTemp;
2199 if ( sTemp.isEmpty() )
2209 m_xDefaultED->set_text(sNewCondition);
2213 m_xTempBinding->setPropertyValue(
2214 sPropName,
Any( sNewCondition ) );
2219 static void copyPropSet(
const Reference< XPropertySet >& xFrom, Reference< XPropertySet >
const & xTo )
2221 DBG_ASSERT( xFrom.is(),
"copyPropSet(): no source" );
2222 DBG_ASSERT( xTo.is(),
"copyPropSet(): no target" );
2227 const Sequence< Property >
aProperties = xTo->getPropertySetInfo()->getProperties();
2228 Reference< XPropertySetInfo > xFromInfo = xFrom->getPropertySetInfo();
2231 const OUString& rName = rProperty.Name;
2235 if ( xFromInfo->hasPropertyByName( rName ) )
2238 Property aProperty = xFromInfo->getPropertyByName( rName );
2239 if ( ( aProperty.Attributes & PropertyAttribute::READONLY ) == 0 )
2240 xTo->setPropertyValue(rName, xFrom->getPropertyValue( rName ));
2253 bool bIsHandleBinding = (
DITBinding == m_eItemType );
2254 bool bIsHandleText = (
DITText == m_eItemType );
2255 OUString sNewName( m_xNameED->get_text() );
2257 if ( ( !bIsHandleBinding && !bIsHandleText && !m_xUIHelper->isValidXMLName( sNewName ) ) ||
2258 ( bIsHandleBinding && sNewName.isEmpty() ) )
2262 VclMessageType::Warning, VclButtonsType::Ok,
2263 SvxResId(RID_STR_INVALID_XMLNAME)));
2264 xErrBox->set_primary_text(xErrBox->get_primary_text().replaceFirst(
MSG_VARIABLE, sNewName));
2269 OUString sDataType( m_xDataTypeLB->get_active_text() );
2272 if ( bIsHandleBinding )
2275 copyPropSet( m_xTempBinding, m_pItemNode->m_xPropSet );
2278 OUString sValue = m_xNameED->get_text();
2280 sValue = m_xDefaultED->get_text();
2294 if ( bIsHandleText )
2295 m_xUIHelper->setNodeValue( m_pItemNode->m_xNode, m_xDefaultED->get_text() );
2298 Reference< css::xml::dom::XNode > xNewNode =
2299 m_xUIHelper->renameNode( m_pItemNode->m_xNode, m_xNameED->get_text() );
2300 m_xUIHelper->setNodeValue( xNewNode, m_xDefaultED->get_text() );
2301 m_pItemNode->m_xNode = xNewNode;
2344 switch ( eChildType )
2346 case css::xml::dom::NodeType_ATTRIBUTE_NODE:
2349 case css::xml::dom::NodeType_ELEMENT_NODE:
2352 case css::xml::dom::NodeType_TEXT_NODE:
2356 OSL_FAIL(
"AddDataItemDialog::InitFronNode: cannot handle this node type!" );
2374 Reference < XSet > xBindings =
xModel->getBindings();
2375 if ( xBindings.is() )
2401 Reference < XSet > xBindings =
xModel->getBindings();
2402 if ( xBindings.is() )
2441 && !sTemp.isEmpty() )
2444 && !sTemp.isEmpty() )
2447 && !sTemp.isEmpty() )
2450 && !sTemp.isEmpty() )
2453 && !sTemp.isEmpty() )
2482 Reference< css::xforms::XDataTypeRepository > xDataTypes =
2483 xModel->getDataTypeRepository();
2484 if ( xDataTypes.is() )
2486 const Sequence< OUString > aNameList = xDataTypes->getElementNames();
2487 for (
const OUString& rName : aNameList )
2541 OUString _aPropertyName,
2542 const Reference< XPropertySet >& _rPropSet)
2543 : GenericDialogController(pParent,
"svx/ui/addconditiondialog.ui",
"AddConditionDialog")
2544 , m_aResultIdle(
"svx AddConditionDialog m_aResultIdle")
2545 , m_sPropertyName(
std::move(_aPropertyName))
2546 , m_xBinding(_rPropSet)
2547 , m_xConditionED(m_xBuilder->weld_text_view(
"condition"))
2548 , m_xResultWin(m_xBuilder->weld_text_view(
"result"))
2549 , m_xEditNamespacesBtn(m_xBuilder->weld_button(
"edit"))
2550 , m_xOKBtn(m_xBuilder->weld_button(
"ok"))
2571 && !sTemp.isEmpty() )
2581 Reference< css::xforms::XModel >
xModel;
2601 Reference< XNameContainer > xNameContnr;
2629 m_aResultIdle.Start();
2636 if ( !sCondition.isEmpty() )
2640 sResult = m_xUIHelper->getResultForExpression( m_xBinding, ( m_sPropertyName ==
PN_BINDING_EXPR ), sCondition );
2647 m_xResultWin->set_text(sResult);
2651 : GenericDialogController(pCondDlg->getDialog(),
"svx/ui/namespacedialog.ui",
"NamespaceDialog")
2652 , m_pConditionDlg(pCondDlg)
2653 , m_rNamespaces(rContainer)
2654 , m_xNamespacesList(m_xBuilder->weld_tree_view(
"namespaces"))
2655 , m_xAddNamespaceBtn(m_xBuilder->weld_button(
"add"))
2656 , m_xEditNamespaceBtn(m_xBuilder->weld_button(
"edit"))
2657 , m_xDeleteNamespaceBtn(m_xBuilder->weld_button(
"delete"))
2658 , m_xOKBtn(m_xBuilder->weld_button(
"ok"))
2663 std::vector<int> aWidths
2686 bool bEnable = m_xNamespacesList->get_selected_index() != -1;
2687 m_xEditNamespaceBtn->set_sensitive( bEnable );
2688 m_xDeleteNamespaceBtn->set_sensitive( bEnable );
2693 if (m_xAddNamespaceBtn.get() == &rButton)
2698 m_xNamespacesList->append_text(aDlg.
GetPrefix());
2699 int nRow = m_xNamespacesList->n_children();
2700 m_xNamespacesList->set_text(nRow - 1, aDlg.
GetURL(), 1);
2703 else if (m_xEditNamespaceBtn.get() == &rButton)
2706 int nEntry = m_xNamespacesList->get_selected_index();
2707 DBG_ASSERT( nEntry != -1,
"NamespaceItemDialog::ClickHdl(): no entry" );
2708 OUString
sPrefix(m_xNamespacesList->get_text(nEntry, 0));
2714 m_aRemovedList.push_back(
sPrefix );
2716 m_xNamespacesList->set_text(nEntry, aDlg.
GetPrefix(), 0);
2717 m_xNamespacesList->set_text(nEntry, aDlg.
GetURL(), 1);
2720 else if (m_xDeleteNamespaceBtn.get() == &rButton)
2722 int nEntry = m_xNamespacesList->get_selected_index();
2723 DBG_ASSERT( nEntry != -1,
"NamespaceItemDialog::ClickHdl(): no entry" );
2724 OUString
sPrefix(m_xNamespacesList->get_text(nEntry, 0));
2725 m_aRemovedList.push_back(
sPrefix );
2726 m_xNamespacesList->remove(nEntry);
2730 SAL_WARN(
"svx.form",
"NamespaceItemDialog::ClickHdl(): invalid button" );
2733 SelectHdl(*m_xNamespacesList);
2741 sal_Int32
i, nRemovedCount = m_aRemovedList.size();
2742 for(
i = 0;
i < nRemovedCount; ++
i )
2743 m_rNamespaces->removeByName( m_aRemovedList[
i] );
2745 sal_Int32 nEntryCount = m_xNamespacesList->n_children();
2746 for(
i = 0;
i < nEntryCount; ++
i )
2748 OUString
sPrefix(m_xNamespacesList->get_text(
i, 0));
2749 OUString sURL(m_xNamespacesList->get_text(
i, 1));
2751 if ( m_rNamespaces->hasByName(
sPrefix ) )
2752 m_rNamespaces->replaceByName(
sPrefix,
Any( sURL ) );
2754 m_rNamespaces->insertByName(
sPrefix,
Any( sURL ) );
2770 const Sequence< OUString > aAllNames =
m_rNamespaces->getElementNames();
2771 for (
const OUString&
sPrefix : aAllNames )
2793 : GenericDialogController(pParent,
"svx/ui/addnamespacedialog.ui",
"AddNamespaceDialog")
2794 , m_pConditionDlg(pCondDlg)
2795 , m_xPrefixED(m_xBuilder->weld_entry(
"prefix"))
2796 , m_xUrlED(m_xBuilder->weld_entry(
"url"))
2797 , m_xOKBtn(m_xBuilder->weld_button(
"ok"))
2798 , m_xAltTitle(m_xBuilder->weld_label(
"alttitle"))
2812 OUString
sPrefix = m_xPrefixED->get_text();
2816 if (!m_pConditionDlg->GetUIHelper()->isValidPrefixName(
sPrefix))
2819 VclMessageType::Warning, VclButtonsType::Ok,
2820 SvxResId(RID_STR_INVALID_XMLPREFIX)));
2821 xErrBox->set_primary_text(xErrBox->get_primary_text().replaceFirst(
MSG_VARIABLE,
sPrefix));
2837 const Reference< css::xforms::XFormsUIHelper1 >& _rUIHelper)
2838 : GenericDialogController(pParent,
"svx/ui/addsubmissiondialog.ui",
"AddSubmissionDialog")
2839 , m_pItemNode(_pNode)
2840 , m_xUIHelper(_rUIHelper)
2841 , m_xNameED(m_xBuilder->weld_entry(
"name"))
2842 , m_xActionED(m_xBuilder->weld_entry(
"action"))
2843 , m_xMethodLB(m_xBuilder->weld_combo_box(
"method"))
2844 , m_xRefED(m_xBuilder->weld_entry(
"expression"))
2845 , m_xRefBtn(m_xBuilder->weld_button(
"browse"))
2846 , m_xBindLB(m_xBuilder->weld_combo_box(
"binding"))
2847 , m_xReplaceLB(m_xBuilder->weld_combo_box(
"replace"))
2848 , m_xOKBtn(m_xBuilder->weld_button(
"ok"))
2873 OUString
sName(m_xNameED->get_text());
2877 VclMessageType::Warning, VclButtonsType::Ok,
2878 SvxResId(RID_STR_EMPTY_SUBMISSIONNAME)));
2883 if ( !m_xSubmission.is() )
2886 "AddSubmissionDialog::OKHdl(): new submission already exists" );
2889 Reference< css::xforms::XModel >
xModel( m_xUIHelper, UNO_QUERY );
2894 m_xNewSubmission =
xModel->createSubmission();
2895 m_xSubmission = m_xNewSubmission;
2904 if ( m_xSubmission.is() )
2906 OUString sTemp = m_xNameED->get_text();
2910 sTemp = m_xActionED->get_text();
2912 sTemp = m_aMethodString.toAPI( m_xMethodLB->get_active_text() );
2914 sTemp = m_xRefED->get_text();
2916 OUString sEntry = m_xBindLB->get_active_text();
2917 sal_Int32 nColonIdx = sEntry.indexOf(
':');
2918 if (nColonIdx != -1)
2919 sEntry = sEntry.copy(0, nColonIdx);
2922 sTemp = m_aReplaceString.toAPI( m_xReplaceLB->get_active_text() );
2948 Reference< XEnumerationAccess > xNumAccess =
xModel->getBindings();
2949 if ( xNumAccess.is() )
2951 Reference < XEnumeration > xNum = xNumAccess->createEnumeration();
2952 if ( xNum.is() && xNum->hasMoreElements() )
2954 while ( xNum->hasMoreElements() )
2956 Reference< XPropertySet > xPropSet;
2957 Any aAny = xNum->nextElement();
2958 if ( aAny >>= xPropSet )
2963 sEntry += sTemp +
": ";
2986 Reference<css::xml::dom::XNode>(
2987 xModel->getDefaultInstance()->getDocumentElement(),
3034 if ( sTemp.isEmpty() )
3054 : GenericDialogController(pParent,
"svx/ui/addmodeldialog.ui",
"AddModelDialog")
3055 , m_xNameED(m_xBuilder->weld_entry(
"name"))
3056 , m_xModifyCB(m_xBuilder->weld_check_button(
"modify"))
3057 , m_xAltTitle(m_xBuilder->weld_label(
"alttitle"))
3068 : GenericDialogController(pParent,
"svx/ui/addinstancedialog.ui",
"AddInstanceDialog")
3069 , m_xNameED(m_xBuilder->weld_entry(
"name"))
3070 , m_xURLED(new
SvtURLBox(m_xBuilder->weld_combo_box(
"url")))
3071 , m_xFilePickerBtn(m_xBuilder->weld_button(
"browse"))
3072 , m_xLinkInstanceCB(m_xBuilder->weld_check_button(
"link"))
3073 , m_xAltTitle(m_xBuilder->weld_label(
"alttitle"))
3092 css::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE,
3093 FileDialogFlags::NONE,
m_xDialog.get());
3097 OUString sFilterName(
"XML" );
3102 m_xURLED->set_entry_text(aDlg.
GetPath());
3106 : MessageDialogController(pParent,
"svx/ui/formlinkwarndialog.ui",
3107 "FormLinkWarnDialog")
PropertiesInfo aProperties
constexpr OUStringLiteral sModel
Reference< XExecutableDialog > m_xDialog
static std::unique_ptr< weld::Builder > CreateBuilder(weld::Widget *pParent, const OUString &rUIFile, bool bMobile=false, sal_uInt64 nLOKWindowId=0)
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, const ILibreOfficeKitNotifier *pNotifier=nullptr)
std::unique_ptr< weld::Container > m_xContainer
SfxDispatcher * GetDispatcher() const
SfxViewFrame * GetFrame() const
void Initialize(SfxChildWinInfo *pInfo)
void SetAlignment(SfxChildAlignment eAlign)
void SetFloatingSize(const Size &rSize)
virtual Size CalcDockingSize(SfxChildAlignment)
virtual void dispose() override
const css::uno::Reference< css::frame::XFrame > & GetFrameInterface() const
bool IsEnableSetModified() const
static SAL_WARN_UNUSED_RESULT SfxObjectShell * Current()
virtual void SetModified(bool bModified=true)
SfxFrame & GetFrame() const
css::uno::Any GetUserItem(const OUString &sName) const
void SetUserItem(const OUString &sName, const css::uno::Any &aValue)
void SetPageID(std::string_view rID)
OString GetPageID() const
void SetPriority(TaskPriority ePriority)
void SetTimeout(sal_uInt64 nTimeoutMs)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
virtual void Start(bool bStartTimer=true) override
const_iterator find(const Value &x) const
const_iterator end() const
void AddFilter(const OUString &rFilterName, const OUString &rExtension)
void SetCurrentFilter(const OUString &rFilter)
void SetContext(Context _eNewContext)
OUString LoadInstance(const css::uno::Sequence< css::beans::PropertyValue > &_xPropSeq)
o3tl::sorted_vector< OString > m_aRemovedMenuEntries
std::unique_ptr< weld::Toolbar > m_xToolBox
std::unique_ptr< weld::Menu > m_xMenu
void AddEntry(std::unique_ptr< ItemNode > _pNewNode, bool _bIsElement, weld::TreeIter *pRet=nullptr)
void SetInstanceName(const OUString &name)
OUString SetModel(const css::uno::Reference< css::xforms::XModel > &_xModel, int _nPagePos)
css::uno::Reference< css::xforms::XFormsUIHelper1 > m_xUIHelper
void AddChildren(const weld::TreeIter *_pParent, const css::uno::Reference< css::xml::dom::XNode > &_xNode)
void SetMenuEntrySensitive(const OString &rIdent, bool bSensitive)
DataNavigatorWindow * m_pNaviWin
std::unique_ptr< weld::TreeView > m_xItemList
void SetLinkOnce(bool bLinkOnce)
const OUString & GetInstanceName() const
void EditEntry(const css::uno::Reference< css::beans::XPropertySet > &_rPropSet)
OUString GetServiceNameForNode(const css::uno::Reference< css::xml::dom::XNode > &xNode)
ReplaceString m_aReplaceString
XFormsPage(weld::Container *pParent, DataNavigatorWindow *_pNaviWin, DataGroupType _eGroup)
css::uno::Reference< css::beans::XPropertySet > GetBindingForNode(const css::uno::Reference< css::xml::dom::XNode > &xNode)
bool DoToolBoxAction(std::string_view rToolBoxID)
weld::Container * m_pParent
virtual ~XFormsPage() override
bool DoMenuAction(std::string_view rMenuID)
void SetInstanceURL(const OUString &url)
const css::uno::Reference< css::xforms::XFormsUIHelper1 > & GetXFormsHelper() const
MethodString m_aMethodString
const OUString & GetInstanceURL() const
void DeleteAndClearTree()
std::unique_ptr< weld::TreeIter > m_xScratchIter
virtual void move(weld::Widget *pWidget, weld::Container *pNewParent)=0
void set_title(const OUString &rTitle)
std::shared_ptr< weld::Dialog > m_xDialog
virtual bool get_active() const=0
constexpr OUStringLiteral MODELNAME
constexpr OUStringLiteral INSTANCENAME
constexpr OUStringLiteral SUBMISSIONNAME
constexpr OUStringLiteral ATTRIBUTENAME
constexpr OUStringLiteral CFGNAME_SHOWDETAILS
constexpr OUStringLiteral BINDINGNAME
constexpr OUStringLiteral ELEMENTNAME
constexpr OUStringLiteral MSG_VARIABLE
constexpr OUStringLiteral CFGNAME_DATANAVIGATOR
#define DBG_ASSERT(sCon, aError)
#define TOOLS_WARN_EXCEPTION(area, stream)
#define DBG_UNHANDLED_EXCEPTION(...)
OUString SvxResId(TranslateId aId)
weld::Window * GetFrameWeld(const SfxFrame *pFrame)
virtual void SetText(const OUString &rStr) override
Reference< XInterface > xTarget
constexpr OUStringLiteral FM_COMPONENT_COMMANDBUTTON
constexpr OUStringLiteral FILEDIALOG_FILTER_ALL
constexpr sal_uInt16 KEY_DELETE
#define LINK(Instance, Class, Member)
#define SAL_WARN(area, stream)
std::locale Create(std::string_view aPrefixName, const LanguageTag &rLocale)
OUString get(TranslateId sContextAndId, const std::locale &loc)
OString strip(const OString &rIn, char c)
constexpr bool starts_with(std::basic_string_view< charT, traits > sv, std::basic_string_view< charT, traits > x) noexcept
OUString toId(const void *pValue)
SFX_IMPL_DOCKINGWINDOW(SwNavigatorWrapper, SID_NAVIGATOR)
Reference< XModel > xModel