Uzyskiwanie informacji od użytkownika za pomocą okna InputDialog

W sytuacji, gdy jest konieczne uzyskanie dodatkowych informacji od użytkownika skryptu, można posłużyć się klasą InputDialog języka Java.

Aby móc korzystać z klasy InputDialog, należy załączyć bibliotekę InputDialog języka Java z biz.sc.gornik.script.

Obiekt InputDialog jest tworzony w zwykły sposób. Parametrem dla konstruktora jest nazwa okna dialogowego.

Obiekt InputDialog ma następujące metody:

add(text, default, type, required)

Dodaje element do wprowadzania danych do okna dialogowego. Elementy są indeksowane od 0. Tylko pierwszy argument jest obowiązkowy.

  • text - tekst, który będzie wyświetlony po lewej stronie elementu.

  • default - wartość domyślna wyświetlana w elemencie; może to być liczba, tekst lub lista. W ostatnim przypadku użytkownik będzie miał możliwość wyboru elementu z listy jak i wprowadzenia własnych danych.

  • type - określa typ zwracanej zmiennej:

    • InputDialog.STRING - literał łańcuchowy (default).

    • InputDialog.INT - liczba całkowita.

    • InputDialog.FLOAT - liczba zmiennoprzecinkowa.

    • InputDialog.BOOL - wyświetlane jest pole do zaznaczenia i zwracana jest wartość 0 (brak zaznaczenia) lub 1 (pole zaznaczone).

    • InputDialog.PATH - pozwala na wybranie ścieżki do pliku lub katalogu i zwraca literał łańcuchowy zawierający tą ścieżkę.

      Notatka

      Aby wartością domyślną takiego pola był katalog domowy użytkownika należy podać
      java.lang.System.getProperty('user.home')
                                              
      jako drugi argument funkcji add.
  • required - jeśli 1, użytkownik musi wprowadzić dane do tego pola. Domyślna wartość 0 oznacza, że pole może pozostać nie wypełnione.

get(index)
or
get(text)

Zwraca wartość wprowadzoną przez użytkownika do pola o nazwie text lub indeksie index.

setDescription(description)

Wyświetla podany tekst description jako opis okna dialogowego.

showDialog()

Wyświetla okno dialogowe na ekranie, dając użytkownikowi możliwość wprowadzenia danych.

wasCanceled()

Zwraca 1 jeżeli użytkownik zamknął okno dialogowe klikając przycisk Cancel i 0 jeżeli kliknął przycisk Run.

Przykład 2.33. Proste okno dialogowe

from biz.sc.gornik.script import InputDialog

i = InputDialog('Example input dialog', 0)
i.setDescription('This is a simple input dialog')

i.add('Text input:', 'Default text', 1)  #input in this field is mandatory
i.add('Combo box:', [1.0, 1.2, 1.4, 1.6], InputDialog.FLOAT)

i.showDialog()

if not i.wasCanceled():
    print i.get(0), i.get('Combo box:')
else:
    print 'Script aborted'
    

Przykładowy rezultat:

Default text 1.4
    

Rysunek 2.1. Proste okno dialogowe

Proste okno dialogowe

Przykład 2.34. Okno dialogowe z polem do zaznaczenia i wyborem ścieżki

from biz.sc.gornik.script import InputDialog

i = InputDialog('Example input dialog', 0)
i.setDescription('Select the check-box and enter path ...')

i.add('Check box:', 0, InputDialog.BOOL)
i.add('Directory:', java.lang.System.getProperty('user.home'), InputDialog.PATH)

i.showDialog()

if not i.wasCanceled():
    print i.get(0)
    print i.get(1)
else:
    print 'Script aborted'
    

Przykładowy rezultat:

1
C:\Program Files\AdvancedMiner
    

Rysunek 2.2. Okno dialogowe z polem do zaznaczenia i wyborem ścieżki

Okno dialogowe z polem do zaznaczenia i wyborem ścieżki