| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_forms.hxx" |
| #include "frm_strings.hxx" |
| #include "property.hxx" |
| |
| #ifndef _FRM_PROPERTY_HRC_ |
| #include "property.hrc" |
| #endif |
| #include <cppuhelper/queryinterface.hxx> |
| #include <tools/debug.hxx> |
| #include <com/sun/star/beans/PropertyAttribute.hpp> |
| |
| #include <algorithm> |
| |
| //... namespace frm ....................................................... |
| namespace frm |
| { |
| //......................................................................... |
| |
| //================================================================== |
| //= PropertyInfoService |
| //================================================================== |
| PropertyInfoService::PropertyMap PropertyInfoService::s_AllKnownProperties; |
| //------------------------------------------------------------------ |
| sal_Int32 PropertyInfoService::getPropertyId(const ::rtl::OUString& _rName) |
| { |
| initialize(); |
| |
| PropertyAssignment aCompareName(_rName, -1); |
| |
| ::std::pair<PropertyMapIterator,PropertyMapIterator> aPair = equal_range( |
| s_AllKnownProperties.begin(), |
| s_AllKnownProperties.end(), |
| aCompareName, |
| PropertyAssignmentNameCompareLess()); |
| |
| sal_Int32 nHandle = -1; |
| if (aPair.first != aPair.second) |
| { // we found something _and_ we have an identity |
| nHandle = aPair.first->nHandle; |
| } |
| |
| return nHandle; |
| } |
| |
| //------------------------------------------------------------------ |
| sal_Int32 ConcreteInfoService::getPreferedPropertyId(const ::rtl::OUString& _rName) |
| { |
| return PropertyInfoService::getPropertyId(_rName); |
| } |
| |
| //------------------------------------------------------------------ |
| #define ADD_PROP_ASSIGNMENT(varname) \ |
| s_AllKnownProperties.push_back(PropertyAssignment(PROPERTY_##varname, PROPERTY_ID_##varname)) |
| //.................................................................. |
| void PropertyInfoService::initialize() |
| { |
| if (!s_AllKnownProperties.empty()) |
| return; |
| |
| s_AllKnownProperties.reserve(220); |
| |
| ADD_PROP_ASSIGNMENT(NAME); |
| ADD_PROP_ASSIGNMENT(TAG); |
| ADD_PROP_ASSIGNMENT(TABINDEX); |
| ADD_PROP_ASSIGNMENT(CLASSID); |
| ADD_PROP_ASSIGNMENT(ALIGN); |
| ADD_PROP_ASSIGNMENT(FETCHSIZE); |
| ADD_PROP_ASSIGNMENT(VALUE); |
| ADD_PROP_ASSIGNMENT(VALUEMIN); |
| ADD_PROP_ASSIGNMENT(VALUEMAX); |
| ADD_PROP_ASSIGNMENT(VALUESTEP); |
| ADD_PROP_ASSIGNMENT(TEXT); |
| ADD_PROP_ASSIGNMENT(LABEL); |
| ADD_PROP_ASSIGNMENT(NAVIGATION); |
| ADD_PROP_ASSIGNMENT(CYCLE); |
| ADD_PROP_ASSIGNMENT(CONTROLSOURCE); |
| ADD_PROP_ASSIGNMENT(ENABLED); |
| ADD_PROP_ASSIGNMENT(ENABLEVISIBLE); |
| ADD_PROP_ASSIGNMENT(SPIN); |
| ADD_PROP_ASSIGNMENT(READONLY); |
| ADD_PROP_ASSIGNMENT(FILTER); |
| ADD_PROP_ASSIGNMENT(WIDTH); |
| ADD_PROP_ASSIGNMENT(SEARCHABLE); |
| ADD_PROP_ASSIGNMENT(MULTILINE); |
| ADD_PROP_ASSIGNMENT(TARGET_URL); |
| ADD_PROP_ASSIGNMENT(DEFAULTCONTROL); |
| ADD_PROP_ASSIGNMENT(MAXTEXTLEN); |
| ADD_PROP_ASSIGNMENT(SIZE); |
| ADD_PROP_ASSIGNMENT(DATE); |
| ADD_PROP_ASSIGNMENT(TIME); |
| ADD_PROP_ASSIGNMENT(STATE); |
| ADD_PROP_ASSIGNMENT(TRISTATE); |
| ADD_PROP_ASSIGNMENT(HIDDEN_VALUE); |
| ADD_PROP_ASSIGNMENT(TARGET_FRAME); |
| ADD_PROP_ASSIGNMENT(BUTTONTYPE); |
| ADD_PROP_ASSIGNMENT(STRINGITEMLIST); |
| ADD_PROP_ASSIGNMENT(DEFAULT_TEXT); |
| ADD_PROP_ASSIGNMENT(DEFAULT_STATE); |
| ADD_PROP_ASSIGNMENT(DEFAULT_DATE); |
| ADD_PROP_ASSIGNMENT(DEFAULT_TIME); |
| ADD_PROP_ASSIGNMENT(DEFAULT_VALUE); |
| ADD_PROP_ASSIGNMENT(FORMATKEY); |
| ADD_PROP_ASSIGNMENT(FORMATSSUPPLIER); |
| ADD_PROP_ASSIGNMENT(SUBMIT_ACTION); |
| ADD_PROP_ASSIGNMENT(SUBMIT_TARGET); |
| ADD_PROP_ASSIGNMENT(SUBMIT_METHOD); |
| ADD_PROP_ASSIGNMENT(SUBMIT_ENCODING); |
| ADD_PROP_ASSIGNMENT(IMAGE_URL); |
| ADD_PROP_ASSIGNMENT(GRAPHIC); |
| ADD_PROP_ASSIGNMENT(EMPTY_IS_NULL); |
| ADD_PROP_ASSIGNMENT(LISTSOURCETYPE); |
| ADD_PROP_ASSIGNMENT(LISTSOURCE); |
| ADD_PROP_ASSIGNMENT(SELECT_SEQ); |
| ADD_PROP_ASSIGNMENT(VALUE_SEQ); |
| ADD_PROP_ASSIGNMENT(DEFAULT_SELECT_SEQ); |
| ADD_PROP_ASSIGNMENT(MULTISELECTION); |
| ADD_PROP_ASSIGNMENT(DECIMAL_ACCURACY); |
| ADD_PROP_ASSIGNMENT(EDITMASK); |
| ADD_PROP_ASSIGNMENT(ISREADONLY); |
| ADD_PROP_ASSIGNMENT(FIELDTYPE); |
| ADD_PROP_ASSIGNMENT(DECIMALS); |
| ADD_PROP_ASSIGNMENT(REFVALUE); |
| ADD_PROP_ASSIGNMENT(STRICTFORMAT); |
| ADD_PROP_ASSIGNMENT(DATASOURCE); |
| ADD_PROP_ASSIGNMENT(ALLOWADDITIONS); |
| ADD_PROP_ASSIGNMENT(ALLOWEDITS); |
| ADD_PROP_ASSIGNMENT(ALLOWDELETIONS); |
| ADD_PROP_ASSIGNMENT(MASTERFIELDS); |
| ADD_PROP_ASSIGNMENT(ISPASSTHROUGH); |
| ADD_PROP_ASSIGNMENT(QUERY); |
| ADD_PROP_ASSIGNMENT(LITERALMASK); |
| ADD_PROP_ASSIGNMENT(SHOWTHOUSANDSEP); |
| ADD_PROP_ASSIGNMENT(CURRENCYSYMBOL); |
| ADD_PROP_ASSIGNMENT(DATEFORMAT); |
| ADD_PROP_ASSIGNMENT(DATEMIN); |
| ADD_PROP_ASSIGNMENT(DATEMAX); |
| ADD_PROP_ASSIGNMENT(DATE_SHOW_CENTURY); |
| ADD_PROP_ASSIGNMENT(TIMEFORMAT); |
| ADD_PROP_ASSIGNMENT(TIMEMIN); |
| ADD_PROP_ASSIGNMENT(TIMEMAX); |
| ADD_PROP_ASSIGNMENT(LINECOUNT); |
| ADD_PROP_ASSIGNMENT(BOUNDCOLUMN); |
| ADD_PROP_ASSIGNMENT(HASNAVIGATION); |
| ADD_PROP_ASSIGNMENT(FONT); |
| ADD_PROP_ASSIGNMENT(BACKGROUNDCOLOR); |
| ADD_PROP_ASSIGNMENT(FILLCOLOR); |
| ADD_PROP_ASSIGNMENT(TEXTCOLOR); |
| ADD_PROP_ASSIGNMENT(LINECOLOR); |
| ADD_PROP_ASSIGNMENT(BORDER); |
| ADD_PROP_ASSIGNMENT(DROPDOWN); |
| ADD_PROP_ASSIGNMENT(HSCROLL); |
| ADD_PROP_ASSIGNMENT(VSCROLL); |
| ADD_PROP_ASSIGNMENT(TABSTOP); |
| ADD_PROP_ASSIGNMENT(AUTOCOMPLETE); |
| ADD_PROP_ASSIGNMENT(HARDLINEBREAKS); |
| ADD_PROP_ASSIGNMENT(PRINTABLE); |
| ADD_PROP_ASSIGNMENT(ECHO_CHAR); |
| ADD_PROP_ASSIGNMENT(ROWHEIGHT); |
| ADD_PROP_ASSIGNMENT(HELPTEXT); |
| ADD_PROP_ASSIGNMENT(FONT_NAME); |
| ADD_PROP_ASSIGNMENT(FONT_STYLENAME); |
| ADD_PROP_ASSIGNMENT(FONT_FAMILY); |
| ADD_PROP_ASSIGNMENT(FONT_CHARSET); |
| ADD_PROP_ASSIGNMENT(FONT_HEIGHT); |
| ADD_PROP_ASSIGNMENT(FONT_WEIGHT); |
| ADD_PROP_ASSIGNMENT(FONT_SLANT); |
| ADD_PROP_ASSIGNMENT(FONT_UNDERLINE); |
| ADD_PROP_ASSIGNMENT(FONT_WORDLINEMODE); |
| ADD_PROP_ASSIGNMENT(FONT_STRIKEOUT); |
| ADD_PROP_ASSIGNMENT(TEXTLINECOLOR); |
| ADD_PROP_ASSIGNMENT(FONTEMPHASISMARK); |
| ADD_PROP_ASSIGNMENT(FONTRELIEF); |
| ADD_PROP_ASSIGNMENT(HELPURL); |
| ADD_PROP_ASSIGNMENT(RECORDMARKER); |
| ADD_PROP_ASSIGNMENT(BOUNDFIELD); |
| ADD_PROP_ASSIGNMENT(INPUT_REQUIRED); |
| ADD_PROP_ASSIGNMENT(TREATASNUMERIC); |
| ADD_PROP_ASSIGNMENT(EFFECTIVE_VALUE); |
| ADD_PROP_ASSIGNMENT(EFFECTIVE_DEFAULT); |
| ADD_PROP_ASSIGNMENT(EFFECTIVE_MIN); |
| ADD_PROP_ASSIGNMENT(EFFECTIVE_MAX); |
| ADD_PROP_ASSIGNMENT(HIDDEN); |
| ADD_PROP_ASSIGNMENT(FILTERPROPOSAL); |
| ADD_PROP_ASSIGNMENT(FIELDSOURCE); |
| ADD_PROP_ASSIGNMENT(TABLENAME); |
| ADD_PROP_ASSIGNMENT(CONTROLLABEL); |
| ADD_PROP_ASSIGNMENT(CURRSYM_POSITION); |
| ADD_PROP_ASSIGNMENT(CURSORCOLOR); |
| ADD_PROP_ASSIGNMENT(ALWAYSSHOWCURSOR); |
| ADD_PROP_ASSIGNMENT(DISPLAYSYNCHRON); |
| ADD_PROP_ASSIGNMENT(ISMODIFIED); |
| ADD_PROP_ASSIGNMENT(ISNEW); |
| ADD_PROP_ASSIGNMENT(PRIVILEGES); |
| ADD_PROP_ASSIGNMENT(DETAILFIELDS); |
| ADD_PROP_ASSIGNMENT(COMMAND); |
| ADD_PROP_ASSIGNMENT(COMMANDTYPE); |
| ADD_PROP_ASSIGNMENT(RESULTSET_CONCURRENCY); |
| ADD_PROP_ASSIGNMENT(INSERTONLY); |
| ADD_PROP_ASSIGNMENT(RESULTSET_TYPE); |
| ADD_PROP_ASSIGNMENT(ESCAPE_PROCESSING); |
| ADD_PROP_ASSIGNMENT(APPLYFILTER); |
| ADD_PROP_ASSIGNMENT(ISNULLABLE); |
| ADD_PROP_ASSIGNMENT(ACTIVECOMMAND); |
| ADD_PROP_ASSIGNMENT(ISCURRENCY); |
| ADD_PROP_ASSIGNMENT(URL); |
| ADD_PROP_ASSIGNMENT(TITLE); |
| ADD_PROP_ASSIGNMENT(ACTIVE_CONNECTION); |
| ADD_PROP_ASSIGNMENT(SCALE); |
| ADD_PROP_ASSIGNMENT(SORT); |
| ADD_PROP_ASSIGNMENT(PERSISTENCE_MAXTEXTLENGTH); |
| ADD_PROP_ASSIGNMENT(SCROLL_VALUE); |
| ADD_PROP_ASSIGNMENT(SPIN_VALUE); |
| ADD_PROP_ASSIGNMENT(DEFAULT_SCROLL_VALUE); |
| ADD_PROP_ASSIGNMENT(DEFAULT_SPIN_VALUE); |
| ADD_PROP_ASSIGNMENT( WRITING_MODE ); |
| ADD_PROP_ASSIGNMENT( CONTEXT_WRITING_MODE ); |
| |
| // now sort the array by name |
| |
| std::sort( |
| s_AllKnownProperties.begin(), |
| s_AllKnownProperties.end(), |
| PropertyAssignmentNameCompareLess() |
| ); |
| } |
| |
| //......................................................................... |
| } |
| //... namespace frm ....................................................... |
| |