QN-Toolbar
|
QN-Toolbar |
|
|
|
|
Poruszanie się po gałęziach menu może być uciążliwe, zwłaszcza, jeśli korzystamy np. na zmianę z dwóch browserów znajdujących się w odległych gałęziach menu. QN-Toolbar powstał po to, żeby przyspieszyć taką pracę, jak i po to, żeby ułatwić korzystanie z programu użytkownikom początkującym.
Na pasku znajdują się dwa zestawy przycisków - zaprojektowany przez programistę, zapisany w qconie, wspólny dla wszystkich użytkowników, i prywatny użytkownika, zapisany w parametrach. Zestaw zaprojektowany przez programistę nie może być w żaden sposób zmieniony z poziomu programu.
Okno toolbara nie łapie focusa, użyte zaś do uruchomienia innego okna otwiera je podając jako rodzica to okno, które miało focus jako ostatnie. Toolbar jest aktywny, o ile wszystkie otwarte na ekranie okna są nieblokujące - okno nieblokujące to takie, którego klasa (dziedzicząca z Window) ma przedefiniowaną metodę public boolean blocksToolbar(), tak, żeby zwracała false. W chwili obecnej wszystkie okna poza oknami menu są blokujące; oznacza to, że jeśli otwarte są same menu, to toolbar jest aktywny, po otwarciu czegokolwiek innego zaś aktywnym być przestaje. Pozwala to na uniknięcie problemów z transakcyjnością wynikających z tego, że użytkownik mógłby uruchomić naraz kilka funkcji zmieniających bazę danych.
Pusty toolbar - taki, na którym nie ma zdefiniowanych żadnych przycisków - nie wyświetla się.
W aplikacji może być tylko jeden toolbar.
Jeśli korzystasz z wersji biblioteki, w której znajduje się pakiet qline.toolbar, wystarczy, jeśli w pliku Start.java przed otwarciem jakiegokolwiek okienka wywołasz
Application.app.initToolbarManager("MainToolbar", "MainMenu");
a dookoła funkcji otwierającej menu dodasz wywołania fukcji otwierających i zamykających toolbar, na przykład w taki sposób:
do if (showProgramInfo())
{
app.getToolbarManager().show();
app.runMenu("MainMenu", null, null);
app.getToolbarManager().hide();
}
while (!mess.ask("Czy koniec pracy z programem", true));
initToolbarManager bierze jako parametry dwa Stringi, z których pierwszy to nazwa toolbara (taka, jak nazwa ewentualnego menu zdefiniowanego w qconie, patrz dalej), a drugi to nazwa menu, akcje z którego mogą być dodawane na pasek przez użytkownika. Defaultowo są to "MainToolbar" i "MainMenu".
Musisz dopisać odpowiednią definicję w qconie. Toolbar definiuje się tak, jak zwykłe menu, zmieniają się jedynie nazwy niektórych parametrów z nagłówka.
MENU MainToolbar
POS=70 5
ICON_SIZE=48
SUBTITLES=true
VERTICAL=false
{
ID ACTION NAME HELP ICON;
SPRZEDAZ BROWSER DOK_RACH_BRO_ALL MENU_DRUK_ETYKIET; "Sprzedaż" "Wszystkie dokumenty sprzedaży" "icon/toolbar/sprzedaz.gif";
ZAKUPY BROWSER DOK_ZAKUP_BRO F2_FV_ZAKUP; "Zakupy" "Wszystkie dokumenty zakupu" "icon/toolbar/zakup.gif";
KONTRAHENCI BROWSER KONTRAHENCI_BRO F2_ODBIORCY; "Kontrahenci" "Kartoteka kontrahentów, druk etykiet adresowych" "icon/toolbar/kontrahenci.gif";
PRACOWNICY BROWSER PRACOWNIK_BROW PracownicyMenu; "Pracownicy" "Spis pracowników firmy" "icon/toolbar/pracownicy.gif";
DLUZNICY NARROW_BROWSER DOK_RACH_BRO_NIEZAPLACONE F2MENU=F2_FV {ZAPLACONE=0 CZY_PROFORMA=0}; "Dłużnicy" "Lista niezapłaconych dokumentów sprzedaży" "icon/toolbar/dluznik.gif";
}
Parametr SUBTITLES może przyjmować wartości true i false i określa, czy pod przyscikami mają być wyświetlane podpisy. Parametr VERTICAL przyjmuje wartości true i false i określa, czy toolbar ma być pionowy: jeśli wybierzemy false, będzie poziomy. Parametr ICON_SIZE określa wielkość przycisków w pikselach.
Akcje dla toolbara definiujemy dokładnie tak, jak dla menu, używane jednak są jedynie pola ID, ACTION, NAME, HELP i ICON.
Wystarczy umieścić gdzieś w strukturze menu akcję otwierającą okno konfiguracji toolbara, czyli FUNC("qline.toolbar.ToolbarConfigRunner"). Jeśli nie chcemy, by użytkownik mógł manipulować ustawieniami toolbara - akcji w menu nie umieszczamy, i po kłopocie.