QBS >> Elementy standardowe >> QN-StatusBar - ogólnie >> QN-StatusBar - inform

QN-StatusBar

Materiały dla informatyków

Wprowadzenie

Klocek opisuje pasek stanu aplikacji. Pasek ten z założenia jest cały czas widoczny dla użytkownika. Mogą być w nim wypisane zarówno informacje bezkontekstowe, takie jak data, godzina, zalogowana osoba, filia, jak i informacje kontekstowe: np. opis pomocniczy dla obcenie realizowanie akcji. Zawartość zorganizowana jest w bufory umieszczone kolejno na pasku i zarządzane z poziomu aplikacji. W szczególności mogą być uaktualnione co ustalony kwant czasu lub przy zajściu określonych zdarzeń w aplikacji. Sama definicja buforów paska stanu znajduje w plikach konfiguracyjnych jako blok typu TAB.

Zdefiniowanie paska stanu w aplikacji

Pasek stanu aplikacji jest określany zarówno na poziomie plików konfiguracyjnych, jak kodu aplikacji. Aplikacja może mieć tylko jeden pasek stanu i oparty on jest na bloku TAB.

TAB STATUS_BAR
{
ID           LEN      HELP;
MEETING       50      "Najbliższa sprawa"  ATTRIB=(RESIZABLE);
DATE          8       "Aktualna data"      MASK=DATE  EDILEN=10;
TIME          8       "Aktualny czas"      MASK=TIME("hh:mm")  EDILEN=9;
}

Znaczenie kolumn:

Blok definiuje podstawowe cechy buforów, które decydują cześciowo o wyglądzie i zachowaniu paska, a częściowo wykorzystywane są przez funkcje w kodzie. Bufor może być wyświetlany na dwa sposoby. Domyślnie jest polem o ustalonej długości. Długość pola zależy w pierwszej kolejności od pola EDILEN, a w przypadku jego braku od pola LEN. Drugi sposób to pole rozszerzające się, wypełniające resztę wolnej przestrzeni zostawioną przez pola o ustawonej długości, takie pole musi mieć podany atrybut RESIZABLE. Łańcuch pomocniczy pojawia się po najechaniu przez użytkownika kursorem myszy na bufor paska (zwykle określa od czego bufor służy).
Zauważmy że nie jest podawany typ pól. Faktyczne przypisanie parametrów do buforów następuje już w kodzie aplikacji. Pole MASK wpływa na ostateczny format łancuchów wyświetlanych w buforach. Ma charakter pomocniczy, powinien być wykorzystany w kodzie ustawiającym wartości buforów, ale nie musi. Wykorzystanie tego pola jest zalecane ze względu na jednolistość tworzenia łańcuchów za pomocą obiektu klasy StringRepresentationMaker.

W celu wstawienia paska stanu w aplikacji należy na samym początku go zainicjować, np. następującym kodem:

        StatusBar st = new StatusBar();
        StatusBarManager manager = new StatusBarManager(st);
        st.setFromTable("STATUS_BAR");
        if(!st.isEmpty())
            Application.app.setStatusBar(st);

Dalej powinny zostać zainicjowane parametry dla każdego bufora i, ewentualnie stworzone procedury, ktore uaktualniają zawartość buforów co określony czas. W szczególności bieżący użytkownik, czy filia mogą być jednorazowo wypełnione po logowaniu. Z kolei czas i data mogą być uaktulaniane co 30 sekund.