Kaydet (Commit) 07579ec1 authored tarafından Caolán McNamara's avatar Caolán McNamara

convert query join dialog to .ui format

Change-Id: I1de2bb1d171e23a42834e20040ade92822901876
üst cf561446
......@@ -21,6 +21,7 @@ $(eval $(call gb_UIConfig_add_uifiles,dbaccess, \
dbaccess/uiconfig/ui/generalpagedialog \
dbaccess/uiconfig/ui/generalpagewizard \
dbaccess/uiconfig/ui/generatedvaluespage \
dbaccess/uiconfig/ui/joindialog \
dbaccess/uiconfig/ui/queryfilterdialog \
dbaccess/uiconfig/ui/querypropertiesdialog \
dbaccess/uiconfig/ui/rowheightdialog \
......
......@@ -89,8 +89,6 @@
#define HID_CTL_QRYDGNTAB "DBACCESS_HID_CTL_QRYDGNTAB"
#define HID_DLG_QRY_JOIN "DBACCESS_HID_DLG_QRY_JOIN"
#define HID_DLG_QRY_JOINTYPE "DBACCESS_HID_DLG_QRY_JOINTYPE"
#define HID_DLG_QRY_HELPTEXT "DBACCESS_HID_DLG_QRY_HELPTEXT"
#define HID_CTL_QRYDGNCRIT "DBACCESS_HID_CTL_QRYDGNCRIT"
......@@ -158,7 +156,6 @@
#define HID_TLB_RELATIONDESIGN "DBACCESS_HID_TLB_RELATIONDESIGN"
#define HID_RELATIONDIALOG_LEFTFIELDCELL "DBACCESS_HID_RELATIONDIALOG_LEFTFIELDCELL"
#define HID_RELATIONDIALOG_RIGHTFIELDCELL "DBACCESS_HID_RELATIONDIALOG_RIGHTFIELDCELL"
#define HID_RELDLG_KEYFIELDS "DBACCESS_HID_RELDLG_KEYFIELDS"
#define HID_BROWSER_RELATION_DESIGN "DBACCESS_HID_BROWSER_RELATION_DESIGN"
#define HID_TABLE_DESIGN_NO_CONNECTION "DBACCESS_HID_TABLE_DESIGN_NO_CONNECTION"
#define HID_DSADMIN_CREATEDATABASE "DBACCESS_HID_DSADMIN_CREATEDATABASE"
......@@ -370,7 +367,6 @@
#define HID_DLG_DATABASE_WIZARD "DBACCESS_HID_DLG_DATABASE_WIZARD"
#define HID_EXTENSION_NOT_PRESENT_DLG "DBACCESS_HID_EXTENSION_NOT_PRESENT_DLG"
#define HID_DLG_QRY_JOIN_CONTROL "DBACCESS_HID_DLG_QRY_JOIN_CONTROL"
#define HID_MACRO_MIGRATION_BACKUP_LOCATION "DBACCESS_HID_MACRO_MIGRATION_BACKUP_LOCATION"
#endif // _DBA_DBACCESS_HELPID_HRC_
......
......@@ -80,7 +80,7 @@ ORelationDialog::ORelationDialog( OJoinTableView* pParent,
m_pConnData->CopyFrom( *pConnectionData );
Init(m_pConnData);
m_pTableControl.reset( new OTableListBoxControl(this,ModuleRes(WND_CONTROL),m_pTableMap,this) );
m_pTableControl.reset( new OTableListBoxControl(this, m_pTableMap, this) );
aPB_OK.SetClickHdl( LINK(this, ORelationDialog, OKClickHdl) );
......
......@@ -20,6 +20,7 @@
#define INCLUDED_DBACCESS_SOURCE_UI_INC_RELATIONCONTROL_HXX
#include <vcl/fixed.hxx>
#include <vcl/builder.hxx>
#include <vcl/lstbox.hxx>
#include "JoinTableView.hxx"
......@@ -29,12 +30,10 @@ namespace dbaui
class IRelationControlInterface;
class ORelationControl;
class OTableListBoxControl : public Window
class OTableListBoxControl
{
FixedLine m_aFL_InvolvedTables;
ListBox m_lmbLeftTable,
m_lmbRightTable;
FixedLine m_aFL_InvolvedFields;
ListBox* m_pLeftTable;
ListBox* m_pRightTable;
ORelationControl* m_pRC_Tables;
const OJoinTableView::OTableWindowMap* m_pTableMap;
......@@ -44,8 +43,7 @@ namespace dbaui
private:
DECL_LINK( OnTableChanged, ListBox* );
public:
OTableListBoxControl(Window* _pParent,
const ResId& _rResId,
OTableListBoxControl(VclBuilderContainer* _pParent,
const OJoinTableView::OTableWindowMap* _pTableMap,
IRelationControlInterface* _pParentDialog);
virtual ~OTableListBoxControl();
......@@ -75,9 +73,12 @@ namespace dbaui
the connection data which is used to init the control
*/
void Init(const TTableConnectionData::value_type& _pConnData);
void lateUIInit(Window* _pTableSeparator = NULL);
void lateUIInit();
void lateInit();
void Disable();
void Invalidate();
sal_Bool SaveModified();
TTableWindowData::value_type getReferencingTable() const;
......
......@@ -80,7 +80,7 @@
#define DLG_PARAMETERS RID_DIALOG_START + 5
#define DLG_JOIN_TABADD RID_DIALOG_START + 14
#define DLG_QRY_JOIN RID_DIALOG_START + 15
// FREE
#define WIZ_RTFCOPYTABLE RID_DIALOG_START + 16
#define DLG_REL_PROPERTIES RID_DIALOG_START + 17
// FREE
......
......@@ -36,62 +36,32 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdbc;
namespace dbaui
{
class OJoinControl : public Window
{
public:
FixedLine aFL_Join;
FixedText aFT_Title;
ListBox aLB_JoinType;
CheckBox m_aCBNatural;
OJoinControl(Window* _pParent,const ResId& _rResId);
};
OJoinControl::OJoinControl(Window* _pParent,const ResId& _rResId)
: Window(_pParent,_rResId)
,aFL_Join( this, ResId( FL_JOIN,*_rResId.GetResMgr() ) )
,aFT_Title( this, ResId(FT_LISTBOXTITLE,*_rResId.GetResMgr()) )
,aLB_JoinType( this, ResId(LB_JOINTYPE,*_rResId.GetResMgr()) )
,m_aCBNatural( this, ResId(CB_NATURAL,*_rResId.GetResMgr()) )
{
FreeResource();
}
} // dbaui
DlgQryJoin::DlgQryJoin( OQueryTableView * pParent,
const TTableConnectionData::value_type& _pData,
OJoinTableView::OTableWindowMap* _pTableMap,
const Reference< XConnection >& _xConnection,
sal_Bool _bAllowTableSelect)
:ModalDialog( pParent, ModuleRes(DLG_QRY_JOIN) )
,aML_HelpText( this, ModuleRes(ML_HELPTEXT) )
,aPB_OK( this, ModuleRes( PB_OK ) )
,aPB_CANCEL( this, ModuleRes( PB_CANCEL ) )
,aPB_HELP( this, ModuleRes( PB_HELP ) )
,m_pJoinControl( NULL )
,m_pTableControl( NULL )
,m_pTableMap(_pTableMap)
,m_pTableView(pParent)
,eJoinType(static_cast<OQueryTableConnectionData*>(_pData.get())->GetJoinType())
,m_pOrigConnData(_pData)
,m_xConnection(_xConnection)
: ModalDialog( pParent, "JoinDialog", "dbaccess/ui/joindialog.ui" )
, m_pTableControl( NULL )
, m_pTableMap(_pTableMap)
, m_pTableView(pParent)
, eJoinType(static_cast<OQueryTableConnectionData*>(_pData.get())->GetJoinType())
, m_pOrigConnData(_pData)
, m_xConnection(_xConnection)
{
get(m_pML_HelpText, "helptext");
get(m_pLB_JoinType, "type");
get(m_pCBNatural, "natural");
get(m_pPB_OK, "ok");
aML_HelpText.SetControlBackground( GetSettings().GetStyleSettings().GetFaceColor() );
m_pML_HelpText->SetControlBackground( GetSettings().GetStyleSettings().GetFaceColor() );
// Connection kopieren
m_pConnData.reset(_pData->NewInstance());
m_pConnData->CopyFrom(*_pData);
m_pTableControl = new OTableListBoxControl(this,ModuleRes(WND_CONTROL),m_pTableMap,this);
m_pTableControl = new OTableListBoxControl(this, m_pTableMap, this);
m_pJoinControl = new OJoinControl(m_pTableControl,ModuleRes(WND_JOIN_CONTROL));
m_pJoinControl->Show();
m_pJoinControl->m_aCBNatural.Check(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
m_pTableControl->Show();
m_pCBNatural->Check(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
if( _bAllowTableSelect )
{
......@@ -104,7 +74,7 @@ DlgQryJoin::DlgQryJoin( OQueryTableView * pParent,
m_pTableControl->Init( m_pConnData );
}
m_pTableControl->lateUIInit(m_pJoinControl);
m_pTableControl->lateUIInit();
sal_Bool bSupportFullJoin = sal_False;
Reference<XDatabaseMetaData> xMeta;
......@@ -129,49 +99,46 @@ DlgQryJoin::DlgQryJoin( OQueryTableView * pParent,
setJoinType(eJoinType);
aPB_OK.SetClickHdl( LINK(this, DlgQryJoin, OKClickHdl) );
m_pPB_OK->SetClickHdl( LINK(this, DlgQryJoin, OKClickHdl) );
m_pJoinControl->aLB_JoinType.SetSelectHdl(LINK(this,DlgQryJoin,LBChangeHdl));
m_pJoinControl->m_aCBNatural.SetToggleHdl(LINK(this,DlgQryJoin,NaturalToggleHdl));
m_pLB_JoinType->SetSelectHdl(LINK(this,DlgQryJoin,LBChangeHdl));
m_pCBNatural->SetToggleHdl(LINK(this,DlgQryJoin,NaturalToggleHdl));
if ( static_cast<OQueryTableView*>(pParent)->getDesignView()->getController().isReadOnly() )
{
m_pJoinControl->aLB_JoinType.Disable();
m_pJoinControl->m_aCBNatural.Disable();
m_pLB_JoinType->Disable();
m_pCBNatural->Disable();
m_pTableControl->Disable();
}
else
{
const sal_uInt16 nCount = m_pJoinControl->aLB_JoinType.GetEntryCount();
const sal_uInt16 nCount = m_pLB_JoinType->GetEntryCount();
for (sal_uInt16 i = 0; i < nCount; ++i)
{
const sal_IntPtr nJoinTyp = reinterpret_cast<sal_IntPtr>(m_pJoinControl->aLB_JoinType.GetEntryData(i));
const sal_IntPtr nJoinTyp = reinterpret_cast<sal_IntPtr>(m_pLB_JoinType->GetEntryData(i));
if ( !bSupportFullJoin && nJoinTyp == ID_FULL_JOIN )
m_pJoinControl->aLB_JoinType.RemoveEntry(i);
m_pLB_JoinType->RemoveEntry(i);
else if ( !bSupportOuterJoin && (nJoinTyp == ID_LEFT_JOIN || nJoinTyp == ID_RIGHT_JOIN) )
m_pJoinControl->aLB_JoinType.RemoveEntry(i);
m_pLB_JoinType->RemoveEntry(i);
}
m_pTableControl->NotifyCellChange();
m_pTableControl->enableRelation(!static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural() && eJoinType != CROSS_JOIN );
}
FreeResource();
}
DlgQryJoin::~DlgQryJoin()
{
delete m_pJoinControl;
delete m_pTableControl;
}
IMPL_LINK( DlgQryJoin, LBChangeHdl, ListBox*, /*pListBox*/ )
{
if (m_pJoinControl->aLB_JoinType.GetSelectEntryPos() == m_pJoinControl->aLB_JoinType.GetSavedValue() )
if (m_pLB_JoinType->GetSelectEntryPos() == m_pLB_JoinType->GetSavedValue() )
return 1;
m_pJoinControl->aLB_JoinType.SaveValue();
aML_HelpText.SetText(OUString());
m_pLB_JoinType->SaveValue();
m_pML_HelpText->SetText(OUString());
m_pTableControl->enableRelation(true);
......@@ -179,8 +146,8 @@ IMPL_LINK( DlgQryJoin, LBChangeHdl, ListBox*, /*pListBox*/ )
OUString sSecondWinName = m_pConnData->getReferencedTable()->GetWinName();
const EJoinType eOldJoinType = eJoinType;
sal_uInt16 nResId = 0;
const sal_uInt16 nPos = m_pJoinControl->aLB_JoinType.GetSelectEntryPos();
const sal_IntPtr nJoinType = reinterpret_cast<sal_IntPtr>(m_pJoinControl->aLB_JoinType.GetEntryData(nPos));
const sal_uInt16 nPos = m_pLB_JoinType->GetSelectEntryPos();
const sal_IntPtr nJoinType = reinterpret_cast<sal_IntPtr>(m_pLB_JoinType->GetEntryData(nPos));
sal_Bool bAddHint = sal_True;
switch ( nJoinType )
{
......@@ -214,16 +181,16 @@ IMPL_LINK( DlgQryJoin, LBChangeHdl, ListBox*, /*pListBox*/ )
m_pConnData->ResetConnLines();
m_pTableControl->lateInit();
m_pJoinControl->m_aCBNatural.Check(false);
m_pCBNatural->Check(false);
m_pTableControl->enableRelation(false);
OUString sEmpty;
m_pConnData->AppendConnLine(sEmpty,sEmpty);
aPB_OK.Enable(true);
m_pPB_OK->Enable(true);
}
break;
}
m_pJoinControl->m_aCBNatural.Enable(eJoinType != CROSS_JOIN);
m_pCBNatural->Enable(eJoinType != CROSS_JOIN);
if ( eJoinType != eOldJoinType && eOldJoinType == CROSS_JOIN )
{
......@@ -232,7 +199,7 @@ IMPL_LINK( DlgQryJoin, LBChangeHdl, ListBox*, /*pListBox*/ )
if ( eJoinType != CROSS_JOIN )
{
m_pTableControl->NotifyCellChange();
NaturalToggleHdl(&m_pJoinControl->m_aCBNatural);
NaturalToggleHdl(m_pCBNatural);
}
m_pTableControl->Invalidate();
......@@ -249,7 +216,7 @@ IMPL_LINK( DlgQryJoin, LBChangeHdl, ListBox*, /*pListBox*/ )
sHelpText += ModuleRes( STR_JOIN_TYPE_HINT );
}
aML_HelpText.SetText( sHelpText );
m_pML_HelpText->SetText( sHelpText );
return 1;
}
......@@ -265,7 +232,7 @@ IMPL_LINK( DlgQryJoin, OKClickHdl, Button*, /*pButton*/ )
IMPL_LINK( DlgQryJoin, NaturalToggleHdl, CheckBox*, /*pButton*/ )
{
sal_Bool bChecked = m_pJoinControl->m_aCBNatural.IsChecked();
sal_Bool bChecked = m_pCBNatural->IsChecked();
static_cast<OQueryTableConnectionData*>(m_pConnData.get())->setNatural(bChecked);
m_pTableControl->enableRelation(!bChecked);
if ( bChecked )
......@@ -301,20 +268,20 @@ TTableConnectionData::value_type DlgQryJoin::getConnectionData() const
void DlgQryJoin::setValid(sal_Bool _bValid)
{
aPB_OK.Enable(_bValid || eJoinType == CROSS_JOIN );
m_pPB_OK->Enable(_bValid || eJoinType == CROSS_JOIN );
}
void DlgQryJoin::notifyConnectionChange( )
{
setJoinType( static_cast<OQueryTableConnectionData*>(m_pConnData.get())->GetJoinType() );
m_pJoinControl->m_aCBNatural.Check(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
NaturalToggleHdl(&m_pJoinControl->m_aCBNatural);
m_pCBNatural->Check(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
NaturalToggleHdl(m_pCBNatural);
}
void DlgQryJoin::setJoinType(EJoinType _eNewJoinType)
{
eJoinType = _eNewJoinType;
m_pJoinControl->m_aCBNatural.Enable(eJoinType != CROSS_JOIN);
m_pCBNatural->Enable(eJoinType != CROSS_JOIN);
sal_IntPtr nJoinType = 0;
switch ( eJoinType )
......@@ -337,17 +304,17 @@ void DlgQryJoin::setJoinType(EJoinType _eNewJoinType)
break;
}
const sal_uInt16 nCount = m_pJoinControl->aLB_JoinType.GetEntryCount();
const sal_uInt16 nCount = m_pLB_JoinType->GetEntryCount();
for (sal_uInt16 i = 0; i < nCount; ++i)
{
if ( nJoinType == reinterpret_cast<sal_IntPtr>(m_pJoinControl->aLB_JoinType.GetEntryData(i)) )
if ( nJoinType == reinterpret_cast<sal_IntPtr>(m_pLB_JoinType->GetEntryData(i)) )
{
m_pJoinControl->aLB_JoinType.SelectEntryPos(i);
m_pLB_JoinType->SelectEntryPos(i);
break;
}
}
LBChangeHdl(&m_pJoinControl->aLB_JoinType);
LBChangeHdl(m_pLB_JoinType);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -35,17 +35,15 @@ namespace dbaui
{
class OTableListBoxControl;
class OQueryTableView;
class OJoinControl;
class DlgQryJoin : public ModalDialog
,public IRelationControlInterface
{
protected:
FixedText aML_HelpText;
OKButton aPB_OK;
CancelButton aPB_CANCEL;
HelpButton aPB_HELP;
FixedText* m_pML_HelpText;
OKButton* m_pPB_OK;
ListBox* m_pLB_JoinType;
CheckBox* m_pCBNatural;
OJoinControl* m_pJoinControl;
OTableListBoxControl* m_pTableControl;
OJoinTableView::OTableWindowMap* m_pTableMap;
OQueryTableView* m_pTableView;
......
......@@ -20,138 +20,6 @@
#include "querydlg.hrc"
#include "dbaccess_helpid.hrc"
ModalDialog DLG_QRY_JOIN
{
OutputSize = TRUE ;
SVLook = TRUE ;
HelpId = HID_DLG_QRY_JOIN ;
Size = MAP_APPFONT ( 265, 219 ) ;
Moveable = TRUE ;
Closeable = TRUE ;
Window WND_JOIN_CONTROL
{
Pos = MAP_APPFONT( 0, 0 );
Size = MAP_APPFONT( 203, 44 );
DialogControl = TRUE;
HelpId = HID_DLG_QRY_JOIN_CONTROL ;
FixedLine FL_JOIN
{
Pos = MAP_APPFONT ( 6 , 3 ) ;
Size = MAP_APPFONT ( 191 , 8 ) ;
Text [ en-US ] = "Options";
};
FixedText FT_LISTBOXTITLE
{
Pos = MAP_APPFONT ( 12 , 16 ) ;
Size = MAP_APPFONT ( 89 , 8 ) ;
Text [ en-US ] = "~Type";
};
ListBox LB_JOINTYPE
{
Pos = MAP_APPFONT ( 101 , 15 ) ;
Size = MAP_APPFONT ( 90 , 60 ) ;
HelpId = HID_DLG_QRY_JOINTYPE ;
DropDown = TRUE;
DDExtraWidth = TRUE;
StringList [ en-US ] =
{
< "Inner join" ; ID_INNER_JOIN; > ;
< "Left join" ; ID_LEFT_JOIN; > ;
< "Right join" ; ID_RIGHT_JOIN; > ;
< "Full (outer) join" ; ID_FULL_JOIN; > ;
< "Cross join" ; ID_CROSS_JOIN; > ;
};
};
CheckBox CB_NATURAL
{
HelpID = "dbaccess:CheckBox:DLG_QRY_JOIN:CB_NATURAL";
Pos = MAP_APPFONT ( 101 , 31 ) ;
Size = MAP_APPFONT ( 89 , 8 ) ;
Text [ en-US ] = "Natural";
};
};
Window WND_CONTROL
{
Pos = MAP_APPFONT( 0, 0 );
Size = MAP_APPFONT( 203, 153 );
DialogControl = TRUE;
HelpId = HID_DLG_QRY_WINDOW_CONTROL ;
FixedLine FL_INVOLVED_TABLES
{
Pos = MAP_APPFONT ( 6 , 3 ) ;
Size = MAP_APPFONT ( 191 , 8 ) ;
Text [ en-US ] = "Tables involved";
};
ListBox LB_LEFT_TABLE
{
Border = TRUE;
Pos = MAP_APPFONT( 12, 14 );
Size = MAP_APPFONT( 87, 60 );
HelpId = HID_DLG_QRY_LEFT_TABLE ;
DropDown = TRUE;
TabStop = TRUE;
};
ListBox LB_RIGHT_TABLE
{
Border = TRUE;
Pos = MAP_APPFONT( 104, 14 );
Size = MAP_APPFONT( 87, 60 );
HelpId = HID_DLG_QRY_RIGHT_TABLE ;
DropDown = TRUE;
TabStop = TRUE;
};
FixedLine FL_INVOLVED_FIELDS
{
Pos = MAP_APPFONT ( 6 , 29 ) ;
Size = MAP_APPFONT ( 191 , 8 ) ;
Text [ en-US ] = "Fields involved";
};
};
FixedText ML_HELPTEXT
{
Pos = MAP_APPFONT ( 12 , 159 ) ;
Size = MAP_APPFONT ( 179 , 49 ) ;
UniqueId = HID_DLG_QRY_HELPTEXT ;
SVLook = TRUE;
WordBreak = TRUE;
};
OKButton PB_OK
{
Pos = MAP_APPFONT ( 206 , 6 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
DefButton = TRUE ;
};
CancelButton PB_CANCEL
{
Pos = MAP_APPFONT ( 206 , 23 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
};
HelpButton PB_HELP
{
Pos = MAP_APPFONT ( 206 , 43 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
TabStop = TRUE ;
};
Text [ en-US ] = "Join Properties";
};
String STR_JOIN_TYPE_HINT
{
Text [ en-US ] = "Please note that some databases may not support this join type.";
......
This diff is collapsed.
......@@ -620,6 +620,10 @@
generic-name="Open Document Button" parent="GtkButton"
icon-name="widget-gtk-button"/>
<glade-widget-class title="Relation Control" name="dbulo-ORelationControl"
generic-name="Relation Control" parent="GtkTreeView"
icon-name="widget-gtk-treeview"/>
<glade-widget-class title="Sidebar ToolBox" name="sfxlo-SidebarToolBox"
generic-name="Sidebar ToolBox" parent="GtkToolbar"
icon-name="widget-gtk-toolbar"/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment