MozillaPL.org - polskie centrum Mozilli

Główne menu:

Tablice w prefbranches

Projektowanie aplikacji i rozszerzeń opartych na technologiach Mozilla Foundation: XUL, JavaScript, XPCOM, XBL i innych

Moderator: Pomocy?!

Tablice w prefbranches

Postautor: TrAvIkK » 02 czerwca 2007, 16:36

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

Siemka :)

Od jakiegoś czasu zastanawiam się nad taką rzeczą, mianowicie: Czy jest możliwe by w prefs rozszerzenia zapisać tablicę?
Tzn. jedną preferencję jako tablicę ?

I jakiej funkcji używać do pobierania z niej wartości ?
TrAvIkK
 
Posty: 9
Z nami od: 05 lutego 2007, 13:34

Postautor: marcoos » 02 czerwca 2007, 20:41

Przeglądarka: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

Masz dwa sposoby.

1) Możesz przekonwertować tablicę do Stringa (Array.join) i z powrotem (String.split).

2) Możesz używać brancha jako tablicy, tak jak to w Firefoksie jest zrobione z browser.contentHandlers.types.*. Po prostu robisz sobie:
costam.cos.0, costam.cos.1, costam.cos.2, costam.cos.3 itd.

To drugie jest wygodniejsze dla użytkownika, który potem te Twoje preferencje będzie chciał modyfikować.
marcoos
Moderator
 
Posty: 2227
Z nami od: 12 października 2002, 10:25
Lokalizacja: Wrocław

Postautor: TrAvIkK » 02 czerwca 2007, 20:50

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

2) Możesz używać brancha jako tablicy, tak jak to w Firefoksie jest zrobione z browser.contentHandlers.types.*. Po prostu robisz sobie:
costam.cos.0, costam.cos.1, costam.cos.2, costam.cos.3 itd.


Tak, ale costam.cos.1 costam.cos.2 musze definiować w pliku z prefsami, tak?
A ja chce, by to było "definiowane" przez użytkownika w stworzonym interfejsie.
TrAvIkK
 
Posty: 9
Z nami od: 05 lutego 2007, 13:34

Postautor: marcoos » 02 czerwca 2007, 21:30

Przeglądarka: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

TrAvIkK pisze:Tak, ale costam.cos.1 costam.cos.2 musze definiować w pliku z prefsami, tak?
A ja chce, by to było "definiowane" przez użytkownika w stworzonym interfejsie.


Masz tablicę, to iterujesz przez nią i robisz

Kod: Zaznacz cały
for (var i=0; i<twojaTablica.length; i++)
 twojBranch.setCharPref("costam.cos." + i, twojaTablica[i]);


i tyle.

Chyba że nie zrozumiałem, co ten użytkownik ma robić, ani co dokładnie chcesz zrobić w pliku z prefsami. :)
marcoos
Moderator
 
Posty: 2227
Z nami od: 12 października 2002, 10:25
Lokalizacja: Wrocław

Postautor: TrAvIkK » 02 czerwca 2007, 21:43

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

Chyba że nie zrozumiałem, co ten użytkownik ma robić, ani co dokładnie chcesz zrobić w pliku z prefsami.


W pliku z prefsami chcę zdefiniować powiedzmy jednego prefsa jako tablice, i do niego użytkownik będzie dopisywał dane.
TrAvIkK
 
Posty: 9
Z nami od: 05 lutego 2007, 13:34

Postautor: marcoos » 02 czerwca 2007, 21:51

Przeglądarka: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

No to użyj sposobu 1. Trzymaj tablicę w postaci stringa (np. jako listę wartości oddzielonych przecinkami).
marcoos
Moderator
 
Posty: 2227
Z nami od: 12 października 2002, 10:25
Lokalizacja: Wrocław

Postautor: TrAvIkK » 02 czerwca 2007, 21:56

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

marcoos pisze:No to użyj sposobu 1. Trzymaj tablicę w postaci stringa (np. jako listę wartości oddzielonych przecinkami).


Tyle, że owa tablica jest 2 wymiarowa :(
Nie da się poprostu zdefiniować pref'a jako tablicy i potem pobierać wartości podając współrzędne tablicy ?
TrAvIkK
 
Posty: 9
Z nami od: 05 lutego 2007, 13:34

Postautor: marcoos » 02 czerwca 2007, 22:14

Przeglądarka: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

Preferencje są tylko boolowskie, całkowitoliczbowe lub znakowe. Nie ma innych typów preferencji.

Nie wiem, jakież to preferencje chciałbyś przechowywać w dwuwymiarowej tablicy; jeśli to ma być sposób na przechowywanie danych, to lepiej wrzuć je np. do pliku albo sqlite.
marcoos
Moderator
 
Posty: 2227
Z nami od: 12 października 2002, 10:25
Lokalizacja: Wrocław

Postautor: TrAvIkK » 02 czerwca 2007, 22:18

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

Hmm...
Na dobrą sprawę mogę skorzystać z zewnętrznej bazy danych :)
Dzięki ;)
TrAvIkK
 
Posty: 9
Z nami od: 05 lutego 2007, 13:34


Wróć do Programowanie z użyciem technologii Mozilli

Kto jest online

Zarejestrowani użytkownicy: Bing [Bot]

cron
Przejdź do powiązanej strony

Nawigacja:

Stopka: