logical OCBitmap :: Read (PropertyHandle *ph )
{
  PropertyHandle         *bm;
  logical                 term = NO;
  OResource::Read(ph);
/* Bitmaps selbst können nicht in den Cache geschrieben werden
   da es attributes in ADK_Bitmap sind
  active   = CACHE_READ(ph, "aktiv_bitmap",   OBitmap);
  inactive = CACHE_READ(ph, "inaktiv_bitmap", OBitmap);
  disabled = CACHE_READ(ph, "disabled_bitmap", OBitmap);
*/
  bm     = PHREF(ph->GPH("aktiv_bitmap") );
  if ( !bm->GPH("path")->IsEmpty() )
  {
    active = ADKFACTORY(bm,OBitmap);  
    active->Read(bm);
  }

  bm       = PHREF(ph->GPH("inaktiv_bitmap") );
  if ( !bm->GPH("path")->IsEmpty() )
  {
    inactive = ADKFACTORY(bm,OBitmap);  
    inactive->Read(bm);
  }
  
  bm       = PHREF(ph->GPH("disabled_bitmap") );
  if ( !bm->GPH("path")->IsEmpty() )
  {
    disabled = ADKFACTORY(bm,OBitmap);  
    disabled->Read(bm);
  }
  return(term);
}
示例#2
0
logical sNotiz :: DBStored ( )
{
  PropertyHandle   *ph      = GetPropertyHandle();
  logical           del_opt = UNDEF;
BEGINSEQ
  if ( !ph->IsServer() )                            LEAVESEQ
  if ( !UserState1() )                              LEAVESEQ
  SetUserState1(NO);
  
  del_opt = ph->GPH("wiedervorlage")->IsEmpty();
  
  PropertyHandle   notizen_wv(ph->GetDBHandle(),"NotizWiedervorlage",PI_Write);
                                                    SDBCERR
  if ( notizen_wv.Get(ph->ExtractKey()) )
  {
    if ( !del_opt )                                 LEAVESEQ
    notizen_wv.Delete();
  }
  else
  {
    if ( del_opt )                                  LEAVESEQ
    notizen_wv.AddReference(*ph);
  }
RECOVER

ENDSEQ
  return(NO);
}
logical pc_TopicFromOldStyle :: Setup_SDB_Resource (PropertyHandle *prophdl )
{
  PropertyHandle   *resource_ref      = GPH("resource_ref");
  PropertyHandle   *description       = resource_ref->GPH("description");
  PropertyHandle   *srce_description  = NULL;
  int32             empty_num         = 0;
  int               repl_opt          = TestSysVariable("REPLACE_DESCRIPTIONS","YES") ? YES :
                                        TestSysVariable("REPLACE_DESCRIPTIONS","NO")  ? NO  : AUTO;
  logical           term              = NO;
BEGINSEQ
  if ( !(srce_description = Check(prophdl)) )        ERROR
    
  if ( !resource_ref->Get(FIRST_INSTANCE) )
    resource_ref->Add(Key((char *)&empty_num));
  
  if ( description->Get(FIRST_INSTANCE) )
  {
    if ( *description == *srce_description )         LEAVESEQ
    if ( repl_opt == NO ||
         (repl_opt == AUTO && !SDBError().GetDecision(992,GPH("sys_ident")->GetString(),"different despription topic does already exist in structure/implementation.\nOverwrite from old style desctiption? ")) )
                                                     LEAVESEQ
    description->Delete();
  }
  
  *description = *srce_description;
RECOVER
  term = YES;
ENDSEQ
  return(term);
}
logical pc_TopicFromOldStyle :: Setup_ODC_PFunction (PropertyHandle *prophdl )
{
  PropertyHandle  *imp_parms   = prophdl->GPH("imp_parms");
  PropertyHandle  *retval      = prophdl->GPH("retval");
  PropertyHandle  *retval_name = GPH("retval_name");
  int32            indx0       = 0;
  logical          term        = NO;
BEGINSEQ
  if ( Setup_SDB_Resource(prophdl) )                 ERROR
  *GPH("action") = *prophdl->GPH("action");
  
  pc_TopicFromOldStyle  implementations(GPH("implementations"));
  while ( implementations.Get(indx0++) )
    if ( imp_parms->Get(implementations.ExtractKey()) )
      implementations.Setup_ODC_FunctImp(imp_parms);

  if ( *retval_name->GetString()     &&
        retval->Get(FIRST_INSTANCE)  &&
       *retval_name == *retval->GPH("sys_ident") )
  {
    PropertyHandle       var_ph(GetDBHandle(),"ODC_Variable",PI_Write);
    pc_TopicFromOldStyle variables(&var_ph);
    if ( variables.Get(*retval_name) )
      variables.Setup_SDB_Resource(retval);
  }

  Save();
RECOVER
  term = YES;
ENDSEQ
  return(term);
}
char *pc_ODC_Variable :: DataTypeCString (NString &nstring )
{
  PropertyHandle   *ddetype   = GPH("ddetype");
  char             *save_type = NULL;
  logical           term      = NO;
BEGINSEQ
  if ( GPH("const_val")->IsTrue() )
  {
    nstring += "const";
    nstring.Append(' ');
  }

  if ( TestSysVariable("C_INTERFACE","Y") )
  {
    PropertyHandle   inst_coll(GetDBHandle(),"InstCollection",PI_Read);
                                                    SDBCERR
	PropertyHandle phCInterface("CInterface");
    if ( !inst_coll(phCInterface) ) SDBERR(99)

    if ( inst_coll.GPH("collection")->Get(*ddetype) )
    {
      save_type = strdup(ddetype->GetString());
      ddetype->SetValue("void",NO);
    }
  } 
void ODragObject :: setData (ODS *pODS, QString qsText )
{
  QString                          dbpath,dictpath,s,xmlinstance;
  PropertyHandle                   *ph = NULL;
  int                               inst_id= 0;
  DatabaseHandle                   *dbh   = NULL;
  inst_id= pODS->InstGetObjID();
  ph = pODS->Handle();
  if(ph){
    ph->ExtractKey();
    dbh     = &ph->GetDBHandle();
    dbpath = SZ2QS(dbh->GetPath());
    dictpath = SZ2QS(dbh->GetDictionary().GetPath());
    pEncodedPropertyHandle = new PropertyHandle();
    pEncodedPropertyHandle->OpenHierarchy(ph); 
    pEncodedPropertyHandle->ExtractKey();
    ph->ExtractKey();
  }else{
    dbpath = SZ2QS("undefined");
    dbpath = SZ2QS("undefined");
    dbh    = NULL;
  }
  xmlinstance   = SZ2QS("<instance id=\"%i\" propertyhandle=\"%p\" applicationhandle=\"%p\" databasehandle=\"%p\" odragobject=\"%p\" databasepath=\"%s\" dictionarypath=\"%s\">\n%s\n</instance>");
  s.sprintf(QS2SZ(xmlinstance),inst_id,pEncodedPropertyHandle,QCoreApplication::instance(),dbh,this,QS2SZ(dbpath),QS2SZ(dictpath),QS2SZ(qsText));
  enc_xmlpropertyhandle.resize( s.length() );
  memcpy( enc_xmlpropertyhandle.data(), s.toLatin1(), s.length() );

  xmlinstance   = SZ2QS("%i\n%p\n%p\n%p\n%p\n%s\n%s");
  s.sprintf(QS2SZ(xmlinstance),inst_id,pEncodedPropertyHandle,QCoreApplication::instance(),dbh,this,QS2SZ(dbpath),QS2SZ(dictpath));
  enc_propertyhandle.resize( s.length() );
  memcpy( enc_propertyhandle.data(), s.toLatin1(), s.length() );



}
logical pc_ADK_FieldControl :: AddTabControl (int32 posx, int32 posy )
{
  pc_ADK_Field      fields(GPH("fields"));
  PropertyHandle   *my_class  = GPH("class");
  PropertyHandle   *member;
  PropertyHandle   *fc;
  logical           term = NO;
BEGINSEQ
  if ( !my_class->Get(FIRST_INSTANCE) )              ERROR
    
  pc_ADK_Class   new_class(*my_class);  
  if ( !(fc = new_class.ProvideDefaultTabControl()) ||
       !fc->Exist()  )                               ERROR
    
  if ( fields.NewField("tab",posx,posy) )            ERROR
  fields.SetupDataSource("*","DRT_PropertyPath",NO);
  fields.SetupFromFieldControl(fc);
  
  fields.GPH("class")->Add(new_class.ExtractKey()); CTXCERR
  fields.GPH("field_control")->Add(fc->ExtractKey());
                                                     CTXCERR
  fields.Save();                                     CTXCERR

  SetActionResult(fields.GPH("sys_ident")->GetString());

RECOVER
  SetActionResult("");
  term = YES;
ENDSEQ
  return(term);
}
logical cMainFunctionEdit :: ErrorLookup ( )
{
  CTX_Project        *proj_ctx        = GetProjectContext();
  PropertyHandle     *prophdl         = GetPropertyHandle();    
  NString             command;
  NBuffer             buffer;
  logical             term            = NO;
BEGINSEQ
  if ( !prophdl->GetInstanceContext() )             ERROR
  if ( prophdl->ExecuteInstanceAction("GetProjectPath","ERC_Batch") )
    SetupOutput("Error providing command path\n",NO);
  else
  {
    command = prophdl->GetActionResult();
    command += "ShowErrors.bat";
    command += ' ';
    command += prophdl->GetString("sys_ident");
    ExecuteCommand(command,buffer,YES,NO);
    SetupOutput(buffer,YES);
  }


RECOVER
  term = YES;
ENDSEQ
  return(term);
}
logical cMainFunctionEdit :: Link ( )
{
  CTX_Project        *proj_ctx        = GetProjectContext();
  PropertyHandle     *prophdl         = GetPropertyHandle();    
  NBuffer             comp_out;
  int32               curidx          = UNDEF;
  int32               rc              = ERIC;
  logical             reserve_project = YES;
  logical             term            = NO;
BEGINSEQ
//  if ( (curidx = StartClassAction(YES,reserve_project)) == ERIC) 
//                                                     ERROR
  SetupOutput("",YES);
  if ( Compile() )                                   ERROR
  SetupOutput("...Link executable ...\n",NO);
  
  if ( prophdl->ExecuteInstanceAction("GetLinkCommand",NULL) )
    SetupOutput("Error: providing link command\n",NO);
  else
  {
    rc = ExecuteCommand(prophdl->GetActionResult(),comp_out,YES,NO);
    SetupOutput(comp_out,NO);
  }


RECOVER
  term = YES;
ENDSEQ
//  StopClassAction(reserve_project,curidx);
  return(term);
}
示例#10
0
PassOwnPtr<Keyframe::PropertySpecificKeyframe> StringKeyframe::createPropertySpecificKeyframe(PropertyHandle property) const
{
    if (property.isCSSProperty())
        return adoptPtr(new CSSPropertySpecificKeyframe(offset(), &easing(), cssPropertyValue(property.cssProperty()), composite()));

    ASSERT(property.isSVGAttribute());
    return adoptPtr(new SVGPropertySpecificKeyframe(offset(), &easing(), svgPropertyValue(property.svgAttribute()), composite()));
}
示例#11
0
logical sAction :: DBOpened ( )
{
  PropertyHandle    *ph        = GetPropertyHandle();

  ph->GPH("versicherungsnehmer")->SetType("Person");

  return(NO);
}
logical pc0_ImportProtokoll :: CheckStatus (ImportStatus import_status )
{
  PropertyHandle   *status = GPH("status");

  return ( status->GetInt() == import_status ? YES : NO );


}
logical sSDB_Attribute :: SetDefaultsForSpecialType (DatabaseHandle &dbhandle, char *propnames, char *typenames )
{
  PropertyHandle    *prophdl = GetPropertyHandle();
  return ( ((SDB_Attribute *)prophdl->Get().GetData())->
              Fill(dbhandle,propnames,typenames)         );


}
示例#14
0
logical sNotiz :: DBInitialize ( )
{
  PropertyHandle   *ph   = GetPropertyHandle();
  dttm              datetime;
  datetime.SetCurrent();
  ph->GPH("datum")->SetValue(datetime,NO);

  return(NO);
}
int8 cClassCode :: DoAfterStoreData ( )
{
  PropertyHandle  *prophdl = GetPropertyHandle();
  cClassCodeBase::DoAfterStoreData();
  
  prophdl->GetParentProperty()->
    ExecuteInstanceAction("SetupCodeBlockOptions",NULL);

  return(NO);
}
logical pc_TopicFromOldStyle :: Setup_ODC_FunctImp (PropertyHandle *prophdl )
{
  PropertyHandle  *description = prophdl->GPH("description");
  logical          term        = NO;
  description->Get(FIRST_INSTANCE);
  Setup_SDB_Resource(description);
  
  pc_TopicFromOldStyle  parameters(GPH("parameters"));
  parameters.Setup_collection(prophdl->GPH("parm_description"));
  return(term);
}
logical pc_SDB_Relationship :: Check (ErrorProtocol *protocol, PropertyHandle *str_ph, PropertyHandle *cs_ph, PropertyHandle *ext_ph, logical base_opt )
{
  PropertyHandle  *ddetype  = GPH("ddetype");
  PropertyHandle  *ddeinv   = GPH("ddeinv");
  PropertyHandle  *ddeext   = GPH("ddeext");
  PropertyHandle  *ddesecr  = GPH("ddesecr");
  PropertyHandle  *str_rshp = NULL;
  PropertyHandle  *str_base = NULL;
  PropertyHandle  *inv_ph   = NULL;
  TypeKey          tkey;
  logical          term         = NO;
BEGINSEQ
  protocol->SetErrorVariable(2,GPH("sys_ident")->GetString(),0);

  term = pc_SDB_Reference::Check(protocol,str_ph,cs_ph,base_opt);
  GetTypeKey(tkey);

  if ( CheckExtend(protocol,str_ph,ext_ph,NULL) )
    term = YES;
    
  if ( !GPH("ddeext")->IsEmpty() )
    SetProperty("owning","N",protocol,"required when base extent");
  
  if ( !ddeinv->IsEmpty() )
  {
    if ( !str_ph->Get(tkey.GetKey()) )
    {
      if ( !term )
        protocol->Write(140,0);
      ERROR
    } 
    if ( GPH("week_typed")->IsTrue() && *ddetype == *GetParentProperty()->GPH("sys_ident") )
                                                     LEAVESEQ
    str_rshp = str_ph->GPH("smcershp");
    str_base = str_ph->GPH("smcebase");
    
    if ( str_rshp->Get(*ddeinv) )
      inv_ph = str_rshp;
    else
    {
      if ( !str_base->Get(*ddeinv) )
      {
        protocol->Write(191,0,NULL,NULL,GetScopedType(),ddeinv->GetString());
        ERROR
      }
      else if ( base_opt )
      {
        protocol->Write(195,0,NULL,NULL,GetScopedType(),ddeinv->GetString());
        ERROR
      }
      inv_ph = str_base;
    }
示例#18
0
char *pc_Action :: CalculateBetreffAusgangsNotiz (NString &nstring )
{
  PropertyHandle    *versicherungsnehmer = GPH("versicherungsnehmer");
  nstring  = "";
  nstring.Append("Transparent ");
  GetIdentString(nstring,YES,NO);
  nstring.Append(", ");
  
  versicherungsnehmer->Get(FIRST_INSTANCE);
  pc_Actor(versicherungsnehmer).GetIdentString(nstring,YES,NO);

  return(nstring);
}
logical cClassCodeBase :: GetClassName ( )
{
  PropertyHandle   *prophdl = GetPropertyHandle();
  logical           term    = NO;
BEGINSEQ
  if ( !(prophdl = prophdl->GetParentProperty()->GetParentProperty()->GetParentProperty()) )
                                                     ERROR
  SetResult(prophdl->GPH("sys_ident")->GetString());
RECOVER
  SetResult("");
  term = YES;
ENDSEQ
  return(term);
}
logical pc_ODC_FunctImp :: InitializeImplementations (PropertyHandle *source_ph )
{
  PropertyHandle *parms        = GPH("parameters");
  PropertyHandle *source_parms = source_ph->GPH("parameters");
  PropertyHandle *start_code   = GPH("start_code");
  PropertyHandle *error_code   = GPH("error_code");
  PropertyHandle *term_code    = GPH("term_code");
  PropertyHandle *memb_ph      = GetParentProperty()->GPH("SDB_Member");
  PropertyHandle *retval_name  = GetParentProperty()->GPH("retval_name");
  PropertyHandle *ddeinit      = GetParentProperty()->GPH("ddeinit");
  PropertyHandle *errorcase    = GetParentProperty()->GPH("errorcase");
  PropertyHandle  ret_ph;
  int32           indx0        = 0;
  std::string     data("");
  logical         term         = NO;
  while ( source_ph->Get(indx0++) )
  {
    Provide(source_ph->ExtractSortKey());
    parms->CopySet(*source_parms);
    
    if ( *retval_name->GetString() > ' ' )
    {
      data = "  ";
      if ( !memb_ph->ExecuteInstanceAction("DataTypeCString",NULL) )
      {
        data.append(memb_ph->GetActionResult());
        data.append("   ");
      }
      data.append(retval_name->GetString());
      if ( *ddeinit->GetString() > ' ' )
      {
        data.append(" = ");
        data.append(ddeinit->GetString());
      }
      data.append(";");
      *start_code = (char *)data.c_str();
      
      if ( *errorcase->GetString() > ' ' )
      {
        data = "  ";
        data.append(retval_name->GetString());
        data.append(" = ");
        data.append(errorcase->GetString());
        data.append(";");
        *error_code = (char *)data.c_str();
      }

      data = "  ";
      data.append("return(");
      data.append(retval_name->GetString());
      data.append(");");
      *term_code = (char *)data.c_str();
    }    
    
    Save();    
  }

  return(term);
}
logical sODS_Description :: SetupResRef ( )
{
  PropertyHandle         *ph = GPH("resource_ref");
  logical                 term = NO;
BEGINSEQ
  if ( !ph )                                         ERROR

  if ( ph->Get(FIRST_INSTANCE) )                     LEAVESEQ

  ph->Add(0);
  ph->GPH("description")->Provide(0);
RECOVER
  term = YES;
ENDSEQ
  return(term);
}
                        EventProxy :: EventProxy (PropertyHandle &sender_ph, PropertyHandle &receiver_ph )
                     :   EventHandler(sender_ph)
{

  if ( receiver_ph.IsValid() )
    receiver = &receiver_ph;

}
示例#23
0
PassRefPtr<Interpolation>
AnimatableValueKeyframe::PropertySpecificKeyframe::createInterpolation(
    PropertyHandle property,
    const Keyframe::PropertySpecificKeyframe& end) const {
  return LegacyStyleInterpolation::create(
      value(), toAnimatableValuePropertySpecificKeyframe(end).value(),
      property.cssProperty());
}
logical cClassCodeInit :: SetupInitCode ( )
{
  PropertyHandle  *prophdl = GetPropertyHandle();    
  PropertyHandle  *fcti_ph = prophdl->GetParentProperty();
  logical          term    = NO;
BEGINSEQ
  ExecuteAction("StoreEntry",ACT_Function);
  fcti_ph->Save();
  if ( prophdl->NoWrite() )                          ERROR
  
  fcti_ph->ExecuteInstanceAction("SetupInitCode","NO");

RECOVER
  term = YES;
ENDSEQ
  return(term);
}
logical sODC_Project :: SetupReferences ( )
{
  PropertyHandle   *ph   = GetPropertyHandle();
  logical           term = NO;
BEGINSEQ
  if ( !ph->IsServer() )                             LEAVESEQ
  if ( ph->NoWrite() )                               ERROR
    
  pc_ODC_Project    project_pc(ph);
  project_pc.SetupReferences();

  ph->Save();                                        SDBCERR

RECOVER
  term = YES;
ENDSEQ
  return(term);
}
logical pc0_ImportProtokoll :: SetStatus (ImportStatus import_status, logical reset_opt )
{
  PropertyHandle   *status = GPH("status");
  logical           term   = NO;
BEGINSEQ
  if ( NoWrite() )                                  ERROR
  
  if ( !reset_opt )
    if ( status->GetInt() > import_status )         LEAVESEQ
    
  *status = import_status;
  Save();

RECOVER
  term = YES;
ENDSEQ
  return(term);
}
MethodTypes pc_ODC_FunctImp :: GetImplementationType (CTX_GUIBase *ctxptr, logical setup_opt )
{
  PropertyHandle  *parent  = GetParentProperty();
  MethodTypes      imptype = MT_Undefined;
BEGINSEQ
  if ( !parent )                                    ERROR
  if ( !parent->IsA("ODC_PFunction") )              ERROR  

  pc_ODC_PFunction   pfunct_pc(parent);
  imptype = pfunct_pc.GetImplementationType(ctxptr,setup_opt);



RECOVER

ENDSEQ
  return(imptype);
}
logical pc0_HausratVS :: ImportResult (PropertyHandle *source_ph, TP_ImportGlobals *imp_globals )
{
  pc0_Leistung    leistungenO(GPH("leistungenO"));
  pc0_Leistung    leistungenI(GPH("leistungenI"));
  pc0_Leistung    leistungenD(GPH("leistungenD"));
  PropertyHandle *versicherungsnehmer = GPH("versicherungsnehmer");
  logical         term                = NO;
BEGINSEQ
  if ( pc0Base_VS::ImportResult(source_ph,imp_globals) ) 
                                                    ERROR
                                                    
  *GPH("versicherungssumme") = *source_ph->GPH("Deckungssumme");
  *GPH("wohnobject_plz")     = *source_ph->GPH("Plz");
  *GPH("wohnobject_typ")     = source_ph->GPH("WohnobjectTyp_ID")->GetInt();

  leistungenO.Import("Unterversicherungsverzicht",source_ph->GPH("Unterversicherungsverzicht"),imp_globals);
  leistungenO.Import("ElementarSchaeden"         ,source_ph->GPH("ElementarSchaeden"),imp_globals);
  leistungenO.Import("Glaskeramik"               ,source_ph->GPH("Glaskeramik"),imp_globals);
  leistungenO.Import("Spezialrisiken"            ,source_ph->GPH("Spezialrisiken"),imp_globals);

  leistungenI.Import("Wohnflaeche"               ,source_ph->GPH("QmWohnflaeche"),imp_globals);
  leistungenI.Import("Glasflaeche"               ,source_ph->GPH("QmGlasflaeche"),imp_globals);
  leistungenI.Import("Wertsachen"                ,source_ph->GPH("Wertsachen"),imp_globals);
  leistungenI.Import("Wasseraustritt"            ,source_ph->GPH("Wasseraustritt"),imp_globals);
  leistungenI.Import("Implosion"                 ,source_ph->GPH("Implosion"),imp_globals);
  leistungenI.Import("Nutzwaermeschaeden"        ,source_ph->GPH("Nutzwaermeschaeden"),imp_globals);
  leistungenI.Import("Lagerkosten"               ,source_ph->GPH("Lagerkosten"),imp_globals);
  leistungenI.Import("GewerblicheSachen"         ,source_ph->GPH("GewerblicheSachen"),imp_globals);
  leistungenI.Import("Gartenmoebel"              ,source_ph->GPH("Gartenmoebel"),imp_globals);
  leistungenI.Import("DiebstahlAUSPkw"           ,source_ph->GPH("DiebstahlAUSPkw"),imp_globals);
  leistungenI.Import("Bankschliessfaecher"       ,source_ph->GPH("Bankschliessfaecher"),imp_globals);
  leistungenI.Import("Aussenversicherung"        ,source_ph->GPH("Aussenversicherung"),imp_globals);

  leistungenD.Import("Selbstbehalt"              ,source_ph->GPH("Selbstbehalt"),imp_globals);
  leistungenD.Import("Fahrraeder"                ,source_ph->GPH("Fahrraeder"),imp_globals);
  leistungenD.Import("Ueberspannung"             ,source_ph->GPH("Ueberspannung"),imp_globals);

  if ( versicherungsnehmer->Get(FIRST_INSTANCE) )
    pc0_Arbeit(versicherungsnehmer->GPH("job")).ImportOD(source_ph->GPH("OD"),imp_globals);
RECOVER
  term = YES;
ENDSEQ
  return(term);
}
logical sODC_Project :: GetProjectPath ( )
{
  PropertyHandle   *ph   = GetPropertyHandle();
  NString           nstring;
  logical           term = NO;
BEGINSEQ
  SetResult("");   
  
  if ( !ph->IsSelected() )                           ERROR
  if ( !ph->IsPositioned() )
    if ( !ph->Get().GetData() )                      ERROR

  pc_ODC_Project    project_pc(ph);
  SetResult(project_pc.GetProjectPath(nstring,Parm(1)));
RECOVER
  term = YES;
ENDSEQ
  return(term);
}
int8 cLanguageDependend :: DoBeforeFillData ( )
{
  CTX_Control     *ctx_lang = GetControlContext("language");
  PropertyHandle  *prophdl  = GetPropertyHandle();
  char             language[33];
BEGINSEQ
  if ( !ctx_lang )                                   LEAVESEQ
  
//  if ( prophdl->Exist() )
  if ( prophdl->IsSelected() )
    strcpy(language,prophdl->GPH("language")->GetString());
  else
    strcpy(language,"undefined");  
    
  ctx_lang->SearchKey(language);

ENDSEQ
  return(NO);
}