1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski #ifndef _SVX_DATANAVI_HXX 24*b1cdbd2cSJim Jagielski #define _SVX_DATANAVI_HXX 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski #include <vcl/dialog.hxx> 27*b1cdbd2cSJim Jagielski #include <vcl/fixed.hxx> 28*b1cdbd2cSJim Jagielski #include <vcl/lstbox.hxx> 29*b1cdbd2cSJim Jagielski #include <vcl/menubtn.hxx> 30*b1cdbd2cSJim Jagielski #include <vcl/msgbox.hxx> 31*b1cdbd2cSJim Jagielski #include <vcl/tabctrl.hxx> 32*b1cdbd2cSJim Jagielski #include <vcl/tabpage.hxx> 33*b1cdbd2cSJim Jagielski #include <vcl/toolbox.hxx> 34*b1cdbd2cSJim Jagielski #include <svtools/inettbc.hxx> 35*b1cdbd2cSJim Jagielski #include <svtools/svmedit.hxx> 36*b1cdbd2cSJim Jagielski #include <svtools/svtreebx.hxx> 37*b1cdbd2cSJim Jagielski #include <sfx2/dockwin.hxx> 38*b1cdbd2cSJim Jagielski #include <sfx2/ctrlitem.hxx> 39*b1cdbd2cSJim Jagielski #include <svx/simptabl.hxx> 40*b1cdbd2cSJim Jagielski #include <rtl/ref.hxx> 41*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySet.hpp> 42*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XContainer.hpp> 43*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNameContainer.hpp> 44*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XFrame.hpp> 45*b1cdbd2cSJim Jagielski #include <com/sun/star/xforms/XFormsUIHelper1.hpp> 46*b1cdbd2cSJim Jagielski #include <com/sun/star/xforms/XModel.hpp> 47*b1cdbd2cSJim Jagielski #include <com/sun/star/xforms/XSubmission.hpp> 48*b1cdbd2cSJim Jagielski #include <com/sun/star/xml/dom/XNode.hpp> 49*b1cdbd2cSJim Jagielski #include <com/sun/star/xml/dom/events/XEventTarget.hpp> 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski #include "datalistener.hxx" 52*b1cdbd2cSJim Jagielski #include <vector> 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski // forward --------------------------------------------------------------- 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski class FmFormShell; 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski //======================================================================== 59*b1cdbd2cSJim Jagielski //............................................................................ 60*b1cdbd2cSJim Jagielski namespace svxform 61*b1cdbd2cSJim Jagielski { 62*b1cdbd2cSJim Jagielski //............................................................................ 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski enum DataGroupType 65*b1cdbd2cSJim Jagielski { 66*b1cdbd2cSJim Jagielski DGTUnknown = 0, 67*b1cdbd2cSJim Jagielski DGTInstance, 68*b1cdbd2cSJim Jagielski DGTSubmission, 69*b1cdbd2cSJim Jagielski DGTBinding 70*b1cdbd2cSJim Jagielski }; 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski enum DataItemType 73*b1cdbd2cSJim Jagielski { 74*b1cdbd2cSJim Jagielski DITNone = 0, 75*b1cdbd2cSJim Jagielski DITText, 76*b1cdbd2cSJim Jagielski DITAttribute, 77*b1cdbd2cSJim Jagielski DITElement, 78*b1cdbd2cSJim Jagielski DITBinding 79*b1cdbd2cSJim Jagielski }; 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski struct ItemNode; 82*b1cdbd2cSJim Jagielski class XFormsPage; 83*b1cdbd2cSJim Jagielski class DataNavigatorWindow; 84*b1cdbd2cSJim Jagielski class AddInstanceDialog; 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 87*b1cdbd2cSJim Jagielski ::com::sun::star::xforms::XFormsUIHelper1 > XFormsUIHelper1_ref; 88*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 89*b1cdbd2cSJim Jagielski ::com::sun::star::xml::dom::XNode > XNode_ref; 90*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 91*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet > XPropertySet_ref; 92*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 93*b1cdbd2cSJim Jagielski ::com::sun::star::xforms::XModel > XModel_ref; 94*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 95*b1cdbd2cSJim Jagielski ::com::sun::star::container::XContainer > XContainer_ref; 96*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 97*b1cdbd2cSJim Jagielski ::com::sun::star::container::XNameContainer > XNameContainer_ref; 98*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 99*b1cdbd2cSJim Jagielski ::com::sun::star::frame::XFrame > XFrame_ref; 100*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 101*b1cdbd2cSJim Jagielski ::com::sun::star::frame::XModel > XFrameModel_ref; 102*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 103*b1cdbd2cSJim Jagielski ::com::sun::star::xml::dom::events::XEventTarget > XEventTarget_ref; 104*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 105*b1cdbd2cSJim Jagielski ::com::sun::star::xforms::XSubmission > XSubmission_ref; 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Sequence< 108*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyValue > PropertyValue_seq; 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski typedef std::vector< XContainer_ref > ContainerList; 111*b1cdbd2cSJim Jagielski typedef std::vector< XEventTarget_ref > EventTargetList; 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski //======================================================================== 114*b1cdbd2cSJim Jagielski class DataTreeListBox : public SvTreeListBox 115*b1cdbd2cSJim Jagielski { 116*b1cdbd2cSJim Jagielski private: 117*b1cdbd2cSJim Jagielski XFormsPage* m_pXFormsPage; 118*b1cdbd2cSJim Jagielski DataGroupType m_eGroup; 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski protected: 121*b1cdbd2cSJim Jagielski using SvTreeListBox::ExecuteDrop; 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielski public: 124*b1cdbd2cSJim Jagielski DataTreeListBox( XFormsPage* pPage, DataGroupType _eGroup, const ResId& rResId ); 125*b1cdbd2cSJim Jagielski ~DataTreeListBox(); 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski virtual PopupMenu* CreateContextMenu( void ); 128*b1cdbd2cSJim Jagielski virtual void ExcecuteContextMenuAction( sal_uInt16 _nSelectedPopupEntry ); 129*b1cdbd2cSJim Jagielski virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ); 130*b1cdbd2cSJim Jagielski virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ); 131*b1cdbd2cSJim Jagielski virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ); 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski void DeleteAndClear(); 134*b1cdbd2cSJim Jagielski void RemoveEntry( SvLBoxEntry* _pEntry ); 135*b1cdbd2cSJim Jagielski }; 136*b1cdbd2cSJim Jagielski 137*b1cdbd2cSJim Jagielski //======================================================================== 138*b1cdbd2cSJim Jagielski class XFormsPage : public TabPage 139*b1cdbd2cSJim Jagielski { 140*b1cdbd2cSJim Jagielski private: 141*b1cdbd2cSJim Jagielski ToolBox m_aToolBox; 142*b1cdbd2cSJim Jagielski DataTreeListBox m_aItemList; 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski XFormsUIHelper1_ref m_xUIHelper; 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski DataNavigatorWindow* m_pNaviWin; 147*b1cdbd2cSJim Jagielski bool m_bHasModel; 148*b1cdbd2cSJim Jagielski DataGroupType m_eGroup; 149*b1cdbd2cSJim Jagielski ImageList m_TbxImageList; 150*b1cdbd2cSJim Jagielski ImageList m_TbxHCImageList; 151*b1cdbd2cSJim Jagielski // these strings are not valid on the Submission and Binding Page 152*b1cdbd2cSJim Jagielski // mb: furthermore these are properties of an instance, thus 153*b1cdbd2cSJim Jagielski // it would be much better to get/set them through the UIHelper 154*b1cdbd2cSJim Jagielski // interface. 155*b1cdbd2cSJim Jagielski String m_sInstanceName; 156*b1cdbd2cSJim Jagielski String m_sInstanceURL; 157*b1cdbd2cSJim Jagielski bool m_bLinkOnce; 158*b1cdbd2cSJim Jagielski 159*b1cdbd2cSJim Jagielski DECL_LINK( TbxSelectHdl, ToolBox * ); 160*b1cdbd2cSJim Jagielski DECL_LINK( ItemSelectHdl, DataTreeListBox * ); 161*b1cdbd2cSJim Jagielski 162*b1cdbd2cSJim Jagielski void AddChildren( SvLBoxEntry* _pParent, 163*b1cdbd2cSJim Jagielski const ImageList& _rImgLst, 164*b1cdbd2cSJim Jagielski const XNode_ref& _xNode ); 165*b1cdbd2cSJim Jagielski bool DoToolBoxAction( sal_uInt16 _nToolBoxID ); 166*b1cdbd2cSJim Jagielski SvLBoxEntry* AddEntry( ItemNode* _pNewNode, bool _bIsElement ); 167*b1cdbd2cSJim Jagielski SvLBoxEntry* AddEntry( const XPropertySet_ref& _rPropSet ); 168*b1cdbd2cSJim Jagielski void EditEntry( const XPropertySet_ref& _rPropSet ); 169*b1cdbd2cSJim Jagielski bool RemoveEntry(); 170*b1cdbd2cSJim Jagielski 171*b1cdbd2cSJim Jagielski protected: 172*b1cdbd2cSJim Jagielski virtual long Notify( NotifyEvent& rNEvt ); 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim Jagielski public: 175*b1cdbd2cSJim Jagielski XFormsPage( Window* pParent, DataNavigatorWindow* _pNaviWin, DataGroupType _eGroup ); 176*b1cdbd2cSJim Jagielski ~XFormsPage(); 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski virtual void Resize(); 179*b1cdbd2cSJim Jagielski HasModel() const180*b1cdbd2cSJim Jagielski inline bool HasModel() const { return m_bHasModel; } 181*b1cdbd2cSJim Jagielski String SetModel( const XModel_ref& _xModel, sal_uInt16 _nPagePos ); 182*b1cdbd2cSJim Jagielski void ClearModel(); 183*b1cdbd2cSJim Jagielski String LoadInstance( const PropertyValue_seq& _xPropSeq, 184*b1cdbd2cSJim Jagielski const ImageList& _rImgLst ); 185*b1cdbd2cSJim Jagielski 186*b1cdbd2cSJim Jagielski bool DoMenuAction( sal_uInt16 _nMenuID ); 187*b1cdbd2cSJim Jagielski void EnableMenuItems( Menu* _pMenu ); 188*b1cdbd2cSJim Jagielski GetSelectedItem() const189*b1cdbd2cSJim Jagielski inline SvLBoxEntry* GetSelectedItem() const { return m_aItemList.FirstSelected(); } GetInstanceName() const190*b1cdbd2cSJim Jagielski inline const String& GetInstanceName() const { return m_sInstanceName; } GetInstanceURL() const191*b1cdbd2cSJim Jagielski inline const String& GetInstanceURL() const { return m_sInstanceURL; } GetLinkOnce() const192*b1cdbd2cSJim Jagielski inline bool GetLinkOnce() const { return m_bLinkOnce; } SetInstanceName(const String & name)193*b1cdbd2cSJim Jagielski inline void SetInstanceName( const String &name ) { m_sInstanceName=name; } SetInstanceURL(const String & url)194*b1cdbd2cSJim Jagielski inline void SetInstanceURL( const String &url ) { m_sInstanceURL=url; } SetLinkOnce(bool bLinkOnce)195*b1cdbd2cSJim Jagielski inline void SetLinkOnce( bool bLinkOnce ) { m_bLinkOnce=bLinkOnce; } 196*b1cdbd2cSJim Jagielski 197*b1cdbd2cSJim Jagielski typedef com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> XPropertySet_t; 198*b1cdbd2cSJim Jagielski typedef com::sun::star::uno::Reference<com::sun::star::xml::dom::XNode> XNode_t; 199*b1cdbd2cSJim Jagielski GetBindingForNode(const XNode_t & xNode)200*b1cdbd2cSJim Jagielski inline XPropertySet_t GetBindingForNode( const XNode_t &xNode ) { return m_xUIHelper->getBindingForNode(xNode,true); } GetServiceNameForNode(const XNode_t & xNode)201*b1cdbd2cSJim Jagielski inline String GetServiceNameForNode( const XNode_t &xNode ) { return m_xUIHelper->getDefaultServiceNameForNode(xNode); } GetXFormsHelper(void) const202*b1cdbd2cSJim Jagielski inline XFormsUIHelper1_ref GetXFormsHelper( void ) const { return m_xUIHelper; } 203*b1cdbd2cSJim Jagielski }; 204*b1cdbd2cSJim Jagielski 205*b1cdbd2cSJim Jagielski //======================================================================== 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski typedef std::vector< XFormsPage* > PageList; 208*b1cdbd2cSJim Jagielski typedef ::rtl::Reference < DataListener > DataListener_ref; 209*b1cdbd2cSJim Jagielski 210*b1cdbd2cSJim Jagielski class DataNavigatorWindow : public Window 211*b1cdbd2cSJim Jagielski { 212*b1cdbd2cSJim Jagielski private: 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski ListBox m_aModelsBox; 215*b1cdbd2cSJim Jagielski MenuButton m_aModelBtn; 216*b1cdbd2cSJim Jagielski TabControl m_aTabCtrl; 217*b1cdbd2cSJim Jagielski MenuButton m_aInstanceBtn; 218*b1cdbd2cSJim Jagielski 219*b1cdbd2cSJim Jagielski XFormsPage* m_pInstPage; 220*b1cdbd2cSJim Jagielski XFormsPage* m_pSubmissionPage; 221*b1cdbd2cSJim Jagielski XFormsPage* m_pBindingPage; 222*b1cdbd2cSJim Jagielski 223*b1cdbd2cSJim Jagielski long m_nMinWidth; 224*b1cdbd2cSJim Jagielski long m_nMinHeight; 225*b1cdbd2cSJim Jagielski long m_nBorderHeight; 226*b1cdbd2cSJim Jagielski sal_uInt16 m_nLastSelectedPos; 227*b1cdbd2cSJim Jagielski bool m_bShowDetails; 228*b1cdbd2cSJim Jagielski bool m_bIsNotifyDisabled; 229*b1cdbd2cSJim Jagielski Size m_a2Size; 230*b1cdbd2cSJim Jagielski Size m_a3Size; 231*b1cdbd2cSJim Jagielski ImageList m_aItemImageList; 232*b1cdbd2cSJim Jagielski ImageList m_aItemHCImageList; 233*b1cdbd2cSJim Jagielski PageList m_aPageList; 234*b1cdbd2cSJim Jagielski ContainerList m_aContainerList; 235*b1cdbd2cSJim Jagielski EventTargetList m_aEventTargetList; 236*b1cdbd2cSJim Jagielski Timer m_aUpdateTimer; 237*b1cdbd2cSJim Jagielski 238*b1cdbd2cSJim Jagielski DataListener_ref m_xDataListener; 239*b1cdbd2cSJim Jagielski XNameContainer_ref m_xDataContainer; 240*b1cdbd2cSJim Jagielski XFrame_ref m_xFrame; 241*b1cdbd2cSJim Jagielski XFrameModel_ref m_xFrameModel; 242*b1cdbd2cSJim Jagielski 243*b1cdbd2cSJim Jagielski DECL_LINK( ModelSelectHdl, ListBox * ); 244*b1cdbd2cSJim Jagielski DECL_LINK( MenuSelectHdl, MenuButton * ); 245*b1cdbd2cSJim Jagielski DECL_LINK( MenuActivateHdl, MenuButton * ); 246*b1cdbd2cSJim Jagielski DECL_LINK( ActivatePageHdl, TabControl* ); 247*b1cdbd2cSJim Jagielski DECL_LINK( UpdateHdl, Timer* ); 248*b1cdbd2cSJim Jagielski 249*b1cdbd2cSJim Jagielski XFormsPage* GetCurrentPage( sal_uInt16& rCurId ); 250*b1cdbd2cSJim Jagielski void LoadModels(); 251*b1cdbd2cSJim Jagielski void SetPageModel(); 252*b1cdbd2cSJim Jagielski void ClearAllPageModels( bool bClearPages ); 253*b1cdbd2cSJim Jagielski void InitPages(); 254*b1cdbd2cSJim Jagielski void CreateInstancePage( const PropertyValue_seq& _xPropSeq ); 255*b1cdbd2cSJim Jagielski bool HasFirstInstancePage() const; 256*b1cdbd2cSJim Jagielski sal_uInt16 GetNewPageId() const; 257*b1cdbd2cSJim Jagielski 258*b1cdbd2cSJim Jagielski protected: 259*b1cdbd2cSJim Jagielski virtual void Resize(); 260*b1cdbd2cSJim Jagielski 261*b1cdbd2cSJim Jagielski public: 262*b1cdbd2cSJim Jagielski DataNavigatorWindow( Window* pParent, SfxBindings* pBindings ); 263*b1cdbd2cSJim Jagielski ~DataNavigatorWindow(); 264*b1cdbd2cSJim Jagielski 265*b1cdbd2cSJim Jagielski void SetDocModified(); 266*b1cdbd2cSJim Jagielski void NotifyChanges( bool _bLoadAll = false ); 267*b1cdbd2cSJim Jagielski void AddContainerBroadcaster( const XContainer_ref& xContainer ); 268*b1cdbd2cSJim Jagielski void AddEventBroadcaster( const XEventTarget_ref& xTarget ); 269*b1cdbd2cSJim Jagielski void RemoveBroadcaster(); 270*b1cdbd2cSJim Jagielski GetItemImageList() const271*b1cdbd2cSJim Jagielski inline const ImageList& GetItemImageList() const { return m_aItemImageList; } GetItemHCImageList() const272*b1cdbd2cSJim Jagielski inline const ImageList& GetItemHCImageList() const { return m_aItemHCImageList; } IsShowDetails() const273*b1cdbd2cSJim Jagielski inline bool IsShowDetails() const { return m_bShowDetails; } DisableNotify(bool _bDisable)274*b1cdbd2cSJim Jagielski inline void DisableNotify( bool _bDisable ) { m_bIsNotifyDisabled = _bDisable; } 275*b1cdbd2cSJim Jagielski }; 276*b1cdbd2cSJim Jagielski 277*b1cdbd2cSJim Jagielski //======================================================================== 278*b1cdbd2cSJim Jagielski class DataNavigator : public SfxDockingWindow, public SfxControllerItem 279*b1cdbd2cSJim Jagielski { 280*b1cdbd2cSJim Jagielski private: 281*b1cdbd2cSJim Jagielski DataNavigatorWindow m_aDataWin; 282*b1cdbd2cSJim Jagielski 283*b1cdbd2cSJim Jagielski protected: 284*b1cdbd2cSJim Jagielski virtual void Resize(); 285*b1cdbd2cSJim Jagielski virtual sal_Bool Close(); 286*b1cdbd2cSJim Jagielski virtual void GetFocus(); 287*b1cdbd2cSJim Jagielski virtual Size CalcDockingSize( SfxChildAlignment ); 288*b1cdbd2cSJim Jagielski virtual SfxChildAlignment CheckAlignment( SfxChildAlignment, SfxChildAlignment ); 289*b1cdbd2cSJim Jagielski 290*b1cdbd2cSJim Jagielski public: 291*b1cdbd2cSJim Jagielski DataNavigator( SfxBindings* pBindings, SfxChildWindow* pMgr, Window* pParent ); 292*b1cdbd2cSJim Jagielski virtual ~DataNavigator(); 293*b1cdbd2cSJim Jagielski 294*b1cdbd2cSJim Jagielski using Window::Update; 295*b1cdbd2cSJim Jagielski using SfxDockingWindow::StateChanged; 296*b1cdbd2cSJim Jagielski 297*b1cdbd2cSJim Jagielski void Update( FmFormShell* pFormShell ); 298*b1cdbd2cSJim Jagielski void StateChanged( sal_uInt16 nSID, SfxItemState eState, 299*b1cdbd2cSJim Jagielski const SfxPoolItem* pState ); 300*b1cdbd2cSJim Jagielski }; 301*b1cdbd2cSJim Jagielski 302*b1cdbd2cSJim Jagielski //======================================================================== 303*b1cdbd2cSJim Jagielski class SVX_DLLPUBLIC DataNavigatorManager : public SfxChildWindow 304*b1cdbd2cSJim Jagielski { 305*b1cdbd2cSJim Jagielski public: 306*b1cdbd2cSJim Jagielski SVX_DLLPRIVATE DataNavigatorManager( Window* pParent, sal_uInt16 nId, 307*b1cdbd2cSJim Jagielski SfxBindings* pBindings, SfxChildWinInfo* pInfo ); 308*b1cdbd2cSJim Jagielski SFX_DECL_CHILDWINDOW( DataNavigatorManager ); 309*b1cdbd2cSJim Jagielski }; 310*b1cdbd2cSJim Jagielski 311*b1cdbd2cSJim Jagielski //======================================================================== 312*b1cdbd2cSJim Jagielski class AddDataItemDialog : public ModalDialog 313*b1cdbd2cSJim Jagielski { 314*b1cdbd2cSJim Jagielski private: 315*b1cdbd2cSJim Jagielski 316*b1cdbd2cSJim Jagielski FixedLine m_aItemFL; 317*b1cdbd2cSJim Jagielski FixedText m_aNameFT; 318*b1cdbd2cSJim Jagielski Edit m_aNameED; 319*b1cdbd2cSJim Jagielski FixedText m_aDefaultFT; 320*b1cdbd2cSJim Jagielski Edit m_aDefaultED; 321*b1cdbd2cSJim Jagielski PushButton m_aDefaultBtn; 322*b1cdbd2cSJim Jagielski 323*b1cdbd2cSJim Jagielski FixedLine m_aSettingsFL; 324*b1cdbd2cSJim Jagielski FixedText m_aDataTypeFT; 325*b1cdbd2cSJim Jagielski ListBox m_aDataTypeLB; 326*b1cdbd2cSJim Jagielski 327*b1cdbd2cSJim Jagielski CheckBox m_aRequiredCB; 328*b1cdbd2cSJim Jagielski PushButton m_aRequiredBtn; 329*b1cdbd2cSJim Jagielski CheckBox m_aRelevantCB; 330*b1cdbd2cSJim Jagielski PushButton m_aRelevantBtn; 331*b1cdbd2cSJim Jagielski CheckBox m_aConstraintCB; 332*b1cdbd2cSJim Jagielski PushButton m_aConstraintBtn; 333*b1cdbd2cSJim Jagielski CheckBox m_aReadonlyCB; 334*b1cdbd2cSJim Jagielski PushButton m_aReadonlyBtn; 335*b1cdbd2cSJim Jagielski CheckBox m_aCalculateCB; 336*b1cdbd2cSJim Jagielski PushButton m_aCalculateBtn; 337*b1cdbd2cSJim Jagielski 338*b1cdbd2cSJim Jagielski FixedLine m_aButtonsFL; 339*b1cdbd2cSJim Jagielski OKButton m_aOKBtn; 340*b1cdbd2cSJim Jagielski CancelButton m_aEscBtn; 341*b1cdbd2cSJim Jagielski HelpButton m_aHelpBtn; 342*b1cdbd2cSJim Jagielski 343*b1cdbd2cSJim Jagielski XFormsUIHelper1_ref m_xUIHelper; 344*b1cdbd2cSJim Jagielski XPropertySet_ref m_xBinding; 345*b1cdbd2cSJim Jagielski XPropertySet_ref m_xTempBinding; 346*b1cdbd2cSJim Jagielski 347*b1cdbd2cSJim Jagielski ItemNode* m_pItemNode; 348*b1cdbd2cSJim Jagielski DataItemType m_eItemType; 349*b1cdbd2cSJim Jagielski String m_sFL_Element; 350*b1cdbd2cSJim Jagielski String m_sFL_Attribute; 351*b1cdbd2cSJim Jagielski String m_sFL_Binding; 352*b1cdbd2cSJim Jagielski String m_sFT_BindingExp; 353*b1cdbd2cSJim Jagielski 354*b1cdbd2cSJim Jagielski DECL_LINK( CheckHdl, CheckBox * ); 355*b1cdbd2cSJim Jagielski DECL_LINK( ConditionHdl, PushButton * ); 356*b1cdbd2cSJim Jagielski DECL_LINK( OKHdl, OKButton * ); 357*b1cdbd2cSJim Jagielski 358*b1cdbd2cSJim Jagielski void InitDialog(); 359*b1cdbd2cSJim Jagielski void InitFromNode(); 360*b1cdbd2cSJim Jagielski void InitDataTypeBox(); 361*b1cdbd2cSJim Jagielski 362*b1cdbd2cSJim Jagielski public: 363*b1cdbd2cSJim Jagielski AddDataItemDialog( 364*b1cdbd2cSJim Jagielski Window* pParent, ItemNode* _pNode, const XFormsUIHelper1_ref& _rUIHelper ); 365*b1cdbd2cSJim Jagielski ~AddDataItemDialog(); 366*b1cdbd2cSJim Jagielski 367*b1cdbd2cSJim Jagielski void InitText( DataItemType _eType ); 368*b1cdbd2cSJim Jagielski }; 369*b1cdbd2cSJim Jagielski 370*b1cdbd2cSJim Jagielski //======================================================================== 371*b1cdbd2cSJim Jagielski class AddConditionDialog : public ModalDialog 372*b1cdbd2cSJim Jagielski { 373*b1cdbd2cSJim Jagielski private: 374*b1cdbd2cSJim Jagielski FixedText m_aConditionFT; 375*b1cdbd2cSJim Jagielski MultiLineEdit m_aConditionED; 376*b1cdbd2cSJim Jagielski FixedText m_aResultFT; 377*b1cdbd2cSJim Jagielski FixedText m_aResultWin; 378*b1cdbd2cSJim Jagielski PushButton m_aEditNamespacesBtn; 379*b1cdbd2cSJim Jagielski FixedLine m_aButtonsFL; 380*b1cdbd2cSJim Jagielski OKButton m_aOKBtn; 381*b1cdbd2cSJim Jagielski CancelButton m_aEscBtn; 382*b1cdbd2cSJim Jagielski HelpButton m_aHelpBtn; 383*b1cdbd2cSJim Jagielski 384*b1cdbd2cSJim Jagielski Timer m_aResultTimer; 385*b1cdbd2cSJim Jagielski ::rtl::OUString m_sPropertyName; 386*b1cdbd2cSJim Jagielski 387*b1cdbd2cSJim Jagielski XFormsUIHelper1_ref m_xUIHelper; 388*b1cdbd2cSJim Jagielski XPropertySet_ref m_xBinding; 389*b1cdbd2cSJim Jagielski 390*b1cdbd2cSJim Jagielski DECL_LINK( ModifyHdl, MultiLineEdit * ); 391*b1cdbd2cSJim Jagielski DECL_LINK( ResultHdl, Timer * ); 392*b1cdbd2cSJim Jagielski DECL_LINK( EditHdl, PushButton * ); 393*b1cdbd2cSJim Jagielski DECL_LINK( OKHdl, OKButton * ); 394*b1cdbd2cSJim Jagielski 395*b1cdbd2cSJim Jagielski public: 396*b1cdbd2cSJim Jagielski AddConditionDialog( Window* pParent, 397*b1cdbd2cSJim Jagielski const ::rtl::OUString& _rPropertyName, const XPropertySet_ref& _rBinding ); 398*b1cdbd2cSJim Jagielski ~AddConditionDialog(); 399*b1cdbd2cSJim Jagielski GetUIHelper() const400*b1cdbd2cSJim Jagielski inline XFormsUIHelper1_ref GetUIHelper() const { return m_xUIHelper; } GetCondition() const401*b1cdbd2cSJim Jagielski inline String GetCondition() const { return m_aConditionED.GetText(); } 402*b1cdbd2cSJim Jagielski inline void SetCondition( const String& _rCondition ); 403*b1cdbd2cSJim Jagielski }; 404*b1cdbd2cSJim Jagielski SetCondition(const String & _rCondition)405*b1cdbd2cSJim Jagielski inline void AddConditionDialog::SetCondition( const String& _rCondition ) 406*b1cdbd2cSJim Jagielski { 407*b1cdbd2cSJim Jagielski m_aConditionED.SetText( _rCondition ); 408*b1cdbd2cSJim Jagielski m_aResultTimer.Start(); 409*b1cdbd2cSJim Jagielski } 410*b1cdbd2cSJim Jagielski 411*b1cdbd2cSJim Jagielski //======================================================================== 412*b1cdbd2cSJim Jagielski class NamespaceItemDialog : public ModalDialog 413*b1cdbd2cSJim Jagielski { 414*b1cdbd2cSJim Jagielski private: 415*b1cdbd2cSJim Jagielski typedef std::vector< ::rtl::OUString > PrefixList; 416*b1cdbd2cSJim Jagielski 417*b1cdbd2cSJim Jagielski FixedText m_aNamespacesFT; 418*b1cdbd2cSJim Jagielski SvxSimpleTable m_aNamespacesList; 419*b1cdbd2cSJim Jagielski PushButton m_aAddNamespaceBtn; 420*b1cdbd2cSJim Jagielski PushButton m_aEditNamespaceBtn; 421*b1cdbd2cSJim Jagielski PushButton m_aDeleteNamespaceBtn; 422*b1cdbd2cSJim Jagielski FixedLine m_aButtonsFL; 423*b1cdbd2cSJim Jagielski OKButton m_aOKBtn; 424*b1cdbd2cSJim Jagielski CancelButton m_aEscBtn; 425*b1cdbd2cSJim Jagielski HelpButton m_aHelpBtn; 426*b1cdbd2cSJim Jagielski 427*b1cdbd2cSJim Jagielski AddConditionDialog* m_pConditionDlg; 428*b1cdbd2cSJim Jagielski PrefixList m_aRemovedList; 429*b1cdbd2cSJim Jagielski 430*b1cdbd2cSJim Jagielski XNameContainer_ref& m_rNamespaces; 431*b1cdbd2cSJim Jagielski 432*b1cdbd2cSJim Jagielski DECL_LINK( SelectHdl, SvxSimpleTable * ); 433*b1cdbd2cSJim Jagielski DECL_LINK( ClickHdl, PushButton * ); 434*b1cdbd2cSJim Jagielski DECL_LINK( OKHdl, OKButton * ); 435*b1cdbd2cSJim Jagielski 436*b1cdbd2cSJim Jagielski void LoadNamespaces(); 437*b1cdbd2cSJim Jagielski 438*b1cdbd2cSJim Jagielski public: 439*b1cdbd2cSJim Jagielski NamespaceItemDialog( AddConditionDialog* pParent, XNameContainer_ref& _rContainer ); 440*b1cdbd2cSJim Jagielski ~NamespaceItemDialog(); 441*b1cdbd2cSJim Jagielski }; 442*b1cdbd2cSJim Jagielski 443*b1cdbd2cSJim Jagielski //======================================================================== 444*b1cdbd2cSJim Jagielski class ManageNamespaceDialog : public ModalDialog 445*b1cdbd2cSJim Jagielski { 446*b1cdbd2cSJim Jagielski private: 447*b1cdbd2cSJim Jagielski FixedText m_aPrefixFT; 448*b1cdbd2cSJim Jagielski Edit m_aPrefixED; 449*b1cdbd2cSJim Jagielski FixedText m_aUrlFT; 450*b1cdbd2cSJim Jagielski Edit m_aUrlED; 451*b1cdbd2cSJim Jagielski FixedLine m_aButtonsFL; 452*b1cdbd2cSJim Jagielski OKButton m_aOKBtn; 453*b1cdbd2cSJim Jagielski CancelButton m_aEscBtn; 454*b1cdbd2cSJim Jagielski HelpButton m_aHelpBtn; 455*b1cdbd2cSJim Jagielski 456*b1cdbd2cSJim Jagielski AddConditionDialog* m_pConditionDlg; 457*b1cdbd2cSJim Jagielski 458*b1cdbd2cSJim Jagielski DECL_LINK( OKHdl, OKButton * ); 459*b1cdbd2cSJim Jagielski 460*b1cdbd2cSJim Jagielski public: 461*b1cdbd2cSJim Jagielski ManageNamespaceDialog( Window* pParent, AddConditionDialog* _pCondDlg, bool _bIsEdit ); 462*b1cdbd2cSJim Jagielski ~ManageNamespaceDialog(); 463*b1cdbd2cSJim Jagielski 464*b1cdbd2cSJim Jagielski inline void SetNamespace( const String& _rPrefix, const String& _rURL ); GetPrefix() const465*b1cdbd2cSJim Jagielski inline String GetPrefix() const { return m_aPrefixED.GetText(); } GetURL() const466*b1cdbd2cSJim Jagielski inline String GetURL() const { return m_aUrlED.GetText(); } 467*b1cdbd2cSJim Jagielski }; 468*b1cdbd2cSJim Jagielski SetNamespace(const String & _rPrefix,const String & _rURL)469*b1cdbd2cSJim Jagielski void ManageNamespaceDialog::SetNamespace( const String& _rPrefix, const String& _rURL ) 470*b1cdbd2cSJim Jagielski { 471*b1cdbd2cSJim Jagielski m_aPrefixED.SetText( _rPrefix ); 472*b1cdbd2cSJim Jagielski m_aUrlED.SetText( _rURL ); 473*b1cdbd2cSJim Jagielski } 474*b1cdbd2cSJim Jagielski 475*b1cdbd2cSJim Jagielski //======================================================================== 476*b1cdbd2cSJim Jagielski class AddSubmissionDialog : public ModalDialog 477*b1cdbd2cSJim Jagielski { 478*b1cdbd2cSJim Jagielski private: 479*b1cdbd2cSJim Jagielski FixedLine m_aSubmissionFL; 480*b1cdbd2cSJim Jagielski FixedText m_aNameFT; 481*b1cdbd2cSJim Jagielski Edit m_aNameED; 482*b1cdbd2cSJim Jagielski FixedText m_aActionFT; 483*b1cdbd2cSJim Jagielski Edit m_aActionED; 484*b1cdbd2cSJim Jagielski FixedText m_aMethodFT; 485*b1cdbd2cSJim Jagielski ListBox m_aMethodLB; 486*b1cdbd2cSJim Jagielski FixedText m_aRefFT; 487*b1cdbd2cSJim Jagielski Edit m_aRefED; 488*b1cdbd2cSJim Jagielski PushButton m_aRefBtn; 489*b1cdbd2cSJim Jagielski FixedText m_aBindFT; 490*b1cdbd2cSJim Jagielski ListBox m_aBindLB; 491*b1cdbd2cSJim Jagielski FixedText m_aReplaceFT; 492*b1cdbd2cSJim Jagielski ListBox m_aReplaceLB; 493*b1cdbd2cSJim Jagielski 494*b1cdbd2cSJim Jagielski FixedLine m_aButtonsFL; 495*b1cdbd2cSJim Jagielski OKButton m_aOKBtn; 496*b1cdbd2cSJim Jagielski CancelButton m_aEscBtn; 497*b1cdbd2cSJim Jagielski HelpButton m_aHelpBtn; 498*b1cdbd2cSJim Jagielski 499*b1cdbd2cSJim Jagielski ItemNode* m_pItemNode; 500*b1cdbd2cSJim Jagielski 501*b1cdbd2cSJim Jagielski XFormsUIHelper1_ref m_xUIHelper; 502*b1cdbd2cSJim Jagielski XSubmission_ref m_xNewSubmission; 503*b1cdbd2cSJim Jagielski XPropertySet_ref m_xSubmission; 504*b1cdbd2cSJim Jagielski XPropertySet_ref m_xTempBinding; 505*b1cdbd2cSJim Jagielski XPropertySet_ref m_xCreatedBinding; 506*b1cdbd2cSJim Jagielski 507*b1cdbd2cSJim Jagielski DECL_LINK( RefHdl, PushButton * ); 508*b1cdbd2cSJim Jagielski DECL_LINK( OKHdl, OKButton * ); 509*b1cdbd2cSJim Jagielski 510*b1cdbd2cSJim Jagielski void FillAllBoxes(); 511*b1cdbd2cSJim Jagielski 512*b1cdbd2cSJim Jagielski public: 513*b1cdbd2cSJim Jagielski AddSubmissionDialog( Window* pParent, ItemNode* _pNode, 514*b1cdbd2cSJim Jagielski const XFormsUIHelper1_ref& _rUIHelper ); 515*b1cdbd2cSJim Jagielski ~AddSubmissionDialog(); 516*b1cdbd2cSJim Jagielski GetNewSubmission() const517*b1cdbd2cSJim Jagielski inline const XSubmission_ref& GetNewSubmission() const { return m_xNewSubmission; } 518*b1cdbd2cSJim Jagielski }; 519*b1cdbd2cSJim Jagielski 520*b1cdbd2cSJim Jagielski //======================================================================== 521*b1cdbd2cSJim Jagielski class AddModelDialog : public ModalDialog 522*b1cdbd2cSJim Jagielski { 523*b1cdbd2cSJim Jagielski private: 524*b1cdbd2cSJim Jagielski FixedLine m_aModelFL; 525*b1cdbd2cSJim Jagielski FixedText m_aNameFT; 526*b1cdbd2cSJim Jagielski Edit m_aNameED; 527*b1cdbd2cSJim Jagielski CheckBox m_aModifyCB; 528*b1cdbd2cSJim Jagielski FixedLine m_aButtonsFL; 529*b1cdbd2cSJim Jagielski OKButton m_aOKBtn; 530*b1cdbd2cSJim Jagielski CancelButton m_aEscBtn; 531*b1cdbd2cSJim Jagielski HelpButton m_aHelpBtn; 532*b1cdbd2cSJim Jagielski 533*b1cdbd2cSJim Jagielski public: 534*b1cdbd2cSJim Jagielski AddModelDialog( Window* pParent, bool _bEdit ); 535*b1cdbd2cSJim Jagielski ~AddModelDialog(); 536*b1cdbd2cSJim Jagielski GetName() const537*b1cdbd2cSJim Jagielski inline String GetName() const { return m_aNameED.GetText(); } SetName(const String & _rName)538*b1cdbd2cSJim Jagielski inline void SetName( const String& _rName ) { m_aNameED.SetText( _rName );} 539*b1cdbd2cSJim Jagielski GetModifyDoc() const540*b1cdbd2cSJim Jagielski inline bool GetModifyDoc() const { return bool( m_aModifyCB.IsChecked() ); } SetModifyDoc(const bool _bModify)541*b1cdbd2cSJim Jagielski inline void SetModifyDoc( const bool _bModify ) { m_aModifyCB.Check( _bModify ); } 542*b1cdbd2cSJim Jagielski }; 543*b1cdbd2cSJim Jagielski 544*b1cdbd2cSJim Jagielski //======================================================================== 545*b1cdbd2cSJim Jagielski class AddInstanceDialog : public ModalDialog 546*b1cdbd2cSJim Jagielski { 547*b1cdbd2cSJim Jagielski private: 548*b1cdbd2cSJim Jagielski FixedLine m_aInstanceFL; 549*b1cdbd2cSJim Jagielski FixedText m_aNameFT; 550*b1cdbd2cSJim Jagielski Edit m_aNameED; 551*b1cdbd2cSJim Jagielski FixedText m_aURLFT; 552*b1cdbd2cSJim Jagielski SvtURLBox m_aURLED; 553*b1cdbd2cSJim Jagielski PushButton m_aFilePickerBtn; 554*b1cdbd2cSJim Jagielski CheckBox m_aLinkInstanceCB; 555*b1cdbd2cSJim Jagielski FixedLine m_aButtonsFL; 556*b1cdbd2cSJim Jagielski OKButton m_aOKBtn; 557*b1cdbd2cSJim Jagielski CancelButton m_aEscBtn; 558*b1cdbd2cSJim Jagielski HelpButton m_aHelpBtn; 559*b1cdbd2cSJim Jagielski 560*b1cdbd2cSJim Jagielski String m_sAllFilterName; 561*b1cdbd2cSJim Jagielski 562*b1cdbd2cSJim Jagielski DECL_LINK( FilePickerHdl, PushButton * ); 563*b1cdbd2cSJim Jagielski 564*b1cdbd2cSJim Jagielski public: 565*b1cdbd2cSJim Jagielski AddInstanceDialog( Window* pParent, bool _bEdit ); 566*b1cdbd2cSJim Jagielski ~AddInstanceDialog(); 567*b1cdbd2cSJim Jagielski 568*b1cdbd2cSJim Jagielski inline void SetRenameMode(); GetName() const569*b1cdbd2cSJim Jagielski inline String GetName() const { return m_aNameED.GetText(); } SetName(const String & _rName)570*b1cdbd2cSJim Jagielski inline void SetName( const String& _rName ) { m_aNameED.SetText( _rName );} GetURL() const571*b1cdbd2cSJim Jagielski inline String GetURL() const { return m_aURLED.GetText(); } SetURL(const String & _rURL)572*b1cdbd2cSJim Jagielski inline void SetURL( const String& _rURL ) { m_aURLED.SetText( _rURL );} IsLinkInstance() const573*b1cdbd2cSJim Jagielski inline bool IsLinkInstance() const { return ( m_aLinkInstanceCB.IsChecked() != sal_False ); } SetLinkInstance(bool _bLink)574*b1cdbd2cSJim Jagielski inline void SetLinkInstance( bool _bLink ) { m_aLinkInstanceCB.Check( _bLink != false ); } 575*b1cdbd2cSJim Jagielski }; 576*b1cdbd2cSJim Jagielski SetRenameMode()577*b1cdbd2cSJim Jagielski inline void AddInstanceDialog::SetRenameMode() 578*b1cdbd2cSJim Jagielski { 579*b1cdbd2cSJim Jagielski m_aURLFT.Disable(); 580*b1cdbd2cSJim Jagielski m_aURLED.Disable(); 581*b1cdbd2cSJim Jagielski m_aFilePickerBtn.Disable(); 582*b1cdbd2cSJim Jagielski m_aLinkInstanceCB.Disable(); 583*b1cdbd2cSJim Jagielski } 584*b1cdbd2cSJim Jagielski 585*b1cdbd2cSJim Jagielski //======================================================================== 586*b1cdbd2cSJim Jagielski class LinkedInstanceWarningBox : public MessBox 587*b1cdbd2cSJim Jagielski { 588*b1cdbd2cSJim Jagielski public: 589*b1cdbd2cSJim Jagielski LinkedInstanceWarningBox( Window* pParent ); 590*b1cdbd2cSJim Jagielski }; 591*b1cdbd2cSJim Jagielski 592*b1cdbd2cSJim Jagielski //............................................................................ 593*b1cdbd2cSJim Jagielski } // namespace svxform 594*b1cdbd2cSJim Jagielski //............................................................................ 595*b1cdbd2cSJim Jagielski 596*b1cdbd2cSJim Jagielski #endif // _SVX_DATANAVI_HXX 597*b1cdbd2cSJim Jagielski 598