LCOV - code coverage report
Current view: top level - extensions/source/propctrlr - formmetadata.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 179 0.0 %
Date: 2012-08-25 Functions: 0 25 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : #include "formmetadata.hxx"
      30                 :            : #include "formstrings.hxx"
      31                 :            : #include "formresid.hrc"
      32                 :            : #include "propctrlr.hrc"
      33                 :            : #include <svtools/localresaccess.hxx>
      34                 :            : #include <tools/debug.hxx>
      35                 :            : #include <comphelper/extract.hxx>
      36                 :            : #include <sal/macros.h>
      37                 :            : #include <algorithm>
      38                 :            : #include <functional>
      39                 :            : 
      40                 :            : //............................................................................
      41                 :            : namespace pcr
      42                 :            : {
      43                 :            : //............................................................................
      44                 :            : 
      45                 :            :     using namespace ::com::sun::star::uno;
      46                 :            : 
      47                 :            :     //========================================================================
      48                 :            :     //= OPropertyInfoImpl
      49                 :            :     //========================================================================
      50                 :          0 :     struct OPropertyInfoImpl
      51                 :            :     {
      52                 :            :         String          sName;
      53                 :            :         String          sTranslation;
      54                 :            :         rtl::OString    sHelpId;
      55                 :            :         sal_Int32       nId;
      56                 :            :         sal_uInt16      nPos;
      57                 :            :         sal_uInt32      nUIFlags;
      58                 :            : 
      59                 :            :         OPropertyInfoImpl(
      60                 :            :                         const ::rtl::OUString&      rName,
      61                 :            :                         sal_Int32                   _nId,
      62                 :            :                         const String&               aTranslation,
      63                 :            :                         sal_uInt16                  nPosId,
      64                 :            :                         const rtl::OString&,
      65                 :            :                         sal_uInt32                  _nUIFlags);
      66                 :            :     };
      67                 :            : 
      68                 :            :     //------------------------------------------------------------------------
      69                 :          0 :     OPropertyInfoImpl::OPropertyInfoImpl(const ::rtl::OUString& _rName, sal_Int32 _nId,
      70                 :            :                                    const String& aString, sal_uInt16 nP, const rtl::OString& sHid, sal_uInt32 _nUIFlags)
      71                 :            :        :sName(_rName)
      72                 :            :        ,sTranslation(aString)
      73                 :            :        ,sHelpId(sHid)
      74                 :            :        ,nId(_nId)
      75                 :            :        ,nPos(nP)
      76                 :          0 :        ,nUIFlags(_nUIFlags)
      77                 :            :     {
      78                 :          0 :     }
      79                 :            : 
      80                 :            :     //------------------------------------------------------------------------
      81                 :            :     // Compare PropertyInfo
      82                 :            :     struct PropertyInfoLessByName : public ::std::binary_function< OPropertyInfoImpl, OPropertyInfoImpl, bool >
      83                 :            :     {
      84                 :          0 :         bool operator()( const OPropertyInfoImpl& _rLHS, const OPropertyInfoImpl& _rRHS )
      85                 :            :         {
      86                 :          0 :             return _rLHS.sName.CompareTo( _rRHS.sName ) == COMPARE_LESS;
      87                 :            :         }
      88                 :            :     };
      89                 :            : 
      90                 :            :     //========================================================================
      91                 :            :     //= OPropertyInfoService
      92                 :            :     //========================================================================
      93                 :            : #define DEF_INFO( ident, uinameres, helpid, flags )   \
      94                 :            :     OPropertyInfoImpl( PROPERTY_##ident, PROPERTY_ID_##ident, \
      95                 :            :             String( PcrRes( RID_STR_##uinameres ) ), nPos++, HID_PROP_##helpid, flags )
      96                 :            : 
      97                 :            : #define DEF_INFO_1( ident, uinameres, helpid, flag1 ) \
      98                 :            :     DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 )
      99                 :            : 
     100                 :            : #define DEF_INFO_2( ident, uinameres, helpid, flag1, flag2 ) \
     101                 :            :     DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 )
     102                 :            : 
     103                 :            : #define DEF_INFO_3( ident, uinameres, helpid, flag1, flag2, flag3 ) \
     104                 :            :     DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 | PROP_FLAG_##flag3 )
     105                 :            : 
     106                 :            : #define DEF_INFO_4( ident, uinameres, helpid, flag1, flag2, flag3, flag4 ) \
     107                 :            :     DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 | PROP_FLAG_##flag3 | PROP_FLAG_##flag4 )
     108                 :            : 
     109                 :            : #define DEF_INFO_5( ident, uinameres, helpid, flag1, flag2, flag3, flag4, flag5 ) \
     110                 :            :     DEF_INFO( ident, uinameres, helpid, PROP_FLAG_##flag1 | PROP_FLAG_##flag2 | PROP_FLAG_##flag3 | PROP_FLAG_##flag4 | PROP_FLAG_##flag5 )
     111                 :            : 
     112                 :            :     sal_uInt16              OPropertyInfoService::s_nCount = 0;
     113                 :            :     OPropertyInfoImpl*      OPropertyInfoService::s_pPropertyInfos = NULL;
     114                 :            :     //------------------------------------------------------------------------
     115                 :          0 :     const OPropertyInfoImpl* OPropertyInfoService::getPropertyInfo()
     116                 :            :     {
     117                 :          0 :         if ( s_pPropertyInfos )
     118                 :          0 :             return s_pPropertyInfos;
     119                 :            : 
     120                 :          0 :         PcrClient aResourceAccess;
     121                 :            :         // this ensures that we have our resource file loaded
     122                 :            : 
     123                 :          0 :         sal_uInt16 nPos = 1;
     124                 :            : 
     125                 :            :         static OPropertyInfoImpl aPropertyInfos[] =
     126                 :            :         {
     127                 :            :         /*
     128                 :            :         DEF_INFO_?( propname and id,   resoure id,         help id,           flags ),
     129                 :            :         */
     130                 :            :         DEF_INFO_3( NAME,              NAME,               NAME,              FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     131                 :            :         DEF_INFO_2( TITLE,             TITLE,              TITLE,             FORM_VISIBLE, DIALOG_VISIBLE ),
     132                 :            :         DEF_INFO_3( LABEL,             LABEL,              LABEL,             FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     133                 :            :         DEF_INFO_2( CONTROLLABEL,      LABELCONTROL,       CONTROLLABEL,      FORM_VISIBLE, COMPOSEABLE ),
     134                 :            :         DEF_INFO_3( WRITING_MODE,      WRITING_MODE,       WRITING_MODE,      FORM_VISIBLE, ENUM, COMPOSEABLE ),
     135                 :            :         DEF_INFO_3( GROUP_NAME,        GROUP_NAME,         GROUP_NAME,        FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     136                 :            :         DEF_INFO_2( TEXT,              TEXT,               TEXT,              DIALOG_VISIBLE, COMPOSEABLE ),
     137                 :            :         DEF_INFO_3( MAXTEXTLEN,        MAXTEXTLEN,         MAXTEXTLEN,        FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     138                 :            :         DEF_INFO_3( EDITMASK,          EDITMASK,           EDITMASK,          FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     139                 :            :         DEF_INFO_3( LITERALMASK,       LITERALMASK,        LITERALMASK,       FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     140                 :            :         DEF_INFO_3( STRICTFORMAT,      STRICTFORMAT,       STRICTFORMAT,      FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     141                 :            :         DEF_INFO_3( ENABLED,           ENABLED,            ENABLED,           FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     142                 :            :         DEF_INFO_3( ENABLE_VISIBLE,    ENABLE_VISIBLE,     ENABLE_VISIBLE,    FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     143                 :            :         DEF_INFO_3( READONLY,          READONLY,           READONLY,          FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     144                 :            :         DEF_INFO_3( PRINTABLE,         PRINTABLE,          PRINTABLE,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     145                 :            :         DEF_INFO_3( STEP,              STEP,               STEP,              FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     146                 :            :         DEF_INFO_3( TABSTOP,           TABSTOP,            TABSTOP,           FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     147                 :            :         DEF_INFO_2( TABINDEX,          TABINDEX,           TABINDEX,          FORM_VISIBLE, DIALOG_VISIBLE ),
     148                 :            :         DEF_INFO_3( WHEEL_BEHAVIOR,    WHEEL_BEHAVIOR,     WHEEL_BEHAVIOR,    FORM_VISIBLE, ENUM, COMPOSEABLE ),
     149                 :            : 
     150                 :            :         DEF_INFO_2( BOUND_CELL,        BOUND_CELL,         BOUND_CELL,        FORM_VISIBLE, DATA_PROPERTY ),
     151                 :            :         DEF_INFO_3( CELL_EXCHANGE_TYPE,CELL_EXCHANGE_TYPE, CELL_EXCHANGE_TYPE,FORM_VISIBLE, DATA_PROPERTY, ENUM ),
     152                 :            :         DEF_INFO_2( LIST_CELL_RANGE,   LIST_CELL_RANGE,    LIST_CELL_RANGE,   FORM_VISIBLE, DATA_PROPERTY ),
     153                 :            :         DEF_INFO_3( CONTROLSOURCE,     CONTROLSOURCE,      CONTROLSOURCE,     FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     154                 :            :         DEF_INFO_3( EMPTY_IS_NULL,     EMPTY_IS_NULL,      EMPTY_IS_NULL,     FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     155                 :            :         DEF_INFO_3( INPUT_REQUIRED,    INPUT_REQUIRED,     INPUT_REQUIRED,    FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     156                 :            :         DEF_INFO_3( REFVALUE,          REFVALUE,           REFVALUE,          FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     157                 :            :         DEF_INFO_3( UNCHECKEDREFVALUE, UNCHECKEDREFVALUE,  UNCHECKEDREFVALUE, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     158                 :            :         DEF_INFO_3( DATASOURCE,        DATASOURCE,         DATASOURCE,        FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     159                 :            :         DEF_INFO_4( COMMANDTYPE,       CURSORSOURCETYPE,   CURSORSOURCETYPE,  FORM_VISIBLE, DATA_PROPERTY, ENUM, COMPOSEABLE ),
     160                 :            :         DEF_INFO_3( COMMAND,           CURSORSOURCE,       CURSORSOURCE,      FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     161                 :            :         DEF_INFO_3( ESCAPE_PROCESSING, ESCAPE_PROCESSING,  ESCAPE_PROCESSING, FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     162                 :            :         DEF_INFO_3( FILTER,            FILTER,             FILTER,            FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     163                 :            :         DEF_INFO_3( SORT,              SORT_CRITERIA,      SORT_CRITERIA,     FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     164                 :            :         DEF_INFO_2( MASTERFIELDS,      MASTERFIELDS,       MASTERFIELDS,      FORM_VISIBLE, DATA_PROPERTY ),
     165                 :            :         DEF_INFO_2( DETAILFIELDS,      SLAVEFIELDS,        SLAVEFIELDS,       FORM_VISIBLE, DATA_PROPERTY ),
     166                 :            :         DEF_INFO_3( ALLOWADDITIONS,    ALLOW_ADDITIONS,    ALLOW_ADDITIONS,   FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     167                 :            :         DEF_INFO_3( ALLOWEDITS,        ALLOW_EDITS,        ALLOW_EDITS,       FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     168                 :            :         DEF_INFO_3( ALLOWDELETIONS,    ALLOW_DELETIONS,    ALLOW_DELETIONS,   FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     169                 :            :         DEF_INFO_3( INSERTONLY,        DATAENTRY,          DATAENTRY,         FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     170                 :            :         DEF_INFO_4( NAVIGATION,        NAVIGATION,         NAVIGATION,        FORM_VISIBLE, DATA_PROPERTY, ENUM, COMPOSEABLE ),
     171                 :            :         DEF_INFO_4( CYCLE,             CYCLE,              CYCLE,             FORM_VISIBLE, DATA_PROPERTY, ENUM, COMPOSEABLE ),
     172                 :            :         DEF_INFO_3( FILTERPROPOSAL,    FILTERPROPOSAL,     FILTERPROPOSAL,    FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     173                 :            :         DEF_INFO_4( LISTSOURCETYPE,    LISTSOURCETYPE,     LISTSOURCETYPE,    FORM_VISIBLE, DATA_PROPERTY, ENUM, COMPOSEABLE ),
     174                 :            :         DEF_INFO_3( LISTSOURCE,        LISTSOURCE,         LISTSOURCE,        FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     175                 :            :         DEF_INFO_3( BOUNDCOLUMN,       BOUNDCOLUMN,        BOUNDCOLUMN,       FORM_VISIBLE, DATA_PROPERTY, COMPOSEABLE ),
     176                 :            : 
     177                 :            :         // <!----------------->
     178                 :            :         // XML node binding
     179                 :            :         DEF_INFO_2( LIST_BINDING,      LIST_BINDING,       LIST_BINDING,      FORM_VISIBLE, DATA_PROPERTY ),
     180                 :            :         DEF_INFO_2( XML_DATA_MODEL,    XML_DATA_MODEL,     XML_DATA_MODEL,    FORM_VISIBLE, DATA_PROPERTY ),
     181                 :            :         DEF_INFO_2( BINDING_NAME,      BINDING_NAME,       BINDING_NAME,      FORM_VISIBLE, DATA_PROPERTY ),
     182                 :            :         DEF_INFO_2( BIND_EXPRESSION,   BIND_EXPRESSION,    BIND_EXPRESSION,   FORM_VISIBLE, DATA_PROPERTY ),
     183                 :            :         DEF_INFO_2( XSD_REQUIRED,      XSD_REQUIRED,       XSD_REQUIRED,      FORM_VISIBLE, DATA_PROPERTY ),
     184                 :            :         DEF_INFO_2( XSD_RELEVANT,      XSD_RELEVANT,       XSD_RELEVANT,      FORM_VISIBLE, DATA_PROPERTY ),
     185                 :            :         DEF_INFO_2( XSD_READONLY,      XSD_READONLY,       XSD_READONLY,      FORM_VISIBLE, DATA_PROPERTY ),
     186                 :            :         DEF_INFO_2( XSD_CONSTRAINT,    XSD_CONSTRAINT,     XSD_CONSTRAINT,    FORM_VISIBLE, DATA_PROPERTY ),
     187                 :            :         DEF_INFO_2( XSD_CALCULATION,   XSD_CALCULATION,    XSD_CALCULATION,   FORM_VISIBLE, DATA_PROPERTY ),
     188                 :            : 
     189                 :            :         // data type
     190                 :            :         DEF_INFO_2( XSD_DATA_TYPE,     XSD_DATA_TYPE,      XSD_DATA_TYPE,     FORM_VISIBLE, DATA_PROPERTY ),
     191                 :            :         // data types facets
     192                 :            :         //  common
     193                 :            :         DEF_INFO_3( XSD_WHITESPACES,   XSD_WHITESPACES,    XSD_WHITESPACES,   FORM_VISIBLE, DATA_PROPERTY, ENUM ),
     194                 :            :         DEF_INFO_2( XSD_PATTERN,       XSD_PATTERN,        XSD_PATTERN,       FORM_VISIBLE, DATA_PROPERTY ),
     195                 :            :         //  string
     196                 :            :         DEF_INFO_2( XSD_LENGTH,        XSD_LENGTH,         XSD_LENGTH,        FORM_VISIBLE, DATA_PROPERTY ),
     197                 :            :         DEF_INFO_2( XSD_MIN_LENGTH,    XSD_MIN_LENGTH,     XSD_MIN_LENGTH,    FORM_VISIBLE, DATA_PROPERTY ),
     198                 :            :         DEF_INFO_2( XSD_MAX_LENGTH,    XSD_MAX_LENGTH,     XSD_MAX_LENGTH,    FORM_VISIBLE, DATA_PROPERTY ),
     199                 :            :         //  decimal
     200                 :            :         DEF_INFO_2( XSD_TOTAL_DIGITS,   XSD_TOTAL_DIGITS,   XSD_TOTAL_DIGITS,   FORM_VISIBLE, DATA_PROPERTY ),
     201                 :            :         DEF_INFO_2( XSD_FRACTION_DIGITS,XSD_FRACTION_DIGITS,XSD_FRACTION_DIGITS,FORM_VISIBLE, DATA_PROPERTY ),
     202                 :            :         //  int value types (year, month, day)
     203                 :            :         DEF_INFO_2( XSD_MAX_INCLUSIVE_INT, XSD_MAX_INCLUSIVE, XSD_MAX_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     204                 :            :         DEF_INFO_2( XSD_MAX_EXCLUSIVE_INT, XSD_MAX_EXCLUSIVE, XSD_MAX_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     205                 :            :         DEF_INFO_2( XSD_MIN_INCLUSIVE_INT, XSD_MIN_INCLUSIVE, XSD_MIN_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     206                 :            :         DEF_INFO_2( XSD_MIN_EXCLUSIVE_INT, XSD_MIN_EXCLUSIVE, XSD_MIN_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     207                 :            :         //  double value types (double, float, decimal)
     208                 :            :         DEF_INFO_2( XSD_MAX_INCLUSIVE_DOUBLE, XSD_MAX_INCLUSIVE, XSD_MAX_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     209                 :            :         DEF_INFO_2( XSD_MAX_EXCLUSIVE_DOUBLE, XSD_MAX_EXCLUSIVE, XSD_MAX_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     210                 :            :         DEF_INFO_2( XSD_MIN_INCLUSIVE_DOUBLE, XSD_MIN_INCLUSIVE, XSD_MIN_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     211                 :            :         DEF_INFO_2( XSD_MIN_EXCLUSIVE_DOUBLE, XSD_MIN_EXCLUSIVE, XSD_MIN_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     212                 :            :         // date value type
     213                 :            :         DEF_INFO_2( XSD_MAX_INCLUSIVE_DATE, XSD_MAX_INCLUSIVE, XSD_MAX_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     214                 :            :         DEF_INFO_2( XSD_MAX_EXCLUSIVE_DATE, XSD_MAX_EXCLUSIVE, XSD_MAX_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     215                 :            :         DEF_INFO_2( XSD_MIN_INCLUSIVE_DATE, XSD_MIN_INCLUSIVE, XSD_MIN_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     216                 :            :         DEF_INFO_2( XSD_MIN_EXCLUSIVE_DATE, XSD_MIN_EXCLUSIVE, XSD_MIN_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     217                 :            :         // time value type
     218                 :            :         DEF_INFO_2( XSD_MAX_INCLUSIVE_TIME, XSD_MAX_INCLUSIVE, XSD_MAX_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     219                 :            :         DEF_INFO_2( XSD_MAX_EXCLUSIVE_TIME, XSD_MAX_EXCLUSIVE, XSD_MAX_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     220                 :            :         DEF_INFO_2( XSD_MIN_INCLUSIVE_TIME, XSD_MIN_INCLUSIVE, XSD_MIN_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     221                 :            :         DEF_INFO_2( XSD_MIN_EXCLUSIVE_TIME, XSD_MIN_EXCLUSIVE, XSD_MIN_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     222                 :            :         // dateTime value type
     223                 :            :         DEF_INFO_2( XSD_MAX_INCLUSIVE_DATE_TIME, XSD_MAX_INCLUSIVE, XSD_MAX_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     224                 :            :         DEF_INFO_2( XSD_MAX_EXCLUSIVE_DATE_TIME, XSD_MAX_EXCLUSIVE, XSD_MAX_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     225                 :            :         DEF_INFO_2( XSD_MIN_INCLUSIVE_DATE_TIME, XSD_MIN_INCLUSIVE, XSD_MIN_INCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     226                 :            :         DEF_INFO_2( XSD_MIN_EXCLUSIVE_DATE_TIME, XSD_MIN_EXCLUSIVE, XSD_MIN_EXCLUSIVE, FORM_VISIBLE, DATA_PROPERTY ),
     227                 :            :         // <!----------------->
     228                 :            : 
     229                 :            :         DEF_INFO_2( HIDDEN_VALUE,      VALUE,              HIDDEN_VALUE,      FORM_VISIBLE, COMPOSEABLE ),
     230                 :            :         DEF_INFO_2( VALUE,             VALUE,              VALUE,             DIALOG_VISIBLE, COMPOSEABLE ),
     231                 :            :         DEF_INFO_3( VALUEMIN,          VALUEMIN,           VALUEMIN,          FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     232                 :            :         DEF_INFO_3( VALUEMAX,          VALUEMAX,           VALUEMAX,          FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     233                 :            :         DEF_INFO_3( VALUESTEP,         VALUESTEP,          VALUESTEP,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     234                 :            :         DEF_INFO_2( DEFAULT_VALUE,     DEFAULTVALUE,       DEFAULT_LONG_VALUE,FORM_VISIBLE, COMPOSEABLE ),
     235                 :            :         DEF_INFO_3( DECIMAL_ACCURACY,  DECIMAL_ACCURACY,   DECIMAL_ACCURACY,  FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     236                 :            :         DEF_INFO_3( SHOWTHOUSANDSEP,   SHOWTHOUSANDSEP,    SHOWTHOUSANDSEP,   FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     237                 :            : 
     238                 :            :         DEF_INFO_3( CURRENCYSYMBOL,    CURRENCYSYMBOL,     CURRENCYSYMBOL,    FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     239                 :            :         DEF_INFO_3( CURRSYM_POSITION,  CURRSYM_POSITION,   CURRSYM_POSITION,  FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     240                 :            : 
     241                 :            :         DEF_INFO_2( DATE,              DATE,               DATE,              DIALOG_VISIBLE, COMPOSEABLE ),
     242                 :            :         DEF_INFO_3( DATEMIN,           DATEMIN,            DATEMIN,           FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     243                 :            :         DEF_INFO_3( DATEMAX,           DATEMAX,            DATEMAX,           FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     244                 :            :         DEF_INFO_4( DATEFORMAT,        DATEFORMAT,         DATEFORMAT,        FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ),
     245                 :            :         DEF_INFO_2( DEFAULT_DATE,      DEFAULTDATE,        DEFAULT_DATE,      FORM_VISIBLE, COMPOSEABLE ),
     246                 :            : 
     247                 :            :         DEF_INFO_2( TIME,              TIME,               TIME,              DIALOG_VISIBLE, COMPOSEABLE ),
     248                 :            :         DEF_INFO_3( TIMEMIN,           TIMEMIN,            TIMEMIN,           FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     249                 :            :         DEF_INFO_3( TIMEMAX,           TIMEMAX,            TIMEMAX,           FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     250                 :            :         DEF_INFO_4( TIMEFORMAT,        TIMEFORMAT,         TIMEFORMAT,        FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ),
     251                 :            :         DEF_INFO_2( DEFAULT_TIME,      DEFAULTTIME,        DEFAULT_TIME,      FORM_VISIBLE, COMPOSEABLE ),
     252                 :            : 
     253                 :            :         DEF_INFO_1( EFFECTIVE_VALUE,   VALUE,              VALUE,             DIALOG_VISIBLE ),
     254                 :            :         DEF_INFO_3( EFFECTIVE_MIN,     VALUEMIN,           EFFECTIVEMIN,      FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     255                 :            :         DEF_INFO_3( EFFECTIVE_MAX,     VALUEMAX,           EFFECTIVEMAX,      FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     256                 :            :         DEF_INFO_2( EFFECTIVE_DEFAULT, DEFAULTVALUE,       EFFECTIVEDEFAULT,  FORM_VISIBLE, COMPOSEABLE ),
     257                 :            :         DEF_INFO_3( FORMATKEY,         FORMATKEY,          FORMATKEY,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     258                 :            : 
     259                 :            :         DEF_INFO_3( PROGRESSVALUE,     PROGRESSVALUE,      PROGRESSVALUE,     FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     260                 :            :         DEF_INFO_3( PROGRESSVALUE_MIN, PROGRESSVALUE_MIN,  PROGRESSVALUE_MIN, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     261                 :            :         DEF_INFO_3( PROGRESSVALUE_MAX, PROGRESSVALUE_MAX,  PROGRESSVALUE_MAX, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     262                 :            : 
     263                 :            :         DEF_INFO_2( SCROLLVALUE,       SCROLLVALUE,        SCROLLVALUE,       DIALOG_VISIBLE, COMPOSEABLE ),
     264                 :            :         DEF_INFO_3( SCROLLVALUE_MIN,   SCROLLVALUE_MIN,    SCROLLVALUE_MIN,   FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     265                 :            :         DEF_INFO_3( SCROLLVALUE_MAX,   SCROLLVALUE_MAX,    SCROLLVALUE_MAX,   FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     266                 :            :         DEF_INFO_2( DEFAULT_SCROLLVALUE,DEFAULT_SCROLLVALUE,DEFAULT_SCROLLVALUE,FORM_VISIBLE, COMPOSEABLE ),
     267                 :            :         DEF_INFO_3( LINEINCREMENT,     LINEINCREMENT,      LINEINCREMENT,     FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     268                 :            :         DEF_INFO_3( BLOCKINCREMENT,    BLOCKINCREMENT,     BLOCKINCREMENT,    FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     269                 :            : 
     270                 :            :         DEF_INFO_2( SPINVALUE,        VALUE,               SPINVALUE,         DIALOG_VISIBLE, COMPOSEABLE ),
     271                 :            :         DEF_INFO_3( SPINVALUE_MIN,    VALUEMIN,            SPINVALUE_MIN,     FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     272                 :            :         DEF_INFO_3( SPINVALUE_MAX,    VALUEMAX,            SPINVALUE_MAX,     FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     273                 :            :         DEF_INFO_2( DEFAULT_SPINVALUE,DEFAULTVALUE,        DEFAULT_SPINVALUE, FORM_VISIBLE, COMPOSEABLE ),
     274                 :            :         DEF_INFO_3( SPININCREMENT,    VALUESTEP,           SPININCREMENT,     FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     275                 :            : 
     276                 :            :         DEF_INFO_3( SPIN,              SPIN,               SPIN,              FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     277                 :            :         DEF_INFO_3( REPEAT,            REPEAT,             REPEAT,            FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     278                 :            :         DEF_INFO_3( REPEAT_DELAY,      REPEAT_DELAY,       REPEAT_DELAY,      FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     279                 :            :         DEF_INFO_3( VISIBLESIZE,       VISIBLESIZE,        VISIBLESIZE,       FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     280                 :            :         DEF_INFO_4( ORIENTATION,       ORIENTATION,        ORIENTATION,       FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ),
     281                 :            :         DEF_INFO_3( FOCUSONCLICK,      FOCUSONCLICK,       FOCUSONCLICK,      FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     282                 :            :         DEF_INFO_3( TOGGLE,            TOGGLE,             TOGGLE,            FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     283                 :            :         DEF_INFO_3( DEFAULT_STATE,     DEFAULT_STATE,      DEFAULT_STATE,     FORM_VISIBLE, ENUM, COMPOSEABLE ),
     284                 :            : 
     285                 :            :         DEF_INFO_3( TEXT_ANCHOR_TYPE,  ANCHOR_TYPE,        ANCHOR_TYPE,       FORM_VISIBLE, ENUM, COMPOSEABLE ),
     286                 :            :         DEF_INFO_3( SHEET_ANCHOR_TYPE, ANCHOR_TYPE,        ANCHOR_TYPE,       FORM_VISIBLE, ENUM, COMPOSEABLE ),
     287                 :            :         DEF_INFO_3( POSITIONX,         POSITIONX,          POSITIONX,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     288                 :            :         DEF_INFO_3( POSITIONY,         POSITIONY,          POSITIONY,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     289                 :            :         DEF_INFO_3( WIDTH,             WIDTH,              WIDTH,             FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     290                 :            :         DEF_INFO_3( HEIGHT,            HEIGHT,             HEIGHT,            FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     291                 :            : 
     292                 :            :         DEF_INFO_1( LISTINDEX,         LISTINDEX,          LISTINDEX,         FORM_VISIBLE ),
     293                 :            :         DEF_INFO_3( STRINGITEMLIST,    STRINGITEMLIST,     STRINGITEMLIST,    FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     294                 :            :         DEF_INFO_2( DEFAULT_TEXT,      DEFAULTTEXT,        DEFAULTVALUE,      FORM_VISIBLE, COMPOSEABLE ),
     295                 :            :         DEF_INFO_3( FONT,              FONT,               FONT,              FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     296                 :            :         DEF_INFO_4( VISUALEFFECT,      VISUALEFFECT,       VISUALEFFECT,      FORM_VISIBLE, DIALOG_VISIBLE, ENUM_ONE, COMPOSEABLE ),
     297                 :            :         DEF_INFO_4( ALIGN,             ALIGN,              ALIGN,             FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ),
     298                 :            :         DEF_INFO_3( VERTICAL_ALIGN,    VERTICAL_ALIGN,     VERTICAL_ALIGN,    FORM_VISIBLE, ENUM, COMPOSEABLE ),
     299                 :            :         DEF_INFO_3( ROWHEIGHT,         ROWHEIGHT,          ROWHEIGHT,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     300                 :            :         DEF_INFO_3( BACKGROUNDCOLOR,   BACKGROUNDCOLOR,    BACKGROUNDCOLOR,   FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     301                 :            :         DEF_INFO_3( SYMBOLCOLOR,       SYMBOLCOLOR,        SYMBOLCOLOR,       FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     302                 :            :         DEF_INFO_3( FILLCOLOR,         FILLCOLOR,          FILLCOLOR,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     303                 :            :         DEF_INFO_3( LINECOLOR,         LINECOLOR,          LINECOLOR,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     304                 :            :         DEF_INFO_4( BORDER,            BORDER,             BORDER,            FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ),
     305                 :            :         DEF_INFO_3( BORDERCOLOR,       BORDERCOLOR,        BORDERCOLOR,       FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     306                 :            :         DEF_INFO_3( ICONSIZE,          ICONSIZE,           ICONSIZE,          FORM_VISIBLE, ENUM, COMPOSEABLE ),
     307                 :            :         DEF_INFO_2( SHOW_POSITION,     SHOW_POSITION,      SHOW_POSITION,     FORM_VISIBLE, COMPOSEABLE ),
     308                 :            :         DEF_INFO_2( SHOW_NAVIGATION,   SHOW_NAVIGATION,    SHOW_NAVIGATION,   FORM_VISIBLE, COMPOSEABLE ),
     309                 :            :         DEF_INFO_2( SHOW_RECORDACTIONS,SHOW_RECORDACTIONS, SHOW_RECORDACTIONS,FORM_VISIBLE, COMPOSEABLE ),
     310                 :            :         DEF_INFO_2( SHOW_FILTERSORT,   SHOW_FILTERSORT,    SHOW_FILTERSORT,   FORM_VISIBLE, COMPOSEABLE ),
     311                 :            : 
     312                 :            :         DEF_INFO_3( DROPDOWN,          DROPDOWN,           DROPDOWN,          FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     313                 :            :         DEF_INFO_3( LINECOUNT,         LINECOUNT,          LINECOUNT,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     314                 :            :         DEF_INFO_3( AUTOCOMPLETE,      AUTOCOMPLETE,       AUTOCOMPLETE,      FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     315                 :            :         DEF_INFO_3( MULTILINE,         MULTILINE,          MULTILINE,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     316                 :            :         DEF_INFO_3( WORDBREAK,         WORDBREAK,          WORDBREAK,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     317                 :            :         DEF_INFO_3( TEXTTYPE,          TEXTTYPE,           TEXTTYPE,          FORM_VISIBLE, ENUM, COMPOSEABLE ),
     318                 :            :         DEF_INFO_3( LINEEND_FORMAT,    LINEEND_FORMAT,     LINEEND_FORMAT,    FORM_VISIBLE, ENUM_ONE, COMPOSEABLE ),
     319                 :            :         DEF_INFO_3( MULTISELECTION,    MULTISELECTION,     MULTISELECTION,    FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     320                 :            :         DEF_INFO_4( SHOW_SCROLLBARS,   SHOW_SCROLLBARS,    SHOW_SCROLLBARS,   FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ),
     321                 :            :         DEF_INFO_3( HSCROLL,           HSCROLL,            HSCROLL,           FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     322                 :            :         DEF_INFO_3( VSCROLL,           VSCROLL,            VSCROLL,           FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     323                 :            :         DEF_INFO_3( BUTTONTYPE,        BUTTONTYPE,         BUTTONTYPE,        FORM_VISIBLE, ENUM, COMPOSEABLE ),
     324                 :            :         DEF_INFO_2( XFORMS_BUTTONTYPE, BUTTONTYPE,         BUTTONTYPE,        FORM_VISIBLE, ENUM ),
     325                 :            :         DEF_INFO_1( SUBMISSION_ID,     SUBMISSION_ID,      SUBMISSION_ID,     FORM_VISIBLE ),
     326                 :            :         DEF_INFO_2( PUSHBUTTONTYPE,    PUSHBUTTONTYPE,     PUSHBUTTONTYPE,    DIALOG_VISIBLE, ENUM ),
     327                 :            :         DEF_INFO_2( TARGET_URL,        TARGET_URL,         TARGET_URL,        FORM_VISIBLE, COMPOSEABLE ),
     328                 :            :         DEF_INFO_1( TARGET_FRAME,      TARGET_FRAME,       TARGET_FRAME,      FORM_VISIBLE ),
     329                 :            :         DEF_INFO_2( SUBMIT_ACTION,     SUBMIT_ACTION,      SUBMIT_ACTION,     FORM_VISIBLE, COMPOSEABLE ),
     330                 :            :         DEF_INFO_2( SUBMIT_TARGET,     SUBMIT_TARGET,      SUBMIT_TARGET,     FORM_VISIBLE, COMPOSEABLE ),
     331                 :            :         DEF_INFO_3( SUBMIT_ENCODING,   SUBMIT_ENCODING,    SUBMIT_ENCODING,   FORM_VISIBLE, ENUM, COMPOSEABLE ),
     332                 :            :         DEF_INFO_3( SUBMIT_METHOD,     SUBMIT_METHOD,      SUBMIT_METHOD,     FORM_VISIBLE, ENUM, COMPOSEABLE ),
     333                 :            :         DEF_INFO_3( STATE,             STATE,              STATE,             DIALOG_VISIBLE, ENUM, COMPOSEABLE ),
     334                 :            :         DEF_INFO_3( DEFAULTBUTTON,     DEFAULT_BUTTON,     DEFAULT_BUTTON,    FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     335                 :            :         DEF_INFO_3( IMAGE_URL,         IMAGE_URL,          IMAGE_URL,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     336                 :            :         DEF_INFO_4( IMAGEPOSITION,     IMAGEPOSITION,      IMAGEPOSITION,     FORM_VISIBLE, DIALOG_VISIBLE, ENUM, COMPOSEABLE ),
     337                 :            :         DEF_INFO_3( SCALEIMAGE,        SCALEIMAGE,         SCALEIMAGE,        FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     338                 :            :         DEF_INFO_4( SCALE_MODE,        SCALEIMAGE,         SCALEIMAGE,        FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE, ENUM ),
     339                 :            :         DEF_INFO_2( DEFAULT_SELECT_SEQ,DEFAULT_SELECT_SEQ, DEFAULT_SELECT_SEQ,FORM_VISIBLE, COMPOSEABLE ),
     340                 :            :         DEF_INFO_2( SELECTEDITEMS,     SELECTEDITEMS,      SELECTEDITEMS,     DIALOG_VISIBLE, COMPOSEABLE ),
     341                 :            :         DEF_INFO_3( ECHO_CHAR,         ECHO_CHAR,          ECHO_CHAR,         FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     342                 :            :         DEF_INFO_3( HIDEINACTIVESELECTION, HIDEINACTIVESELECTION, HIDEINACTIVESELECTION, FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     343                 :            :         DEF_INFO_3( TRISTATE,          TRISTATE,           TRISTATE,          FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     344                 :            :         DEF_INFO_2( HASNAVIGATION,     NAVIGATION,         NAVIGATIONBAR,     FORM_VISIBLE, COMPOSEABLE ),
     345                 :            :         DEF_INFO_2( RECORDMARKER,      RECORDMARKER,       RECORDMARKER,      FORM_VISIBLE, COMPOSEABLE ),
     346                 :            :         DEF_INFO_3( TAG,               TAG,                TAG,               FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     347                 :            :         DEF_INFO_3( HELPTEXT,          HELPTEXT,           HELPTEXT,          FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     348                 :            :         DEF_INFO_3( HELPURL,           HELPURL,            HELPURL,           FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
     349                 :            :         DEF_INFO_3( SELECTION_TYPE,    SELECTION_TYPE,     SELECTION_TYPE,                  DIALOG_VISIBLE, ENUM, COMPOSEABLE ),
     350                 :            :         DEF_INFO_2( ROOT_DISPLAYED,    ROOT_DISPLAYED,     ROOT_DISPLAYED,                  DIALOG_VISIBLE, COMPOSEABLE ),
     351                 :            :         DEF_INFO_2( SHOWS_HANDLES,     SHOWS_HANDLES,      SHOWS_HANDLES,                   DIALOG_VISIBLE, COMPOSEABLE ),
     352                 :            :         DEF_INFO_2( SHOWS_ROOT_HANDLES, SHOWS_ROOT_HANDLES, SHOWS_ROOT_HANDLES,             DIALOG_VISIBLE, COMPOSEABLE ),
     353                 :            :         DEF_INFO_2( EDITABLE,          EDITABLE,           EDITABLE,                        DIALOG_VISIBLE, COMPOSEABLE ),
     354                 :            :         DEF_INFO_2( INVOKES_STOP_NOT_EDITING, INVOKES_STOP_NOT_EDITING, INVOKES_STOP_NOT_EDITING, DIALOG_VISIBLE, COMPOSEABLE ),
     355                 :            :         DEF_INFO_2( DECORATION,        DECORATION,         DECORATION,                      DIALOG_VISIBLE, COMPOSEABLE ),
     356                 :            :         DEF_INFO_2( NOLABEL,           NOLABEL,            NOLABEL,                         DIALOG_VISIBLE, COMPOSEABLE )
     357                 :          0 :         };
     358                 :            : 
     359                 :          0 :         s_pPropertyInfos = aPropertyInfos;
     360                 :          0 :         s_nCount = SAL_N_ELEMENTS(aPropertyInfos);
     361                 :            : 
     362                 :            :         // sort
     363                 :          0 :         ::std::sort( s_pPropertyInfos, s_pPropertyInfos + s_nCount, PropertyInfoLessByName() );
     364                 :            : 
     365                 :            : #if OSL_DEBUG_LEVEL > 0
     366                 :            :         for ( const OPropertyInfoImpl* pCheck = s_pPropertyInfos; pCheck != s_pPropertyInfos + s_nCount - 1; ++pCheck )
     367                 :            :         {
     368                 :            :             OSL_ENSURE( pCheck->sName != ( pCheck + 1 )->sName, "OPropertyInfoService::getPropertyInfo: duplicate entry in the table!" );
     369                 :            :         }
     370                 :            : #endif
     371                 :            : 
     372                 :          0 :         return s_pPropertyInfos;
     373                 :            :     }
     374                 :            : 
     375                 :            :     //------------------------------------------------------------------------
     376                 :          0 :     sal_Int32 OPropertyInfoService::getPropertyId(const String& _rName) const
     377                 :            :     {
     378                 :          0 :         const OPropertyInfoImpl* pInfo = getPropertyInfo(_rName);
     379                 :          0 :         return pInfo ? pInfo->nId : -1;
     380                 :            :     }
     381                 :            : 
     382                 :            :     //------------------------------------------------------------------------
     383                 :          0 :     String OPropertyInfoService::getPropertyName( sal_Int32 _nPropId )
     384                 :            :     {
     385                 :          0 :         const OPropertyInfoImpl* pInfo = getPropertyInfo(_nPropId);
     386                 :          0 :         return pInfo ? pInfo->sName : String();
     387                 :            :     }
     388                 :            : 
     389                 :            :     //------------------------------------------------------------------------
     390                 :          0 :     String OPropertyInfoService::getPropertyTranslation(sal_Int32 _nId) const
     391                 :            :     {
     392                 :          0 :         const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
     393                 :          0 :         return (pInfo) ? pInfo->sTranslation : String();
     394                 :            :     }
     395                 :            : 
     396                 :            :     //------------------------------------------------------------------------
     397                 :          0 :     rtl::OString OPropertyInfoService::getPropertyHelpId(sal_Int32 _nId) const
     398                 :            :     {
     399                 :          0 :         const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
     400                 :          0 :         return (pInfo) ? pInfo->sHelpId : rtl::OString();
     401                 :            :     }
     402                 :            : 
     403                 :            :     //------------------------------------------------------------------------
     404                 :          0 :     sal_Int16 OPropertyInfoService::getPropertyPos(sal_Int32 _nId) const
     405                 :            :     {
     406                 :          0 :         const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
     407                 :          0 :         return (pInfo) ? pInfo->nPos : 0xFFFF;
     408                 :            :     }
     409                 :            : 
     410                 :            :     //------------------------------------------------------------------------
     411                 :          0 :     sal_uInt32 OPropertyInfoService::getPropertyUIFlags(sal_Int32 _nId) const
     412                 :            :     {
     413                 :          0 :         const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
     414                 :          0 :         return (pInfo) ? pInfo->nUIFlags : 0;
     415                 :            :     }
     416                 :            : 
     417                 :            :     //------------------------------------------------------------------------
     418                 :          0 :     ::std::vector< ::rtl::OUString > OPropertyInfoService::getPropertyEnumRepresentations(sal_Int32 _nId) const
     419                 :            :     {
     420                 :            :         OSL_ENSURE( ( ( getPropertyUIFlags( _nId ) & PROP_FLAG_ENUM ) != 0 ) || ( _nId == PROPERTY_ID_TARGET_FRAME ),
     421                 :            :             "OPropertyInfoService::getPropertyEnumRepresentations: this is no enum property!" );
     422                 :            : 
     423                 :          0 :         sal_Int16 nStringItemsResId = 0;
     424                 :          0 :         switch ( _nId )
     425                 :            :         {
     426                 :            :             case PROPERTY_ID_IMAGEPOSITION:
     427                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_IMAGE_POSITION;
     428                 :          0 :                 break;
     429                 :            :             case PROPERTY_ID_BORDER:
     430                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_BORDER_TYPE;
     431                 :          0 :                 break;
     432                 :            :             case PROPERTY_ID_ICONSIZE:
     433                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_ICONSIZE_TYPE;
     434                 :          0 :                 break;
     435                 :            :             case PROPERTY_ID_COMMANDTYPE:
     436                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_COMMAND_TYPE;
     437                 :          0 :                 break;
     438                 :            :             case PROPERTY_ID_LISTSOURCETYPE:
     439                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_LISTSOURCE_TYPE;
     440                 :          0 :                 break;
     441                 :            :             case PROPERTY_ID_ALIGN:
     442                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_ALIGNMENT;
     443                 :          0 :                 break;
     444                 :            :             case PROPERTY_ID_VERTICAL_ALIGN:
     445                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_VERTICAL_ALIGN;
     446                 :          0 :                 break;
     447                 :            :             case PROPERTY_ID_BUTTONTYPE:
     448                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_BUTTONTYPE;
     449                 :          0 :                 break;
     450                 :            :             case PROPERTY_ID_PUSHBUTTONTYPE:
     451                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_PUSHBUTTONTYPE;
     452                 :          0 :                 break;
     453                 :            :             case PROPERTY_ID_SUBMIT_METHOD:
     454                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_SUBMIT_METHOD;
     455                 :          0 :                 break;
     456                 :            :             case PROPERTY_ID_SUBMIT_ENCODING:
     457                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_SUBMIT_ENCODING;
     458                 :          0 :                 break;
     459                 :            :             case PROPERTY_ID_DATEFORMAT:
     460                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_DATEFORMAT_LIST;
     461                 :          0 :                 break;
     462                 :            :             case PROPERTY_ID_TIMEFORMAT:
     463                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_TIMEFORMAT_LIST;
     464                 :          0 :                 break;
     465                 :            :             case PROPERTY_ID_DEFAULT_STATE:
     466                 :            :             case PROPERTY_ID_STATE:
     467                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_CHECKED;
     468                 :          0 :                 break;
     469                 :            :             case PROPERTY_ID_CYCLE:
     470                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_CYCLE;
     471                 :          0 :                 break;
     472                 :            :             case PROPERTY_ID_NAVIGATION:
     473                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_NAVIGATION;
     474                 :          0 :                 break;
     475                 :            :             case PROPERTY_ID_TARGET_FRAME:
     476                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_SUBMIT_TARGET;
     477                 :          0 :                 break;
     478                 :            :             case PROPERTY_ID_ORIENTATION:
     479                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_ORIENTATION;
     480                 :          0 :                 break;
     481                 :            :             case PROPERTY_ID_CELL_EXCHANGE_TYPE:
     482                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_CELL_EXCHANGE_TYPE;
     483                 :          0 :                 break;
     484                 :            :             case PROPERTY_ID_SHOW_SCROLLBARS:
     485                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_SCROLLBARS;
     486                 :          0 :                 break;
     487                 :            :             case PROPERTY_ID_VISUALEFFECT:
     488                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_VISUALEFFECT;
     489                 :          0 :                 break;
     490                 :            :             case PROPERTY_ID_TEXTTYPE:
     491                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_TEXTTYPE;
     492                 :          0 :                 break;
     493                 :            :             case PROPERTY_ID_LINEEND_FORMAT:
     494                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_LINEEND_FORMAT;
     495                 :          0 :                 break;
     496                 :            :             case PROPERTY_ID_XSD_WHITESPACES:
     497                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_WHITESPACE_HANDLING;
     498                 :          0 :                 break;
     499                 :            :             case PROPERTY_ID_SELECTION_TYPE:
     500                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_SELECTION_TYPE;
     501                 :          0 :                 break;
     502                 :            :             case PROPERTY_ID_SCALE_MODE:
     503                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_SCALE_MODE;
     504                 :          0 :                 break;
     505                 :            :             case PROPERTY_ID_WRITING_MODE:
     506                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_WRITING_MODE;
     507                 :          0 :                 break;
     508                 :            :             case PROPERTY_ID_WHEEL_BEHAVIOR:
     509                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_WHEEL_BEHAVIOR;
     510                 :          0 :                 break;
     511                 :            :             case PROPERTY_ID_TEXT_ANCHOR_TYPE:
     512                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_TEXT_ANCHOR_TYPE;
     513                 :          0 :                 break;
     514                 :            :             case PROPERTY_ID_SHEET_ANCHOR_TYPE:
     515                 :          0 :                 nStringItemsResId = RID_RSC_ENUM_SHEET_ANCHOR_TYPE;
     516                 :          0 :                 break;
     517                 :            :             default:
     518                 :            :                 OSL_FAIL( "OPropertyInfoService::getPropertyEnumRepresentations: unknown enum property!" );
     519                 :          0 :                 break;
     520                 :            :         }
     521                 :            : 
     522                 :          0 :         ::std::vector< ::rtl::OUString > aReturn;
     523                 :            : 
     524                 :          0 :         if ( nStringItemsResId )
     525                 :            :         {
     526                 :          0 :             PcrRes aResId( nStringItemsResId );
     527                 :          0 :             ::svt::OLocalResourceAccess aEnumStrings( aResId, RSC_RESOURCE );
     528                 :            : 
     529                 :          0 :             sal_Int16 i = 1;
     530                 :          0 :             PcrRes aLocalId( i );
     531                 :          0 :             while ( aEnumStrings.IsAvailableRes( aLocalId.SetRT( RSC_STRING ) ) )
     532                 :            :             {
     533                 :          0 :                 aReturn.push_back( String( aLocalId ) );
     534                 :          0 :                 aLocalId = PcrRes( ++i );
     535                 :          0 :             }
     536                 :            :         }
     537                 :            : 
     538                 :          0 :         return aReturn;
     539                 :            :     }
     540                 :            : 
     541                 :            :     //------------------------------------------------------------------------
     542                 :          0 :     sal_Bool OPropertyInfoService::isComposeable( const ::rtl::OUString& _rPropertyName ) const
     543                 :            :     {
     544                 :          0 :         sal_Int32 nId = getPropertyId( _rPropertyName );
     545                 :          0 :         if ( nId == -1 )
     546                 :          0 :             return sal_False;
     547                 :            : 
     548                 :          0 :         sal_uInt32 nFlags = getPropertyUIFlags( nId );
     549                 :          0 :         return ( nFlags & PROP_FLAG_COMPOSEABLE ) != 0;
     550                 :            :     }
     551                 :            : 
     552                 :            :     //------------------------------------------------------------------------
     553                 :          0 :     const OPropertyInfoImpl* OPropertyInfoService::getPropertyInfo(const String& _rName)
     554                 :            :     {
     555                 :            :         // Initialization
     556                 :          0 :         if(!s_pPropertyInfos)
     557                 :          0 :             getPropertyInfo();
     558                 :          0 :         OPropertyInfoImpl  aSearch(_rName, 0L, String(), 0, "", 0);
     559                 :            : 
     560                 :            :         const OPropertyInfoImpl* pInfo = ::std::lower_bound(
     561                 :          0 :             s_pPropertyInfos, s_pPropertyInfos + s_nCount, aSearch, PropertyInfoLessByName() );
     562                 :            : 
     563                 :          0 :         if ( pInfo == s_pPropertyInfos + s_nCount )
     564                 :          0 :             return NULL;
     565                 :            : 
     566                 :          0 :         if ( pInfo->sName != _rName )
     567                 :          0 :             return NULL;
     568                 :            : 
     569                 :          0 :         return pInfo;
     570                 :            :     }
     571                 :            : 
     572                 :            : 
     573                 :            :     //------------------------------------------------------------------------
     574                 :          0 :     const OPropertyInfoImpl* OPropertyInfoService::getPropertyInfo(sal_Int32 _nId)
     575                 :            :     {
     576                 :            :         // Initialization
     577                 :          0 :         if(!s_pPropertyInfos)
     578                 :          0 :             getPropertyInfo();
     579                 :            : 
     580                 :            :         // TODO: a real structure which allows quick access by name as well as by id
     581                 :          0 :         for (sal_uInt16 i = 0; i < s_nCount; i++)
     582                 :          0 :             if (s_pPropertyInfos[i].nId == _nId)
     583                 :          0 :                 return &s_pPropertyInfos[i];
     584                 :            : 
     585                 :          0 :         return NULL;
     586                 :            :     }
     587                 :            : 
     588                 :            :     //====================================================================
     589                 :            :     //= DefaultEnumRepresentation
     590                 :            :     //====================================================================
     591                 :            :     DBG_NAME( DefaultEnumRepresentation )
     592                 :            :     //--------------------------------------------------------------------
     593                 :          0 :     DefaultEnumRepresentation::DefaultEnumRepresentation( const IPropertyInfoService& _rInfo, const Type& _rType, sal_Int32 _nPropertyId )
     594                 :            :         :m_refCount( 0 )
     595                 :            :         ,m_rMetaData( _rInfo )
     596                 :            :         ,m_aType( _rType )
     597                 :          0 :         ,m_nPropertyId( _nPropertyId )
     598                 :            :     {
     599                 :            :         DBG_CTOR( DefaultEnumRepresentation, NULL );
     600                 :          0 :     }
     601                 :            : 
     602                 :            :     //--------------------------------------------------------------------
     603                 :          0 :     DefaultEnumRepresentation::~DefaultEnumRepresentation()
     604                 :            :     {
     605                 :            :         DBG_DTOR( DefaultEnumRepresentation, NULL );
     606                 :          0 :     }
     607                 :            : 
     608                 :            :     //--------------------------------------------------------------------
     609                 :          0 :     ::std::vector< ::rtl::OUString > SAL_CALL DefaultEnumRepresentation::getDescriptions() const
     610                 :            :     {
     611                 :          0 :         return m_rMetaData.getPropertyEnumRepresentations( m_nPropertyId );
     612                 :            :     }
     613                 :            : 
     614                 :            :     //--------------------------------------------------------------------
     615                 :          0 :     void SAL_CALL DefaultEnumRepresentation::getValueFromDescription( const ::rtl::OUString& _rDescription, Any& _out_rValue ) const
     616                 :            :     {
     617                 :          0 :         sal_uInt32  nPropertyUIFlags = m_rMetaData.getPropertyUIFlags( m_nPropertyId );
     618                 :          0 :         ::std::vector< ::rtl::OUString > aEnumStrings = m_rMetaData.getPropertyEnumRepresentations( m_nPropertyId );
     619                 :          0 :         ::std::vector< ::rtl::OUString >::const_iterator pos = ::std::find( aEnumStrings.begin(), aEnumStrings.end(), _rDescription );
     620                 :          0 :         if ( pos != aEnumStrings.end() )
     621                 :            :         {
     622                 :          0 :             sal_Int32 nPos = pos - aEnumStrings.begin();
     623                 :          0 :             if ( ( nPropertyUIFlags & PROP_FLAG_ENUM_ONE ) == PROP_FLAG_ENUM_ONE )
     624                 :            :                 // enum value starting with 1
     625                 :          0 :                 ++nPos;
     626                 :            : 
     627                 :          0 :             switch ( m_aType.getTypeClass() )
     628                 :            :             {
     629                 :            :                 case TypeClass_ENUM:
     630                 :          0 :                     _out_rValue = ::cppu::int2enum( nPos, m_aType );
     631                 :          0 :                     break;
     632                 :            : 
     633                 :            :                 case TypeClass_SHORT:
     634                 :          0 :                     _out_rValue <<= (sal_Int16)nPos;
     635                 :          0 :                     break;
     636                 :            : 
     637                 :            :                 case TypeClass_UNSIGNED_SHORT:
     638                 :          0 :                     _out_rValue <<= (sal_uInt16)nPos;
     639                 :          0 :                     break;
     640                 :            : 
     641                 :            :                 case TypeClass_UNSIGNED_LONG:
     642                 :          0 :                     _out_rValue <<= (sal_uInt32)nPos;
     643                 :          0 :                     break;
     644                 :            : 
     645                 :            :                 default:
     646                 :          0 :                     _out_rValue <<= (sal_Int32)nPos;
     647                 :          0 :                     break;
     648                 :            :             }
     649                 :            :         }
     650                 :            :         else
     651                 :            :         {
     652                 :            :             OSL_FAIL( "DefaultEnumRepresentation::getValueFromDescription: could not translate the enum string!" );
     653                 :          0 :             _out_rValue.clear();
     654                 :          0 :         }
     655                 :          0 :     }
     656                 :            : 
     657                 :            :     //--------------------------------------------------------------------
     658                 :          0 :     ::rtl::OUString SAL_CALL DefaultEnumRepresentation::getDescriptionForValue( const Any& _rEnumValue ) const
     659                 :            :     {
     660                 :          0 :         ::rtl::OUString sReturn;
     661                 :          0 :         sal_Int32 nIntValue = -1;
     662                 :          0 :         OSL_VERIFY( ::cppu::enum2int( nIntValue, _rEnumValue ) );
     663                 :            : 
     664                 :          0 :         sal_uInt32 nUIFlags = m_rMetaData.getPropertyUIFlags( m_nPropertyId );
     665                 :          0 :         if ( ( nUIFlags & PROP_FLAG_ENUM_ONE ) == PROP_FLAG_ENUM_ONE )
     666                 :            :             // enum value starting with 1
     667                 :          0 :             --nIntValue;
     668                 :            : 
     669                 :          0 :         ::std::vector< ::rtl::OUString > aEnumStrings = m_rMetaData.getPropertyEnumRepresentations( m_nPropertyId );
     670                 :          0 :         if ( ( nIntValue >= 0 ) && ( nIntValue < (sal_Int32)aEnumStrings.size() ) )
     671                 :            :         {
     672                 :          0 :             sReturn = aEnumStrings[ nIntValue ];
     673                 :            :         }
     674                 :            :         else
     675                 :            :         {
     676                 :            :             OSL_FAIL( "DefaultEnumRepresentation::getDescriptionForValue: could not translate an enum value" );
     677                 :            :         }
     678                 :          0 :         return sReturn;
     679                 :            :     }
     680                 :            : 
     681                 :            :     //--------------------------------------------------------------------
     682                 :          0 :     oslInterlockedCount SAL_CALL DefaultEnumRepresentation::acquire()
     683                 :            :     {
     684                 :          0 :         return osl_incrementInterlockedCount( &m_refCount );
     685                 :            :     }
     686                 :            : 
     687                 :            :     //--------------------------------------------------------------------
     688                 :          0 :     oslInterlockedCount SAL_CALL DefaultEnumRepresentation::release()
     689                 :            :     {
     690                 :          0 :         if ( 0 == osl_decrementInterlockedCount( &m_refCount ) )
     691                 :            :         {
     692                 :          0 :            delete this;
     693                 :          0 :            return 0;
     694                 :            :         }
     695                 :          0 :         return m_refCount;
     696                 :            :     }
     697                 :            : 
     698                 :            : //............................................................................
     699                 :            : } // namespace pcr
     700                 :            : //............................................................................
     701                 :            : 
     702                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10