Source

vlocity-vinstall-gambas / src / _SettingsKeys.class

' Gambas class file
' This file is part of vinstall-ng.
'     Copyright (c) 2007 - The Vectorlinux Team - See AUTHORS
' 
'     vinstall-ng is free software: you can redistribute it and/or modify
'     it under the terms of the GNU General Public License as published by
'     the Free Software Foundation, either version 3 of the License.
' 
'     vinstall-ng is distributed in the hope that it will be useful,
'     but WITHOUT ANY WARRANTY; without even the implied warranty of
'     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
'     GNU General Public License for more details.
' 
'     You should have received a copy of the GNU General Public License
'     along with vinstall-ng.  If not, see <http://www.gnu.org/licenses/>.
'     THIS FILE WAS CONTRIBUTED BY THE MEMEBERS OF THE GAMBAS DEVELOPMENT TEAM


EXPORT
CREATE STATIC

PUBLIC _Slot AS Collection
PUBLIC _Parent AS String

PRIVATE $aKeys AS String[]

PUBLIC SUB _get(Parent AS String) AS _SettingsKeys
  
  _Parent &/= Parent
  RETURN _SettingsKeys
  
END

PUBLIC SUB _next() AS String
  
  DIM vVal AS Variant
  DIM cCol AS Collection
  DIM sKey AS String
  
  IF IsNull(Enum.Index) THEN
    IF _Parent THEN
      TRY cCol = _Slot[_Parent]
    ELSE
      cCol = _Slot
    ENDIF
    IF NOT cCol THEN 
      Enum.Stop
      RETURN
    ENDIF
    $aKeys = NEW String[]
    FOR EACH vVal IN cCol
      $aKeys.Add(cCol.Key)
    NEXT
    $aKeys.Sort
    Enum.Index = 0
  ENDIF
  
  IF Enum.Index >= $aKeys.Count THEN
    Enum.Stop
  ELSE
    sKey = $aKeys[Enum.Index]
    INC Enum.Index
    RETURN sKey
  ENDIF
  
END