'encoding UTF-8 Do not remove or change this line! '************************************************************** ' ' 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. ' '************************************************************** '* '* short description : Tools for working with the property browser for formcontrols '* '\****************************************************************************** function hOpenPropertyBrowser() as boolean '///

Open the BASIC property browser

const CFN = "framework::tools::includes::pbrowser_tools.inc::hOpenPropertyBrowser(): " kontext "ControlPropertiesTabControl" if ( ControlPropertiesTabControl.exists() ) then printlog( "Property Browser is already open, no action taken" ) hOpenPropertyBrowser() = true else if ( hUseAsyncSlot( "ContextProperties" ) <> -1 ) then kontext "ControlPropertiesTabControl" if ( ControlPropertiesTabControl.exists( 2 ) ) then ControlPropertiesTabControl.setPage( TabGeneralControl ) hOpenPropertyBrowser() = true else warnlog( CFN & "Dialog is not available" ) hOpenPropertyBrowser() = false endif else warnlog( CFN & "Could not execute slot" ) hOpenPropertyBrowser() = false endif endif end function '******************************************************************************* function hClosePropertyBrowser() as boolean const CFN = "framework::tools::includes::pbrowser_tools.inc::hClosePropertyBrowser(): " printlog( "Closing Property-Browser (if open)" ) kontext "ControlPropertiesTabControl" if ( ControlPropertiesTabControl.exists() ) then hUseAsyncSlot( "ContextProperties" ) if ( ControlPropertiesTabControl.notExists( 2 ) ) then hClosePropertyBrowser() = true else warnlog( CFN & "Failed to close dialog" ) hClosePropertyBrowser() = false endif else printlog( "Property browser is not open, no action taken." ) hClosePropertyBrowser() = true endif end function '******************************************************************************* function hPBSetControlName( cControl as string ) as boolean '///

Name a control, with limited errorhandling

'///This function was introduced due to a problem with the property- '///browser not being open fast enough or just refusing to accept input

'///Input: '///
    '///+
  1. Text to be inserted in the control "NameText" (string)
  2. '///
'///Returns: '///
    '///+
  1. Errorcondition
  2. '///
      '///+
    • TRUE: The control name was successfully updated
    • '///+
    • FALSE: Control is not visible within current context
    • '///
    '///
const CFN = "hPBSetControlName::" '///Description: '/// end function '******************************************************************************* function hPBGetControlName( cControl as string ) as boolean '///

Verify that the expected control is open

'///Use hPBSetControlName( string ) to set the name and when you reopen it '///+ verify that you got the right control wit this function

'///Input: '///
    '///+
  1. Name of the control (string)
  2. '///
'///Returns: '///
    '///+
  1. Errorcondition (boolean)
  2. '///
      '///+
    • TRUE: The control has the correct name
    • '///+
    • FALSE: Any other condition
    • '///
    '///
'///Description: '/// end function '******************************************************************************* function hSetPBTabPage( iPage as integer ) as boolean '///

A small helper to switch between tabpages in the property-browser

'///Input: '///
    '///+
  1. Page-ID (integer)
  2. '///
      '///+
    • 1 = General page
    • '///+
    • 2 = Events page
    • '///
    '///
'///Returns: '///
    '///+
  1. Errorcondition (boolean)
  2. '///
      '///+
    • TRUE on success
    • '///+
    • FALSE on any error
    • '///
    '///
'///Description: '/// end function '******************************************************************************* function hDeleteEntryFieldContent( oControl as object ) as boolean printlog( "Original name is: " & oControl.getText() ) oControl.typeKeys( "" ) oControl.typeKeys( "" ) oControl.typeKeys( "" ) if ( oControl.getText() = "" ) then hDeleteEntryFieldContent() = true else hDeleteEntryFieldContent() = false endif end function