dba33f: #i20615# new feature to allow server side column descrriptions to be visible and changeable in the table designer.

This commit is contained in:
Ocke Janssen [oj]
2010-01-13 08:44:34 +01:00
parent fc56087839
commit f950279763
19 changed files with 197 additions and 67 deletions
+1 -1
View File
@@ -330,7 +330,7 @@
#define HID_APP_VIEW_PREVIEW_CB (HID_DBACCESS_START + 276)
#define HID_APP_VIEW_PREVIEW_1 (HID_DBACCESS_START + 277)
#define HID_APP_VIEW_PREVIEW_2 (HID_DBACCESS_START + 278)
// free
#define HID_TABDESIGN_HELPTEXT (HID_DBACCESS_START + 279)
#define UID_APP_VIEW_HORZ_SPLIT (HID_DBACCESS_START + 280)
#define UID_APP_VIEW_PREVIEW_1 (HID_DBACCESS_START + 281)
#define HID_APP_VIEW_PREVIEW_3 (HID_DBACCESS_START + 282)
@@ -1167,6 +1167,7 @@ const AsciiPropertyValue* ODatabaseModelImpl::getDefaultDataSourceSettings()
AsciiPropertyValue( "ImplicitCatalogRestriction", ::cppu::UnoType< ::rtl::OUString >::get() ),
AsciiPropertyValue( "ImplicitSchemaRestriction", ::cppu::UnoType< ::rtl::OUString >::get() ),
AsciiPropertyValue( "PrimaryKeySupport", ::cppu::UnoType< sal_Bool >::get() ),
AsciiPropertyValue( "ShowColumnDescription", makeAny( (sal_Bool)sal_False ) ),
// known SDB level settings
AsciiPropertyValue( "NoNameLengthLimit", makeAny( (sal_Bool)sal_False ) ),
AsciiPropertyValue( "AppendTableAliasName", makeAny( (sal_Bool)sal_False ) ),
+6
View File
@@ -281,6 +281,12 @@ sal_Bool ODsnTypeCollection::supportsTableCreation(const ::rtl::OUString& _sURL)
return aFeatures.getOrDefault("SupportsTableCreation",sal_False);
}
// -----------------------------------------------------------------------------
sal_Bool ODsnTypeCollection::supportsColumnDescription(const ::rtl::OUString& _sURL) const
{
const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getMetaData(_sURL);
return aFeatures.getOrDefault("SupportsColumnDescription",sal_False);
}
// -----------------------------------------------------------------------------
sal_Bool ODsnTypeCollection::supportsBrowsing(const ::rtl::OUString& _sURL) const
{
const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getMetaData(_sURL);
+3
View File
@@ -162,6 +162,9 @@ public:
/// check if the given data source allows creation of tables
sal_Bool supportsTableCreation(const ::rtl::OUString& _sURL) const;
/// check if the given data source allows to show column description.
sal_Bool supportsColumnDescription(const ::rtl::OUString& _sURL) const;
// check if a Browse button may be shown to insert connection url
sal_Bool supportsBrowsing(const ::rtl::OUString& _sURL) const;
+6 -2
View File
@@ -681,8 +681,12 @@ sal_Bool SbaTableQueryBrowser::InitializeGridModel(const Reference< ::com::sun::
Any aDescription;
if ( xColPSI->hasPropertyByName( PROPERTY_HELPTEXT ) )
aDescription = xColumn->getPropertyValue( PROPERTY_HELPTEXT );
if ( !aDescription.hasValue() )
aDescription <<= ::rtl::OUString();
::rtl::OUString sTemp;
aDescription >>= sTemp;
if ( !sTemp.getLength() )
xColumn->getPropertyValue( PROPERTY_DESCRIPTION ) >>= sTemp;
aDescription <<= sTemp;
aInitialValues.push_back( NamedValue( PROPERTY_HELPTEXT, aDescription ) );
// ... horizontal justify
+1 -1
View File
@@ -945,7 +945,7 @@ sal_Bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
{
::rtl::OUString sEmbeddedURL = m_pCollection->getEmbeddedDatabase();
::connectivity::DriversConfig aDriverConfig(getORB());
if ( !aDriverConfig.getDriverFactoryName(sEmbeddedURL).getLength() || m_pImpl->getDriver(sEmbeddedURL).is() )
if ( !aDriverConfig.getDriverFactoryName(sEmbeddedURL).getLength() || !m_pImpl->getDriver(sEmbeddedURL).is() )
sEmbeddedURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:dbase:"));
return sEmbeddedURL;
+15 -14
View File
@@ -50,22 +50,23 @@
// die Spalten einer Feld-Beschreibung einer Tabelle
#define FIELD_NAME 1
#define FIELD_TYPE 2
#define FIELD_DESCR 3
#define HELP_TEXT 3
#define COLUMN_DESCRIPTION 4
#define FIELD_FIRST_VIRTUAL_COLUMN 4
#define FIELD_FIRST_VIRTUAL_COLUMN 5
#define FIELD_PROPERTY_REQUIRED 4
#define FIELD_PROPERTY_NUMTYPE 5
#define FIELD_PROPERTY_AUTOINC 6
#define FIELD_PROPERTY_DEFAULT 7
#define FIELD_PROPERTY_TEXTLEN 8
#define FIELD_PROPERTY_LENGTH 9
#define FIELD_PROPERTY_SCALE 10
#define FIELD_PROPERTY_BOOL_DEFAULT 11
#define FIELD_PROPERTY_FORMAT 12
#define FIELD_PRPOERTY_COLUMNNAME 13
#define FIELD_PRPOERTY_TYPE 14
#define FIELD_PRPOERTY_AUTOINCREMENT 15
#define FIELD_PROPERTY_REQUIRED 5
#define FIELD_PROPERTY_NUMTYPE 6
#define FIELD_PROPERTY_AUTOINC 7
#define FIELD_PROPERTY_DEFAULT 8
#define FIELD_PROPERTY_TEXTLEN 9
#define FIELD_PROPERTY_LENGTH 10
#define FIELD_PROPERTY_SCALE 11
#define FIELD_PROPERTY_BOOL_DEFAULT 12
#define FIELD_PROPERTY_FORMAT 13
#define FIELD_PRPOERTY_COLUMNNAME 14
#define FIELD_PRPOERTY_TYPE 15
#define FIELD_PRPOERTY_AUTOINCREMENT 16
class FixedText;
class PushButton;
@@ -67,6 +67,7 @@ namespace dbaui
::rtl::OUString m_sName;
::rtl::OUString m_sTypeName;
::rtl::OUString m_sDescription;
::rtl::OUString m_sHelpText;
::rtl::OUString m_sAutoIncrementValue;
sal_Int32 m_nType; // only used when m_pType is null
@@ -89,6 +90,7 @@ namespace dbaui
void SetName(const ::rtl::OUString& _rName);
void SetDescription(const ::rtl::OUString& _rDescription);
void SetHelpText(const ::rtl::OUString& _sHelptext);
void SetDefaultValue(const ::com::sun::star::uno::Any& _rDefaultValue);
void SetControlDefault(const ::com::sun::star::uno::Any& _rControlDefault);
void SetAutoIncrementValue(const ::rtl::OUString& _sAutoIncValue);
@@ -113,6 +115,7 @@ namespace dbaui
::rtl::OUString GetName() const;
::rtl::OUString GetDescription() const;
::rtl::OUString GetHelpText() const;
::com::sun::star::uno::Any GetControlDefault() const;
::rtl::OUString GetAutoIncrementValue() const;
sal_Int32 GetType() const;
+2 -1
View File
@@ -44,7 +44,7 @@
#define STR_TAB_FIELD_NAME RID_STR_TBL_START + 7
#define STR_TAB_FIELD_DATATYPE RID_STR_TBL_START + 8
#define STR_TAB_FIELD_LENGTH RID_STR_TBL_START + 9
#define STR_TAB_FIELD_DESCR RID_STR_TBL_START + 10
#define STR_TAB_HELP_TEXT RID_STR_TBL_START + 10
#define STR_TAB_FIELD_NULLABLE RID_STR_TBL_START + 11
#define STR_FIELD_AUTOINCREMENT RID_STR_TBL_START + 12
#define STR_TAB_PROPERTIES RID_STR_TBL_START + 13
@@ -89,6 +89,7 @@
#define STR_CHANGE_COLUMN_ATTRIBUTE RID_STR_TBL_START + 52
#define STR_TABLEDESIGN_SAVE_ERROR RID_STR_TBL_START + 53
#define STR_TABLEDESIGN_COULD_NOT_DROP_COL RID_STR_TBL_START + 54
#define STR_COLUMN_DESCRIPTION RID_STR_TBL_START + 55
// please adjust checking before insert new strings
+1
View File
@@ -892,6 +892,7 @@ void setColumnProperties(const Reference<XPropertySet>& _rxColumn,const OFieldDe
_rxColumn->setPropertyValue(PROPERTY_SCALE,makeAny(_pFieldDesc->GetScale()));
_rxColumn->setPropertyValue(PROPERTY_ISNULLABLE, makeAny(_pFieldDesc->GetIsNullable()));
_rxColumn->setPropertyValue(PROPERTY_ISAUTOINCREMENT,::cppu::bool2any(_pFieldDesc->IsAutoIncrement()));
_rxColumn->setPropertyValue(PROPERTY_DESCRIPTION,makeAny(_pFieldDesc->GetDescription()));
if ( _rxColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_ISCURRENCY) && _pFieldDesc->IsCurrency() )
_rxColumn->setPropertyValue(PROPERTY_ISCURRENCY,::cppu::bool2any(_pFieldDesc->IsCurrency()));
// set autoincrement value when available
+1 -1
View File
@@ -371,7 +371,7 @@ void NamedTableCopySource::impl_ensureColumnInfo_throw()
OFieldDescription aDesc;
aDesc.SetName( xStatementMeta->getColumnName( i ) );
aDesc.SetDescription( xStatementMeta->getColumnLabel( i ) );
aDesc.SetHelpText( xStatementMeta->getColumnLabel( i ) );
aDesc.SetTypeValue( xStatementMeta->getColumnType( i ) );
aDesc.SetTypeName( xStatementMeta->getColumnTypeName( i ) );
aDesc.SetPrecision( xStatementMeta->getPrecision( i ) );
@@ -3157,6 +3157,7 @@ OSQLParseNode* OQueryDesignView::getPredicateTreeFromEntry(OTableFieldDescRef pE
Reference<XDatabaseMetaData> xMeta = xConnection->getMetaData();
parse::OParseColumn* pColumn = new parse::OParseColumn( pEntry->GetField(),
::rtl::OUString(),
::rtl::OUString(),
::rtl::OUString(),
ColumnValue::NULLABLE_UNKNOWN,
@@ -157,6 +157,8 @@ OFieldDescription::OFieldDescription(const Reference< XPropertySet >& xAffectedC
SetName(::comphelper::getString(xAffectedCol->getPropertyValue(PROPERTY_NAME)));
if(xPropSetInfo->hasPropertyByName(PROPERTY_DESCRIPTION))
SetDescription(::comphelper::getString(xAffectedCol->getPropertyValue(PROPERTY_DESCRIPTION)));
if(xPropSetInfo->hasPropertyByName(PROPERTY_HELPTEXT))
SetHelpText(::comphelper::getString(xAffectedCol->getPropertyValue(PROPERTY_HELPTEXT)));
if(xPropSetInfo->hasPropertyByName(PROPERTY_DEFAULTVALUE))
SetDefaultValue( xAffectedCol->getPropertyValue(PROPERTY_DEFAULTVALUE) );
@@ -288,6 +290,21 @@ void OFieldDescription::SetName(const ::rtl::OUString& _rName)
}
}
// -----------------------------------------------------------------------------
void OFieldDescription::SetHelpText(const ::rtl::OUString& _sHelpText)
{
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
m_xDest->setPropertyValue(PROPERTY_HELPTEXT,makeAny(_sHelpText));
else
m_sHelpText = _sHelpText;
}
catch(const Exception& )
{
DBG_UNHANDLED_EXCEPTION();
}
}
// -----------------------------------------------------------------------------
void OFieldDescription::SetDescription(const ::rtl::OUString& _rDescription)
{
try
@@ -504,6 +521,14 @@ void OFieldDescription::SetCurrency(sal_Bool _bIsCurrency)
return m_sDescription;
}
// -----------------------------------------------------------------------------
::rtl::OUString OFieldDescription::GetHelpText() const
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
return ::comphelper::getString(m_xDest->getPropertyValue(PROPERTY_HELPTEXT));
else
return m_sHelpText;
}
// -----------------------------------------------------------------------------
::com::sun::star::uno::Any OFieldDescription::GetControlDefault() const
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_CONTROLDEFAULT) )
@@ -657,8 +682,8 @@ void OFieldDescription::copyColumnSettingsTo(const Reference< XPropertySet >& _r
_rxColumn->setPropertyValue(PROPERTY_FORMATKEY,makeAny(GetFormatKey()));
if ( GetHorJustify() != SVX_HOR_JUSTIFY_STANDARD && xInfo->hasPropertyByName(PROPERTY_ALIGN) )
_rxColumn->setPropertyValue(PROPERTY_ALIGN,makeAny(dbaui::mapTextAllign(GetHorJustify())));
if ( GetDescription().getLength() && xInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
_rxColumn->setPropertyValue(PROPERTY_HELPTEXT,makeAny(GetDescription()));
if ( GetHelpText().getLength() && xInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
_rxColumn->setPropertyValue(PROPERTY_HELPTEXT,makeAny(GetHelpText()));
if ( GetControlDefault().hasValue() && xInfo->hasPropertyByName(PROPERTY_CONTROLDEFAULT) )
_rxColumn->setPropertyValue(PROPERTY_CONTROLDEFAULT,GetControlDefault());
+107 -39
View File
@@ -108,6 +108,7 @@
#ifndef DBAUI_TABLEFIELDCONTROL_HXX
#include "TableFieldControl.hxx"
#endif
#include "dsntypes.hxx"
using namespace ::dbaui;
using namespace ::comphelper;
@@ -202,13 +203,21 @@ void OTableEditorCtrl::Init()
//////////////////////////////////////////////////////////////////////
// Spalten einfuegen
String aColumnName( ModuleRes(STR_TAB_FIELD_COLUMN_NAME) );
InsertDataColumn( 1, aColumnName, FIELDNAME_WIDTH );
InsertDataColumn( FIELD_NAME, aColumnName, FIELDNAME_WIDTH );
aColumnName = String( ModuleRes(STR_TAB_FIELD_COLUMN_DATATYPE) );
InsertDataColumn( 2, aColumnName, FIELDTYPE_WIDTH );
InsertDataColumn( FIELD_TYPE, aColumnName, FIELDTYPE_WIDTH );
aColumnName = String( ModuleRes(STR_TAB_FIELD_DESCR) );
InsertDataColumn( 3, aColumnName, FIELDDESCR_WIDTH );
::dbaccess::ODsnTypeCollection aDsnTypes(GetView()->getController().getORB());
sal_Bool bShowColumnDescription = aDsnTypes.supportsColumnDescription(::comphelper::getString(GetView()->getController().getDataSource()->getPropertyValue(PROPERTY_URL)));
aColumnName = String( ModuleRes(STR_TAB_HELP_TEXT) );
InsertDataColumn( HELP_TEXT, aColumnName, bShowColumnDescription ? FIELDTYPE_WIDTH : FIELDDESCR_WIDTH );
if ( bShowColumnDescription )
{
aColumnName = String( ModuleRes(STR_COLUMN_DESCRIPTION) );
InsertDataColumn( COLUMN_DESCRIPTION, aColumnName, FIELDTYPE_WIDTH );
}
InitCellController();
@@ -232,6 +241,7 @@ OTableEditorCtrl::OTableEditorCtrl(Window* pWindow)
:OTableRowView(pWindow)
,pNameCell(NULL)
,pTypeCell(NULL)
,pHelpTextCell(NULL)
,pDescrCell(NULL)
,pDescrWin(NULL)
,nIndexEvent(0)
@@ -345,12 +355,16 @@ void OTableEditorCtrl::InitCellController()
pDescrCell = new Edit( &GetDataWindow(), WB_LEFT );
pDescrCell->SetMaxTextLen( MAX_DESCR_LEN );
pHelpTextCell = new Edit( &GetDataWindow(), WB_LEFT );
pHelpTextCell->SetMaxTextLen( MAX_DESCR_LEN );
pNameCell->SetHelpId(HID_TABDESIGN_NAMECELL);
pTypeCell->SetHelpId(HID_TABDESIGN_TYPECELL);
pDescrCell->SetHelpId(HID_TABDESIGN_COMMENTCELL);
pHelpTextCell->SetHelpId(HID_TABDESIGN_HELPTEXT);
Size aHeight;
const Control* pControls[] = { pTypeCell,pDescrCell,pNameCell};
const Control* pControls[] = { pTypeCell,pDescrCell,pNameCell,pHelpTextCell};
for(sal_Size i= 0; i < sizeof(pControls)/sizeof(pControls[0]);++i)
{
const Size aTemp( pControls[i]->GetOptimalSize(WINDOWSIZE_PREFERRED) );
@@ -368,6 +382,7 @@ void OTableEditorCtrl::ClearModified()
DBG_CHKTHIS(OTableEditorCtrl,NULL);
pNameCell->ClearModifyFlag();
pDescrCell->ClearModifyFlag();
pHelpTextCell->ClearModifyFlag();
pTypeCell->SaveValue();
}
@@ -399,6 +414,7 @@ OTableEditorCtrl::~OTableEditorCtrl()
delete pNameCell;
delete pTypeCell;
delete pDescrCell;
delete pHelpTextCell;
}
//------------------------------------------------------------------------------
@@ -474,10 +490,16 @@ CellController* OTableEditorCtrl::GetController(long nRow, sal_uInt16 nColumnId)
if (pActFieldDescr && (pActFieldDescr->GetName().getLength() != 0))
return new ListBoxCellController( pTypeCell );
else return NULL;
case FIELD_DESCR:
case HELP_TEXT:
if (pActFieldDescr && (pActFieldDescr->GetName().getLength() != 0))
return new EditCellController( pHelpTextCell );
else
return NULL;
case COLUMN_DESCRIPTION:
if (pActFieldDescr && (pActFieldDescr->GetName().getLength() != 0))
return new EditCellController( pDescrCell );
else return NULL;
else
return NULL;
default:
return NULL;
}
@@ -519,7 +541,13 @@ void OTableEditorCtrl::InitController(CellControllerRef&, long nRow, sal_uInt16
}
break;
case FIELD_DESCR:
case HELP_TEXT:
if( pActFieldDescr )
aInitString = pActFieldDescr->GetHelpText();
pHelpTextCell->SetText( aInitString );
pHelpTextCell->SaveValue();
break;
case COLUMN_DESCRIPTION:
if( pActFieldDescr )
aInitString = pActFieldDescr->GetDescription();
pDescrCell->SetText( aInitString );
@@ -579,7 +607,8 @@ void OTableEditorCtrl::DisplayData(long nRow, sal_Bool bGrabFocus)
CellControllerRef aTemp;
InitController(aTemp, nRow, FIELD_NAME);
InitController(aTemp, nRow, FIELD_TYPE);
InitController(aTemp, nRow, FIELD_DESCR);
InitController(aTemp, nRow, COLUMN_DESCRIPTION);
InitController(aTemp, nRow, HELP_TEXT);
GoToRow(nRow);
// das Description-Window aktualisieren
@@ -604,7 +633,8 @@ void OTableEditorCtrl::CursorMoved()
CellControllerRef aTemp;
InitController(aTemp,m_nDataPos,FIELD_NAME);
InitController(aTemp,m_nDataPos,FIELD_TYPE);
InitController(aTemp,m_nDataPos,FIELD_DESCR);
InitController(aTemp,m_nDataPos,COLUMN_DESCRIPTION);
InitController(aTemp,m_nDataPos,HELP_TEXT);
}
OTableRowView::CursorMoved();
@@ -678,7 +708,20 @@ sal_Bool OTableEditorCtrl::SaveData(long nRow, sal_uInt16 nColId)
//////////////////////////////////////////////////////////////
// Speichern Inhalt DescrCell
case FIELD_DESCR:
case HELP_TEXT:
{
//////////////////////////////////////////////////////////////
// Wenn aktuelle Feldbeschreibung NULL, Default setzen
if( !pActFieldDescr )
{
pHelpTextCell->SetText(String());
pHelpTextCell->ClearModifyFlag();
}
else
pActFieldDescr->SetHelpText( pHelpTextCell->GetText() );
break;
}
case COLUMN_DESCRIPTION:
{
//////////////////////////////////////////////////////////////
// Wenn aktuelle Feldbeschreibung NULL, Default setzen
@@ -814,7 +857,8 @@ void OTableEditorCtrl::CellModified( long nRow, sal_uInt16 nColId )
{
case FIELD_NAME: sActionDescription = String( ModuleRes( STR_CHANGE_COLUMN_NAME ) ); break;
case FIELD_TYPE: sActionDescription = String( ModuleRes( STR_CHANGE_COLUMN_TYPE ) ); break;
case FIELD_DESCR: sActionDescription = String( ModuleRes( STR_CHANGE_COLUMN_DESCRIPTION ) ); break;
case HELP_TEXT:
case COLUMN_DESCRIPTION: sActionDescription = String( ModuleRes( STR_CHANGE_COLUMN_DESCRIPTION ) ); break;
default: sActionDescription = String( ModuleRes( STR_CHANGE_COLUMN_ATTRIBUTE ) ); break;
}
@@ -1179,7 +1223,7 @@ void OTableEditorCtrl::SetCellData( long nRow, sal_uInt16 nColId, const ::com::s
OSL_ENSURE(sal_False, "OTableEditorCtrl::SetCellData: invalid column!");
break;
case FIELD_DESCR:
case COLUMN_DESCRIPTION:
pFieldDescr->SetDescription( sValue = ::comphelper::getString(_rNewData) );
break;
@@ -1268,9 +1312,12 @@ Any OTableEditorCtrl::GetCellData( long nRow, sal_uInt16 nColId )
sValue = pFieldDescr->getTypeInfo()->aUIName;
break;
case FIELD_DESCR:
case COLUMN_DESCRIPTION:
sValue = pFieldDescr->GetDescription();
break;
case HELP_TEXT:
sValue = pFieldDescr->GetHelpText();
break;
case FIELD_PROPERTY_DEFAULT:
return pFieldDescr->GetControlDefault();
@@ -1350,16 +1397,24 @@ sal_Bool OTableEditorCtrl::IsCutAllowed( long nRow )
if(bIsCutAllowed)
{
if(m_eChildFocus == DESCRIPTION)
bIsCutAllowed = pDescrCell->GetSelected().Len() != 0;
else if(m_eChildFocus == NAME)
bIsCutAllowed = pNameCell->GetSelected().Len() != 0;
else if(m_eChildFocus == ROW)
// only rows are selected for cutting so we look if all rows are valid
// wwe don't waant to copy empty rows here
bIsCutAllowed = IsCopyAllowed(nRow);
else
bIsCutAllowed = sal_False;
switch(m_eChildFocus)
{
case DESCRIPTION:
bIsCutAllowed = pDescrCell->GetSelected().Len() != 0;
break;
case HELPTEXT:
bIsCutAllowed = pHelpTextCell->GetSelected().Len() != 0;
break;
case NAME:
bIsCutAllowed = pNameCell->GetSelected().Len() != 0;
break;
case ROW:
bIsCutAllowed = IsCopyAllowed(nRow);
break;
default:
bIsCutAllowed = sal_False;
break;
}
}
// Reference<XPropertySet> xTable = GetView()->getController().getTable();
@@ -1375,8 +1430,10 @@ sal_Bool OTableEditorCtrl::IsCopyAllowed( long /*nRow*/ )
{
DBG_CHKTHIS(OTableEditorCtrl,NULL);
sal_Bool bIsCopyAllowed = sal_False;
if(m_eChildFocus == DESCRIPTION)
if(m_eChildFocus == DESCRIPTION )
bIsCopyAllowed = pDescrCell->GetSelected().Len() != 0;
else if(HELPTEXT == m_eChildFocus )
bIsCopyAllowed = pHelpTextCell->GetSelected().Len() != 0;
else if(m_eChildFocus == NAME)
bIsCopyAllowed = pNameCell->GetSelected().Len() != 0;
else if(m_eChildFocus == ROW)
@@ -1438,9 +1495,18 @@ void OTableEditorCtrl::cut()
{
if(GetView()->getController().isAlterAllowed())
{
SaveData(-1,FIELD_DESCR);
SaveData(-1,COLUMN_DESCRIPTION);
pDescrCell->Cut();
CellModified(-1,FIELD_DESCR);
CellModified(-1,COLUMN_DESCRIPTION);
}
}
else if(HELPTEXT == m_eChildFocus )
{
if(GetView()->getController().isAlterAllowed())
{
SaveData(-1,HELP_TEXT);
pHelpTextCell->Cut();
CellModified(-1,HELP_TEXT);
}
}
else if(m_eChildFocus == ROW)
@@ -1458,7 +1524,9 @@ void OTableEditorCtrl::copy()
OTableRowView::copy();
else if(m_eChildFocus == NAME)
pNameCell->Copy();
else if(m_eChildFocus == DESCRIPTION)
else if(HELPTEXT == m_eChildFocus )
pHelpTextCell->Copy();
else if(m_eChildFocus == DESCRIPTION )
pDescrCell->Copy();
}
@@ -1480,6 +1548,14 @@ void OTableEditorCtrl::paste()
CellModified();
}
}
else if(HELPTEXT == m_eChildFocus )
{
if(GetView()->getController().isAlterAllowed())
{
pHelpTextCell->Paste();
CellModified();
}
}
else if(m_eChildFocus == DESCRIPTION)
{
if(GetView()->getController().isAlterAllowed())
@@ -1496,16 +1572,6 @@ sal_Bool OTableEditorCtrl::IsDeleteAllowed( long /*nRow*/ )
DBG_CHKTHIS(OTableEditorCtrl,NULL);
return GetSelectRowCount() != 0 && GetView()->getController().isDropAllowed();
// Reference<XPropertySet> xTable = GetView()->getController().getTable();
// if( !GetSelectRowCount() || (xTable.is() && ::comphelper::getString(xTable->getPropertyValue(PROPERTY_TYPE)) == ::rtl::OUString::createFromAscii("VIEW")))
// return sal_False;
//
// // Wenn nur Felder hinzugefuegt werden duerfen, Delete nur auf neuen Feldern
// Reference<XConnection> xCon = GetView()->getController().getConnection();
// Reference< XDatabaseMetaData> xMetaData = xCon.is() ? xCon->getMetaData() : NULL;
//
// return !(xTable.is() && xTable->getPropertySetInfo()->getPropertyByName(PROPERTY_NAME).Attributes & PropertyAttribute::READONLY) ||
// ( xMetaData.is() && xMetaData->supportsAlterTableWithAddColumn() && xMetaData->supportsAlterTableWithDropColumn());
}
//------------------------------------------------------------------------------
@@ -1936,7 +2002,9 @@ long OTableEditorCtrl::PreNotify( NotifyEvent& rNEvt )
{
if (rNEvt.GetType() == EVENT_GETFOCUS)
{
if( pDescrCell && pDescrCell->HasChildPathFocus() )
if( pHelpTextCell && pHelpTextCell->HasChildPathFocus() )
m_eChildFocus = HELPTEXT;
else if( pDescrCell && pDescrCell->HasChildPathFocus() )
m_eChildFocus = DESCRIPTION;
else if(pNameCell && pNameCell->HasChildPathFocus() )
m_eChildFocus = NAME;
@@ -59,6 +59,7 @@ namespace dbaui
{
enum ChildFocusState
{
HELPTEXT,
DESCRIPTION,
NAME,
ROW,
@@ -70,6 +71,7 @@ namespace dbaui
OSQLNameEdit* pNameCell;
::svt::ListBoxControl* pTypeCell;
Edit* pHelpTextCell;
Edit* pDescrCell;
OTableFieldDescWin* pDescrWin; // properties of one column
@@ -871,7 +871,7 @@ void OTableController::loadData()
sal_Int32 nAlign = 0;
sal_Bool bIsAutoIncrement = false, bIsCurrency = false;
::rtl::OUString sName,sDescription,sTypeName;
::rtl::OUString sName,sDescription,sTypeName,sHelpText;
Any aControlDefault;
// get the properties from the column
@@ -883,10 +883,11 @@ void OTableController::loadData()
xColumn->getPropertyValue(PROPERTY_TYPE) >>= nType;
xColumn->getPropertyValue(PROPERTY_SCALE) >>= nScale;
xColumn->getPropertyValue(PROPERTY_PRECISION) >>= nPrecision;
xColumn->getPropertyValue(PROPERTY_DESCRIPTION) >>= sDescription;
if(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_HELPTEXT))
xColumn->getPropertyValue(PROPERTY_HELPTEXT) >>= sDescription;
xColumn->getPropertyValue(PROPERTY_HELPTEXT) >>= sHelpText;
if(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_CONTROLDEFAULT))
aControlDefault = xColumn->getPropertyValue(PROPERTY_CONTROLDEFAULT);
if(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_FORMATKEY))
@@ -912,6 +913,7 @@ void OTableController::loadData()
pActFieldDescr->SetFormatKey(nFormatKey);
// pActFieldDescr->SetPrimaryKey(pPrimary->GetValue());
pActFieldDescr->SetDescription(sDescription);
pActFieldDescr->SetHelpText(sHelpText);
pActFieldDescr->SetAutoIncrement(bIsAutoIncrement);
pActFieldDescr->SetHorJustify(dbaui::mapTextJustify(nAlign));
pActFieldDescr->SetCurrency(bIsCurrency);
@@ -1120,13 +1122,14 @@ void OTableController::alterColumns()
sal_Int32 nType=0,nPrecision=0,nScale=0,nNullable=0;
sal_Bool bAutoIncrement = false;
::rtl::OUString sTypeName;
::rtl::OUString sTypeName,sDescription;
xColumn->getPropertyValue(PROPERTY_TYPE) >>= nType;
xColumn->getPropertyValue(PROPERTY_PRECISION) >>= nPrecision;
xColumn->getPropertyValue(PROPERTY_SCALE) >>= nScale;
xColumn->getPropertyValue(PROPERTY_ISNULLABLE) >>= nNullable;
xColumn->getPropertyValue(PROPERTY_ISAUTOINCREMENT) >>= bAutoIncrement;
xColumn->getPropertyValue(PROPERTY_DESCRIPTION) >>= sDescription;
try { xColumn->getPropertyValue(PROPERTY_TYPENAME) >>= sTypeName; }
catch( const Exception& )
@@ -1145,6 +1148,7 @@ void OTableController::alterColumns()
(nPrecision != pField->GetPrecision() && nPrecision ) ||
nScale != pField->GetScale() ||
nNullable != pField->GetIsNullable() ||
sDescription != pField->GetDescription() ||
bAutoIncrement != pField->IsAutoIncrement())&&
xColumnFactory.is())
{
@@ -1264,7 +1268,8 @@ void OTableController::alterColumns()
xColumns->getByName(pField->GetName()) >>= xColumn;
Reference<XPropertySetInfo> xInfo = xColumn->getPropertySetInfo();
if ( xInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
xColumn->setPropertyValue(PROPERTY_HELPTEXT,makeAny(pField->GetDescription()));
xColumn->setPropertyValue(PROPERTY_HELPTEXT,makeAny(pField->GetHelpText()));
if(xInfo->hasPropertyByName(PROPERTY_CONTROLDEFAULT))
xColumn->setPropertyValue(PROPERTY_CONTROLDEFAULT,pField->GetControlDefault());
if(xInfo->hasPropertyByName(PROPERTY_FORMATKEY))
@@ -140,6 +140,7 @@ namespace dbaui
_rStr << (sal_Int32)1;
_rStr.WriteByteString(pFieldDesc->GetName());
_rStr.WriteByteString(pFieldDesc->GetDescription());
_rStr.WriteByteString(pFieldDesc->GetHelpText());
double nValue = 0.0;
Any aValue = pFieldDesc->GetControlDefault();
if ( aValue >>= nValue )
@@ -184,6 +185,8 @@ namespace dbaui
_rStr.ReadByteString(sValue);
pFieldDesc->SetDescription(sValue);
_rStr.ReadByteString(sValue);
pFieldDesc->SetHelpText(sValue);
_rStr >> nValue;
Any aControlDefault;
+5 -1
View File
@@ -106,10 +106,14 @@ String STR_TAB_FIELD_LENGTH
{
Text [ en-US ] = "Field length" ;
};
String STR_TAB_FIELD_DESCR
String STR_TAB_HELP_TEXT
{
Text [ en-US ] = "Description" ;
};
String STR_COLUMN_DESCRIPTION
{
Text [ en-US ] = "Column Description" ;
};
String STR_TAB_FIELD_NULLABLE
{
Text [ en-US ] = "Input required" ;
+2
View File
@@ -149,6 +149,8 @@ hidspecial HID_CTL_TABLEEDIT { HelpId = HID_CTL_TABLE
hidspecial HID_TABDESIGN_NAMECELL { HelpId = HID_TABDESIGN_NAMECELL; };
hidspecial HID_TABDESIGN_TYPECELL { HelpId = HID_TABDESIGN_TYPECELL; };
hidspecial HID_TABDESIGN_COMMENTCELL { HelpId = HID_TABDESIGN_COMMENTCELL; };
hidspecial HID_TABDESIGN_HELPTEXT { HelpId = HID_TABDESIGN_HELPTEXT; };
hidspecial SID_TABLEDESIGN_INSERTROWS { HelpId = SID_TABLEDESIGN_INSERTROWS; };
hidspecial SID_TABLEDESIGN_TABED_PRIMARYKEY { HelpId = SID_TABLEDESIGN_TABED_PRIMARYKEY; };
hidspecial HID_TLB_TABLEDESIGN { HelpId = HID_TLB_TABLEDESIGN; };