
Public Class ListChoice
  Implements MultiChoice

  Private stocks As ArrayList
  Private pnl As Panel
  Private lst As ListBox
  '--------
  'Tworzy panel
  'Zawierający listę wielokrotnego wyboru
  Public Sub New(ByVal stks As Equities)
    MyBase.New()
    stocks = stks.getNames 'Pobierz nazwy
    pnl = New Panel()
    'Utwórz listę
    lst = New ListBox()
    lst.Location = New Point(16, 0)
    lst.Size = New Size(120, 160)
    lst.SelectionMode = _
          SelectionMode.MultiExtended
    lst.TabIndex = 0
    'Dodaj ją do panela
    pnl.Controls.Add(lst)
    'Umieść nazwy na liście
    Dim i As Integer
    For i = 0 To stks.count - 1
      lst.Items.Add(stocks(i))
    Next i
  End Sub
  '--------
  'Zwraca wybrane pozycje
  Public Function getSelected() As ArrayList _
           Implements MultiChoice.getSelected
    Dim i As Integer
    Dim item As String
    Dim arl As New ArrayList()

    'Pobierz pozycje i umieść w tablicy
    For i = 0 To lst.SelectedIndices.Count - 1
      item = lst.Items( _
          lst.SelectedIndices(i)).ToString
      arl.Add(item)
    Next i
    Return arl    'Zwróć tablicę ArrayList
  End Function
  '--------
  'Kasuj wybór
  Public Sub clear() Implements MultiChoice.clear
    lst.Items.Clear()
  End Sub
  '--------
  'Zwróć utworzony panel
  Public Function getWindow() As Panel _
          Implements MultiChoice.getWindow
    Return pnl
  End Function

End Class
