DefEcs logo DefEcs v. 1.0 Podręcznik użytkownika




Spis treści:
  1. Wprowadzenie
  2. Ostrzeżenie
  3. Umowa licencyjna
  4. Główne okno
  5. Zawartość domeny
  6. Tablice i słowniki
  7. Dodawanie nowego klucza
  8. Usuwanie klucza
  9. Modyfikacja wartości kluczy
  10. Zapisywanie zmian
  11. Ponowne ładowanie domen
  12. Dodawanie nowych domen
  13. Usuwanie istniejących domen
  14. Cofanie operacji
  15. Eksport i import domen
  16. Preferencje użytkownika
  17. Często zadawane pytania


1. Wprowadzenie

DefEcs jest programem, który w założeniu ma być narzędziem pomocnym w przeglądaniu i modyfikowaniu bazy danych ustawień domyślnych systemu Mac OS X. Dlaczego ktokolwiek miałby chcieć zaglądać do tej bazy? Można wskazać kilka powodów:
Apple dostarcza narzędzie działające w wierszu poleceń o nazwie defaults,  które również służy do przeglądania i manipulowania ustawieniami systemowymi. Aby dowiedzieć się więcej o tym narzędziu, otwórz terminal i wpisz man defaults.

Baza danych ustawień jest zorganizowana jako zbiór stałych domen (lub, którko, domen). Domena jest słownikiem (zobacz też rozdział Arrays and dictionaries w tym podręczniku), posiadającym unikalną nazwę. Nazwa zwykle odpowiada identyfikatorowi aplikacji (np. pl.hipercom.DefEcs), która wykorzystuje daną domenę do swoich potrzeb (w większości przypadków jedynym celem domeny jest przechowywanie preferencji użytkownika dla danego programu, pozycji okien, ostatnio odwiedzanych folderów i plików itp.). Domena składa się z par klucz-wartość. Klucze, lub nazwy kluczy, są po prostu fragmentami tekstu, wskazującymi na znaczenie wartości, które zawierają. Każda wartość posiada swój typ (w niniejszym podręczniku będziemy w skrócie mówić, że klucz posiada typ). Aktualnie obsługiwanymi typami są łańcuchy (tekst), liczby (logiczne, całkowite i rzeczywiste), daty i godziny, dane binarne (ciągi bajtów bez narzuconej interpretacji), tablice i słowniki. W ten sposób domena (która sama jest słownikiem) może zawierać kolejne słowniki (oraz tablice), które z kolei mogą zawierać więcej słowników (i tablic) itd. Jednak właściwe dane (informacje) są przechowywane w danych skalarnych (teksty, liczby, daty, dane binarne). Tablice i słowniki służą wyłącznie jako kontenery w celu organizacji danych.

Nie ma żadnych ograniczeń co do nazewnictwa domen z wyjątkiem tego, że nazwy muszą być unikalne (tzn. nie mogą istnieć dwie domeny o takiej samej nazwie). Ta zasada dotyczy wszystkich kluczy w słownikach - każdy klucz w słowniku musi być unikalny (musi posiadać unikalną nazwę).

Mogą istnieć pewne domeny nie związane z żadną konkretną aplikacją. Przykładem takiej domeny może być NSGlobalDomain - zbiór ustawień systemu operacyjnego, zawierający m. in. ustawienia językowe, konfigurację urządzeń zewnętrznych itp.

W niniejszym podręczniku przez klucz rozumieć będziemy kompletną parę klucz-wartość, podczas gdy nazwą klucza określać będziemy część klucz z pary klucz-wartość. Zatem zdanie "domena x.y.z zawiera klucz o nazwie abc, który jest słownikiem" oznacza, że w domenie x.y.z istnieje para klucz-wartość, w której część klucz jest nazwą abc, a część wartość jest słownikiem (być może zawierającym kolejne klucze, czyli pary klucz-wartość).

Do spisu treści...


2. Ostrzeżenie

Należy zachować szczególną ostrożność podczas manipulacji ustawieniami systemowymi. Zalecane jest korzystanie z DefEcs głównie jako przeglądarki. Przypadkowe zmiany ustawień systemowych, bez należytej wiedzy na temat przedmiotu i przyczyny zmian, może spowodować niestabilność systemu i/lub niektórych aplikacji.

Powyższe oznacza, że DefEcs może uszkodzić Twój system jeśli zostanie użyty nieodpowiedzialnie. Jak większość narzędzi, może być pomocny lub szkodliwy, zależnie od sposobu wykorzystania.

Przed edycją jakichkolwiek domen zaleca się wyeksportowanie bieżącego stanu bazy danych ustawień do pliku zewnętrznego (zobacz
Eksport i import domen), aby zabezpieczyć sobie stabilną wersję do odtworzenia gdyby zmiany dały niepożądane skutki.

Proszę pamiętać, że mimo, iż DefEcs jest w formacie uniwersalnym dla platformy Mac na Intelu i PowerPC, został przetestowany tylko na architekturze PowerPC z Mac OS X 10.4 (Toger). Zgodnie z najlepszą wiedzą autora, powinien działać poprawnie na platformie Intela z Mac OS X 10.4.x lub nowszym (ponieważ jest linkowany wyłącznie z bibliotekami uniwersalnymi), jednak jest wysoce prawdopodobne, że nie będzie działał na wersjach Mac OS X wcześniejszych niż 10.4.

Do spisu treści...


3. Umowa licencyjna

Poprzez pobranie i zainstalowanie DefEcs Użytkownik zobowiązał się stosować do postanowień poniższej umowy licencyjnej.

Copyright (C) 2006 hipercom.pl
Wszelkie prawa zastrzeżone.

REDYSTRYBUCJA

Zezwala się na redystrybucję w formie binarnej, bez modyfikacji,
pod warunkiem, że spełnione zostaną poniższe wymagania:

* Redystrybucje w formie binarnej muszą zawierać powyższą
informację o prawach do produktu, niniejszą listę wymagań
oraz następujące dalej rozdziały BRAK GWARANCJI i BRAK
WSPARCIA, w dokumentacji i/lub innych materiałach załączonych
w dystrybucji.

* Ani nazwa firmy hipercom.pl, ani nazwy jej członków,
nie mogą być wykorzystywane do celów promocyjnych produktów,
nawet opartych na niniejszym oprogramowaniu, bez wcześniejszej
zgody na piśmie.

BRAK GWARANCJI

Ponieważ program jest licencjonowany bezpłatnie,
nie jest objęty gwarancją w zakresie dozwolonym przez
obowiązujące przepisy. O ile na piśmie nie stanowi się
inaczej, posiadacze praw autorskich i/lub inne strony
zapewniają program w stanie, w jakim jest ("jak widać")
bez jakiejkolwiek gwarancji, ani wyraźnej, ani domyślnej,
w tym między innymi domyślnych gwarancji co do przydatności
handlowej i przydatności do określonych zastosowań. Całość
ryzyka w zakresie jakości i skuteczności działania programu
ponosisz sam. W razie gdyby program okazał się wadliwy,
ponosisz koszt całego niezbędnego serwisu, naprawy i
korygowania.

O ile obowiązujące prawo nie stanowi inaczej albo czegoś
innego nie uzgodniono w formie pisemnej, żaden posiadacz
praw autorskich ani inna strona modyfikująca i/lub
redystrybująca program zgodnie z powyższymi zezwoleniami,
w żadnym wypadku nie jest odpowiedzialna wobec ciebie za
szkody, w tym szkody ogólne, specjalne, uboczne lub skutkowe,
wynikłe z użycia bądź niemożliwości użycia programu (w tym,
między innymi, za utratę danych lub powstanie danych
niedokładnych, albo za straty poniesione przez ciebie lub
strony trzecie, jak też niedziałanie programu z innymi
programami), nawet jeśli dany posiadacz bądź inna strona
zostali powiadomieni o możliwości powstania takich szkód.

BRAK WSPARCIA

hipercom.pl nie zapewnia żadnego bezpośredniego wsparcia
dla swoich produktów darmowych. Wszelkie problemy związane
z darmowym oprogramowaniem tworzonym przez hipercom.pl
powinny być rozwiązywane w oparciu o Podręcznik Użytkownika
załączony w pakiecie oprogramowania i witrynę WWW danego
produktu.


Do spisu treści...


4. Główne okno

Główne okno aplikacji składa się z dwóch poziomo sąsiadujących paneli. Lewy panel jest widokiem listy domen. Pokazuje on wszystkie stałe domeny aktualnie zdefiniowane w bazie danych ustawień na stacji, na której działa DefEcs. Zawartość domeny wskazanej w widoku listy domen pokazywana jest w panelu po prawej - widoku zawartości domeny. Gdy zostanie wskazana inna domena (poprzez kliknięcie jej nazwy myszką lub wybranie jej w dowolny inny sposób, np. za pomocą klawiszy kursora), jej zawartość zostanie automatycznie pokazana, zastępując zawartość poprzednio wyświetlanej domeny.

Widok listy domen zawiera trzy kolumny. Kolumna oznaczona jako * (gwiazdka) wskazuje niezapisane zmiany w domenie. Jeśli obok nazwy domeny występuje w niej mały krzyżyk (x), dana domena została zmieniona przez użytkownika i jej nowa zawartość nie została zapisana do bazy danych ustawień. Kolumna o nazwie Nazwa domeny zawiera nazwy wszystkich stałych domen istniejących w systemie w momencie ostatniego ich załadowania przez DefEcs (albo przy starcie aplikacji, albo gdy została wykonana funkcja ponownego załadowania domen). Trzecia kolumna, oznaczona jako kl., pokazuje liczbę głównych kluczy w danej domenie. Poprzez główne klucze rozumiemy tu klucze zawarte w samej domenie traktowanej jako słownik - dana domena może zawierać znacznie więcej kluczy jeśli niektóre klucze główne są kontenerami (tablicami lub słownikami). Ponad listą domen znajduje się pole wyszukiwania. Wprowadzenie tekstu w tym polu powoduje wyszukanie i zaznaczenie domeny, której nazwa zawiera wprowadzony łańcuch.

Panel w prawej części głównego okna wyświetla zawartość zaznaczonej domeny. Panel ten został dokładniej opisany w rozdziale Zawartość domeny.

Można zmieniać rozmiar kolumn poprzez przeciąganie myszką w lewo lub w prawo granicy pomiędzy nagłówkami kolumn. Można również zmienić kolejność, w której kolumny są wyświetlane, poprzez przeciągnięcie myszką całego nagłówka kolumny i umieszczenie go pomiędzy innymi kolumnami. Rozmiar całego widoku listy domen i widoku zawartości domeny można zmieniać poprzez przeciąganie punktu rozdzielacza (małej kropki w pasku pionowego podziału pomiędzy widokami). Oczywiście zmiana rozmiaru całego okna powoduje odpowiednią zmianę rozmiaru widoków.

Do spisu treści...


5. Zawartość domeny

Domena składa się ze zbioru kluczy. Przez klucz rozumiemy wartość (lub zbiór wartości) wskazywaną albo poprzez nazwę (jeśli dana wartość jest elementem słownika) albo poprzez indeks (jeśli dna wartość jest elementem tablicy). Sama domena jest słownikiem, zatem każdy z jej kluczy głównych musi posiadać nazwę unikalną w ramach domeny. Nazwą klucza może być dowolny niepusty łańcuch. Każdy klucz (czyli para nazwa-wartość lub indeks-wartość) posiada typ. Typ definiuje jaki rodzaj danych można zachować w danym kluczu. Obsługiwanymi typami danych są:
Ty raz przypisany do klucza nie może zostać zmieniony. Aby zmienić typ klucza, należy usunąć dany klucz i utworzyć go ponownie, z innym typem danych.

Widok zawartości domeny reprezentuje drzewiastą strukturę domeny. Każdy kontener (tablica lub słownik) może być rozwinięty aby pokazać jego zawartość. Jeśli pewne klucze w kontenerze same są kontenerami, one również mogą zostać rozwinięte itd. Aby rozwinąć kontener, kliknij dwukrotnie na jego nazwie lub jednokrotnie na małym trójkącie obok nazwy klucza.

Example of a collapsed item Klucz NSFavoriteStyles jest zwinięty.

Example of an expanded item Ten sam klucz w stanie rozwiniętym.

W przykładzie powyżej, klucz NSFavoriteStyles jest słownikiem. Zawiera on 4 klucze o nazwach Italic, Outlined, Shadowed i Bold, które również są słownikami i jako takie mogą zostać rozwinięte. Z drugiej strony, klucz com.apple.sound.beep.feedback (nazwa obcięta do com.apple.sound.be... w przykładzie powyżej) jest liczbą (nie kontenerem) i nie może zostać rozwinięty.

Widok zawartości domeny posiada trzy kolumny. Pierwsza kolumna pokazuje nazwę lub indeks klucza, druga kolumna zawiera typ klucza, a trzecia pokazuje albo wartość klucza, albo liczbę podkluczy, jeśli dany klucz jest kontenerem. W przykładzie powyżej, klucz NSFavoriteStyles zawiera 4 podklucze, z których każdy jest słownikiem zawierającym jeden element.

Do spisu treści...


6. Tablice i słowniki

Aby zrozumieć zachowanie i pewne ograniczenia DefEcs, ważne jest poznanie własności tablic i słowników. Obydwa typy obiektów służą jako kontenery dla innych obiektów, tzn. same w sobie nie zawierają żadnych wartościowych danych (a jedynie inne klucze, które mogą przechowywać wartości lub również być kontenerami), a główną różnicą między nimi jest sposób identyfikacji obiektów wewnętrznych.

Każdy obiekt zawarty w tablicy posiada unikalny indeks - liczbę wskazującą pozycję (miejsce) obiektu w tablicy. Indeksy muszą być jednocześnie unikalne i ciągłe, począwszy od 0, przez 1, 2, 3 itd. W DefEcs, kiedy dodaje się nowy klucz do tablicy, jest on zawsze umieszczany na końcu tablicy (i niestety w aktualnej wesji nie ma możliwości zmiany kolejności elementów tablicy innej niż usunięcie kluczy i ponowne dodanie ich w innej kolejności).


In a dictionary, on the other hand, each value is identified by a name rather than an index. A name is just a piece of text. However, names in a dictionary must be unique (that is, no two objects can have the same name).

The items of an array are always displayed in the order based on their indices. In case of dictionaries, the order of items is irrelevant. Currently DefEcs displays them in the order their names are returned by the enclosing dictionary. Ordering of items based on the preferences of the user is a feature planned in the next version of DefEcs.

Do spisu treści...


7. Dodawanie nowego klucza

Aby dodać nowy klucz do aktualnie wybranego kontenera, wybierz Nowy klucz z menu Klucz lub wciśnij Command-N. Pytanie brzmi: do którego kontenera zostanie dodany nowy klucz? Stosowane są następujące reguły:
Załózmy, że mamy domenę zawierającą jeden klucz, który jest pustą tablicą. Jeśli dodamy nowy klucz gdy tablica jest w stanie zwiniętym (jak na ilustracji poniżej)

Empty array collapsed

nowy klucz będzie dodany jako klucz główny w domenie. Jeśli tablica Key1 zostanie najpierw rozwinięta (jak na ilustracji poniżej - zwróć uwagę na kierunek trójkąta przy nazwie klucza: wskazuje on teraz w dół)

Empty array expanded

nowy klucz zostanie dodany jako pierwszy element (tzn. element nr 0) do tablicy Key1. Ta sama zasada dotyczy wszystkich poziomów zagnieżdżenia kontenerów.

Po wybraniu akcji Nowy klucz użytkownik zostanie poproszony o wprowadzenie nazwy klucza (jeśli klucz dodawany jest do słownika) i wybranie typu.

New key dialog

Jeśli klucz dodawany jest do tablicy, pole Nazwa będzie nieaktywne i będzie pokazywać indeks nowego elementu. Gdy typem klucza jest Tablica lub Słownik, klucz jest dodawany natychmiast po kliknięciu przycisku OK. Jeśli wybrano dowolny inny typ, po kliknięciu OK zostanie przedstawiony kolejny arkusz, który umożliwia wprowadzenie wartości klucza (zobacz Modyfikacja wartości kluczy). Jeśli, w dowolnym momencie, zostanie wybrany przycisk Anuluj, nowy klucz zostanie usunięty i żadna zmiana w domenie nie nastąpi.
Jeśli klucz dodawany jest do słownika, jego nazwa nie może pozostać pusta. W takim przypadku klucz nie zostanie dodany i zostanie wyświetlony komunikat o błędzie. Podobnie, jeśli zostanie podana nazwa już istniejąca w danym słowniku, zostanie pokazany komunikat o błędzie i operacja zostanie anulowana.
Po dodaniu klucza domena uważana jest za zmienioną, zatem pojawi się krzyżyk obok nazwy domeny w widoku listy domen. Nowy klucz nie jest umieszczany w bazie danych ustawień aż do momentu zapisania zmian w domenie (zobacz też Zapisywanie zmian), chyba że wybrano Natychmiast zapisuj zmiany w preferencjach DefEcs (zobacz też Preferencje użytkownika).

Dodanie nowego klucza może zostać cofnięte (zobacz Cofanie operacji).

Do spisu treści...


8. Usuwanie klucza

Aby usunąć klucz, należy go najpierw zaznaczyć w widoku zawartości domeny. Można usunąć pojedynczy element lub cały kontener. Jednakże nie jest możliwe usunięcie w jednym kroku wszystkich kluczy głównych z domeny. Należy wskazywać i usuwać kolejne klucze główne. W przypadku wszystkich innych (nie głównych) kluczy, zaznaczenie i usunięcie kontenera usuwa również całą jego zawartość.
W celu usunięcia klucza, wybierz Usuń klucz z menu Klucz lub wciśnij Command-D. Po potwierdzeniu klucz zostanie usunięty i widok zawartości domeny zostanie odpowiednio zaktualizowany.
Klucz nie jest fizycznie usuwany z bazy danych ustawień do momentu zapisania zmian w domenie (zobacz też Zapisywanie zmian), chyba że wybrano Natychmiast zapisuj zmiany w preferencjach DefEcs (zobacz też Preferencje użytkownika).

Usunięcie klucza może zostać cofnięte (zobacz Cofanie operacji).

Do spisu treści...


9. Modyfikacja wartości kluczy

Aby zmienić wartość klucza należy dwukrotnie kliknąć myszką jego nazwę w widoku zawartości domeny. Należy zaznaczyć, że nie jest możliwa edycja kontenerów. Dwukrotne kliknięcie na kontenerze rozwija go lub zwija.
Każdy typ klucza posiada związany z nim arkusz edycji. Tekst, liczby, daty, dane binarne - wszystkie one są edytowane we właściwy sobie sposób. Kiedy edytowana jest wartość tesktowa, arkusz pozwala na wprowadzenie wiersza tekstu. Aktualna wartość klucza jest zawsze wyświetlana w polu edycji, gotowa do zmiany. Jak w większości aplikacji, kopiowanie i wklejanie tekstu z innych okien działa także w przypadku arkusza edycji tekstu.
Gdy zostanie wybrana funkcja edycji wartości liczbowej, pojawi się arkusz przedstawiony poniżej.

Number edit sheet Arkusz edycji liczby.

Wartość liczbowa może być całkowita, rzeczywista lub boolowska (logiczna). Wszystkie one są liczbami, choć wartości logiczne oznaczone są etykietą Logiczna w widoku zawartości domeny, podczas gdy wartości całkowite i rzeczywiste posiadają etykietę Liczba (technicznie rzecz ujmując, wszystkie one są obiektami klasy NSNumber lub NSCFNumber lub jednej z klas potomnych, jak NSCFBoolean). Kiedy wartość liczbowa zostanie dwukrotnie kliknięta myszką, arkusz edycji ustali rodzaj liczby zgodnie z wartością aktualnie w niej zapisaną (tzn. jeśli jest to wartość logiczna, aktywna będzie zakładka Logiczna, jeśli nie jest to wartość logiczna, a część ułamkowa liczby jest zerowa, aktywna będzie zakładka Całkowita, natomiast zakładka Rzeczywista będzie aktywna jeśli liczba ma niezerową część ułamkową).
Nowy typ liczby jest wyznaczany w zależności od tego, która zakładka jest aktywna w momencie kliknięcia przycisku OK. Zatem liczba może być zapisana jako wartość logiczna jeśli pozostawi się aktywną zakładkę Logiczna w momencie kliknięcia OK.

Boolean edit sheet Arkusz edycji wartości logicznej.

Wszystkie niezerowe wartości oznaczają TAK w kontekście logicznym, podczas gdy zero oznacza NIE. Z drugiej strony, wartość logiczna TAK zawsze konwertowana jest do wartości liczbowej 1. Jednak w trakcie wyświetlania wartości logicznych w widoku zawartości domeny, DefEcs tłumaczy wartości liczbowe na wartości logiczne TAK lub NIE. Tym niemniej należy pamiętać, że każde TAK oznacza w istocie 1, a każde NIE jest zerem. Co więcej, jeśli wartość liczbowa zostanie zapisana jako rzeczywista, a jej część ułamkowa wynosi zero, następna edycja tego klucza spowoduje uaktywnienie zakładki Całkowita (DefEcs rozróżnia wartości całkowite i rzeczywiste kierując się wartością ich wartością ich części ułamkowych).

Gdy edytowana jest wartość typu data/godzina, arkusz zawiera pole ustalania daty.

Date edit sheet Arkusz edycji daty/godziny.

Technicznie wartości typu data/godzina zapisywane są w bazie danych ustawień jako obiekty typu NSCFCalendarDate, które zdolne są przechowywać jednocześnie datę i godzinę. Jeśli godzina jest bez znaczenia w danym kontekście, można bezpiecznie pozostawić wartość 00:00. Zamiast wprowadzać datę z klawiatury, można podświetlić daną część daty i/lub godziny i użyć przycisków góra/dół (obok pola edycji) aby ustawić żądaną wartość.

Ostatnim edytowalnym typem klucza są dane binarne. Są one po prostu ciągiem bajtów (bajt jest wartością całkowitą z przedziału od 0 do 255 dziesiętnie lub od 00 do ff szesnastkowo).

Data edit sheet Arkusz edycji danych binarnych.

Każdy bajt jest reprezentowany przez niewielki niebieski owal, z wartością liczbową wewnątrz. Dopuszczalna jest edycja wartości tylko w polach Szesnastkowo i Dziesiętnie. Pole ASCII pokazuje interpretację bajtów jako znaki (choć biorąc pod uwagę, że dane binarne zwykle zawierają zakodowane obiekty lub wartości własnych typów, reprezentacja ASCII jest niekiedy bezużyteczna). Po wprowadzeniu wartości w jednym z pól edycyjnych musisz wcisnąć spację aby wprowadzona wartość pojawiła się jako kolejny bajt (niebieski owal) i aby pozostałe pola zostały zaktualizowane (właśnie tak, wprowadzenie liczby szesnastkowej i wciśnięcie spacji powoduje zinterpretowanie tej liczby jako wartości dziesiętnej i kodu ASCII i uaktualnienie pozostałych pól).
Aby usunąć bajt z łańcucha, należy go zaznaczyć i wcisnąć klawisz Delete.

Nowa wartość klucza nie jest umieszczana w bazie danych ustawień do momentu zapisania zmian w domenie (zobacz też Zapisywanie zmian), chyba że wybrano Natychmiast zapisuj zmiany w preferencjach DefEcs (zobacz też Preferencje użytkownika).

Zmiana wartości klucza może zostać cofnięta (zobacz Cofanie operacji).

Do spisu treści...


10. Zapisywanie zmian

Jak wspomniano wcześniej, zmiany dokonane w domenie nie są fizycznie umieszczane w systemowej bazie danych do momentu zapisania zmian w domenie. Możliwe jest zapisanie pojedynczej domeny (funkcja Zapisz domenę z menu Domena lub kombinacja Command-S) lub wszystkich domen w jednym kroku (funkcja Zapisz wszystkie domeny z menu Domena lub kombinacja Command-Shift-S).
Nie jest możliwe zapisanie pustej domeny, tzn. domeny nie zawierającej żadnego klucza (ta zasada nie dotyczy pustych kontenerów wewnątrz domeny). Przy próbie zapisanie pustej domeny pojawi się komunikat o błędzie

Saving empty domain error

Należy zaznaczyć, że ograniczenie takie wprowadza sam system ustawień, nie DefEcs. Fizycznie zapisanie pustej domeny jest równoznaczne z usunięciem tej domeny z bazy systemowej. Stąd, jeśli wystąpi próba zapisania pustej domeny, nie jest wykonywana żadna operacja, a jeśli domena była oznaczona jako zmodyfikowana (poprzez krzyżyk umieszczony obok jej nazwy w widoku listy domen), pozostaje ona oznaczona (ponieważ żadne zmiany nie zostały faktycznie zapisane w bazie danych ustawień).
Podobnie, jeśli wybrano funkcję zapisania wszystkich domen w jednym kroku, a choć jedna domena jest pusta, zostanie wyświetlone ostrzeżenie podobne do tego przedstawionego wyżej i tylko niepuste domeny zostaną zapisane do systemowej bazy danych ustawień. Wszystkie zmienione domeny oznaczone jako zmodyfikowane pozostaną oznaczone.
Należy jeszcze zauważyć, że zapisanie danych do bazy systemowej nie może zostać cofnięte. Jednakże, nawet po zapisaniu domeny można nadal cofać zmiany wykonane w tej domenie i ew. zapisać ją ponownie w poprzednim stanie (zobacz Cofanie operacji).
Jeśli zostanie włączona funkcja Natychmiast zapisuj zmiany w preferencjach użytkownika (zobacz Preferencje użytkownika), manualne zapisywanie domen nie jest konieczne. Po każdej operacji zmieniona domena zostanie automatycznie zapisana. Jedynym wyjątkiem są puste domeny (zobacz wyżej). Jeśli zostanie dodana nowa (pusta) domena, zostanie ona automatycznie zapisana po dodaniu do niej pierwszego klucza.

Do spisu treści...


11. Ponowne ładowanie domen

Jeśli dokonano zmian w domenie i zachodzi konieczność przywrócenia jej stanu z systemowej bazy danych, możliwe jest ponowne załadowanie domeny. Ponowne ładowanie powoduje utratę wszystkich zmian wykonanych w domenie i ładuje jej zawartość z bazy danych dysku systemowego. Jeśli wystąpi próba ponownego załadowania zmienionej domeny (oznaczonej krzyżykiem), pojawi się ostrzeżenie o utracie wszystkich wprowadzonych zmian w domenie. Kolejnym powodem ponownego ładowania domeny (lub wszystkich domen) jest chęć utrzymania aktualnego stanu wyświetlanych domen względem bazy danych w systemie. Podczas przeglądania i modyfikacji wartości w pewnym stanie bazy danych, inne aplikacje w tym samym czasie mogą również zmieniać stan ustawień. W pewnych przypadkach może zatem pojawić się potrzeba okresowego przeładowywania domen aby mieć pewność, że edytowana jest najbardziej aktualna ich wersja.
Aby przeładować pojedynczą domenę, należy zaznaczyć ją w widoku listy domen i wybrać Załaduj domenę z menu Domena lub wcisnąć kombinację Command-R. Aby przeładować wszystkie domeny, należy wybrać Załaduj wszystkie domeny z menu Domena lub wcisnąć kombinację Command-Shift-R.
Należy podkreślić, że przeładowanie wszystkich domen powoduje także uaktualnienie listy dostępnych domen. Zatem jeśli dodano nową domenę i nie została ona zapisana do bazy danych, taka domena zostanie utracona (ponieważ nie ma jej jeszcze w tym momencie w bazie danych). Wszystkie przeładowane domeny są oznaczane jako niezmienione. Przeładowanie domeny lub domen powoduje wyczyszczenie historii operacji do cofnięcia (tzn. nie jest możliwe cofnięcie żadnej operacji sprzed przeładowania domen), zatem zaleca się szczególną ostrożność przy korzystaniu z tej funkcji.

Do spisu treści...


12. Dodawanie nowych domen

Aby dodać nową domenę do bazy systemowej, należy wybrać element Nowa domena z menu Domena lub wcisnąć Command-Shift-N. Następnie należy wprowadzić nazwę nowej domeny. Proszę pamiętać, że nazwy muszą być unikalne i nie mogą być pustym łańcuchem. W takich przypadkach pojawi się komunikat o błędzie i domena nie zostanie dodana.
Nowa domena nie jest umieszczana w systemowej bazie danych do momentu wykonania funkcji zapisania zmian w domenie (zobacz też Zapisywanie zmian). Proszę zauważyć, że pusta domena nie może zostać zapisana, zatem po dodaniu nowej domeny a przed jej zapisaniem należy dodać do niej choć jeden klucz.
Dodanie nowej domeny może zostać cofnięte (zobacz Cofanie operacji).

Do spisu treści...


13. Usuwanie istniejących domen

Aby usunąć domenę wraz z całą jej zawartością z systemowej bazy danych, należy wybrać Usuń domenę z menu Domena lub wcisnąć Command-Shift-D. Po dodatkowym potwierdzeniu domena zostanie usunięta. Ta operacja jest natychmiast zapisywana w bazie danych ustawień (nie ma potrzeby osobnego zapisywania zmian zwłaszcza, że nie ma domeny do zapisania, ponieważ właśnie została ona usunięta).
Mimo, że usunięcie domeny skutkuje natychmiast w systemowej bazie danych, operacja ta nadal może zostać cofnięta (zobacz Cofanie operacji), w wyniku czego usunięta domena zostanie z powrotem dodana. Jednakże, po przywróceniu usuniętej domeny za pomocą operacji Undo (Cofnij), wymagane jest zapisanie zmian w przywróconej domenie (zobacz też Zapisywanie zmian).

Do spisu treści...


14. Cofanie operacji

Większość operacji dostępnych w DefEcs może zostać cofnięta i ew. powtórzona ponownie, jednak nie wszystkie. Aby cofnąć (anulować) ostatnio wykonaną operację, należy wybrać Undo [nazwa operacji] z menu Edycja lub wcisnąć Command-Z. Cofnięta operacja może zostać wykonana ponownie poprzez wybranie Redo [nazwa operacji] z menu Edycja lub wciśnięcie Command-Shift-Z.
Operacjami, które mogą zostać cofnięte są:
Operacjami, które nie mogą zostać cofnięte są:
Proszę pamiętać, że żadne operacje nie mogą zostać cofnięte (nawet te wymienione wyżej jako możliwe do wycofania) po ponownym załadowaniu domeny lub wszystkich domen z bazy danych systemu. Powodem takiego stanu jest fakt, że jeśli np. przeładowana zostanie domena, w której zmieniono wcześniej klucz, a w załadowanym stanie w ogóle nie ma takiego klucza, przywrócenie poprzedniej wartości klucza jest operacją bezsensowną. Aby uniknąć takich przypadków, przeładowanie domeny czyści historię operacji.
Po wycofaniu danej operacji, operacja wykonana przed nią staje się dostępna do cofnięcia i tak dalej, aż do osiągnięcia początku historii operacji, tzn. aż do cofnięcia pierwszej operacji wykonanej po ostatnim wyczyszczeniu historii.

Do spisu treści...


15. Eksport i import domen

DefEcs pozwala na eksport bieżącego stanu bazy ustawień do pliku zewnętrznego. Dobrą praktyką jest wykonanie eksportu bazy danych przed wykonaniem jakichkolwiek zmian, co daje możliwość przywrócenia stanu początkowego w razie wystąpienia problemów. Aby zapisać stan bazy danych w pliku należy wybrać Eksport wszystkich do pliku z menu Plik lub wcisnąć Command-Shift-E. Użytkownik zostanie poproszony o wybór folderu i wprowadzenie nazwy pliku. Domyślnym rozszerzeniem pliku, o ile nie zostanie wprowadzone inne, jest .defdoms. Formatem pliku jest domyślny format używany przez tzw. "keyed archiver" ze środowiska Cocoa (wskazówka: jeśli zmieni się rozszerzenie pliku na .plist, można będzie otworzyć taki plik domyślnym systemowym edytorem właściwości, jednak zawartość pliku nie będzie dokładnym odzwierciedleniem wyglądu bazy danych ustawień).

Aby zaimportować stan bazy danych z wcześniej utworzonego pliku, należy wybrać Import wszystkich z pliku z menu Plik lub wcisnąć Command-Shift-I. Po wybraniu pliku, zawartość domen z pliku zastąpi zawartość aktualnie wyświetlanych domen.

Proszę pamiętać, że import danych z pliku powoduje utratę wszystkich niezapisanych zmian.

Po zaimportowaniu zawartości domen z pliku zewnętrznego, wszystkie załadowane domeny będą oznaczone jako zmienione, a załadowane dane nie zostaną umieszczone w bazie danych do momentu zapisania zmian (zobacz też Zapisywanie zmian), nawet jeśli została wybrana funkcja automatycznego zapisywania zmian w preferencjach.

Istnieje również możliwość eksportu i importu pojedynczych domen. Ta funkcja jest użyteczna, jeśli planowane są zmiany tylko w pewnej domenie, a Użytkownik chce wcześniej wykonać jej kopię zapasową (w takim przypadku wykonanie kopii całej bazy nie jest najlepszym rozwiązaniem, ponieważ kiedy taka kopia zostanie załadowana, zostaną utracone również ewentualne zmiany w innych domenach, a takie zmiany mogły być w międzyczasie wprowadzone przez inne aplikacje).
Aby wyeksportować pojedynczą domenę, należy ją zaznaczyć w widoku listy domen i wybrać Eksport do pliku z menu Plik (lub wcisnąć Command-E). Domyślnym rozszerzeniem pliku zawierającego pojedynczą domenę jest .defdom. Aby zaimportować domenę, należy wybrać Import z pliku z menu Plik lub wcisnąć Command-I. Zaimportowana domena zostanie oznaczona jako zmieniona, a jej załadowana zawartość zostanie umieszczona w bazie danych dopiero po zapisaniu zmian (zobacz też Zapisywanie zmian).

Do spisu treści...


16. Preferencje użytkownika

Aby wyświetlić okno preferencji użytkownika w DefEcs, należy wybrać Preferencje z menu DefEcs lub wcisnąć Command-, (przecinek). Możliwe jest sterowanie zachowaniem DefEcs w następujących aspektach:

Przycisk Wart. fabryczne przywraca wartości domyślne.

Wszystkie zmiany wprowadzane w oknie preferencji są stosowane natychmiast - nie jest wymagane ich zapisywanie. Aby zamknąć okno preferencji, należy użyć standardowego przycisku zamykania okna na pasku tytułowym.

Do spisu treści...


17. Często zadawane pytania

P:
Co oznacza nazwa DefEcs?
O:
Def pochodzi od Defaults a Ecs od X (jak w OS X).

P:
Czy naprawdę potrzebuję tej aplikacji?
O:
Nie wiem. Potrzebujesz? Podpowiedź: jeśli kiedykolwiek zdarzyło Ci się użyć programu defaults, działającego w wierszu poleceń, prawdopodobnie uznasz DefEcs za pomocne narzędzie.

P:
Czy zapewniacie wsparcie dla DefEcs?
O:
Zgodnie z umową licencyjną - nie. Jednak można wysyłać pytana i sugestie na adres defecs@hipercom.pl a odpowiedzi na najczęściej zadawane pytania znajdą się w FAQ na stronie produktu (a niektóre z nich zostaną dodane do pytań w podręczniku użytkownika w następnych wydaniach).

P:
Posiadam wersję Mac OS X wcześniejszą niż 10.4. Mogę korzystać z tego programu?
O:
Prawdopodobnie nie. Z powodu braku czasu i środków, testowaliśmy ten produkt jedynie na Mac OS X 10.4 (na PowerPC G4). Jest to poprawnie skompilowany program uniwersalny (universal binary), zatem powinien działać na platformie Intela na Mac OS X 10.4 lub późniejszych, jednak jest mało prawdopodobne aby działał na wersjach OS X wcześniejszych niż 10.4 (być może na zaktualizowanym 10.3.9...).

P:
Jak odinstalować DefEcs?
O:
Po pierwsze, użyj DefEcs aby usunąć domenę pl.hipercom.DefEcs ze swojej bazy danych ustawień (jeśli występuje). Później przeciągnij DefEcs.app do kosza.

P:
Chciałbym dodać wartość typu MojaWłasnaKlasa ale nie jestem w stanie. Dlaczego?
O:
Baza danych ustawień obsługuje jedynie podstawowe typy wymienione w arkuszu Nowy klucz w DefEcs. Wszystkie inne obiekty powinny być najpierw zakodowane do postaci danych binarnych a następnie dodane jako taki właśnie typ (właściwie odpowiedź jest nieco bardziej skomplikowana, ale zostańmy przy wersji uproszczonej). Niektóre obiekty kodują się do postaci słowników. Zatem jeśli jesteś programistą i chcesz dodać obiekt własnej klasy do systemu ustawień, użyj reprezentacji odpowiedniej dla swojego inicjalizatora klasy initWithCoder: (lub równoważnego mu w innych językach programowania).

P:
Czy planowana jest kolejna wersja DefEcs?
O:
Tak, odwiedź stronę www.hipercom.pl aby przeczytać o planowanych nowościach. Być może nowa wersja już została wydana.

P:
Posiadam kopię bezpieczeństwa bazy ustawień ale chcę przywrócić z niej tylko jedną domenę. Czy to możliwe?
O:
Tak. Po pierwsze, wyłącz parametr Zapisuj natychmiast wszystkie zmiany w preferencjach DefEcs (jeśli jest włączony) i zaimportuj domeny z posiadanej kopii. Wszystkie domeny zostaną zaimportowane i oznaczone jako zmienione. Teraz zaznacz i zapisz domenę, którą chcesz przywrócić (nie zapisuj wszystkich domen, tylko tą jedną, którą chcesz przywrócić). Zakończ DefEcs, wybierając Nie zapisuj gdy zostaniesz poinformowany o niezapisanych zmianach. To tyle - przywrócona pojedyncza domena. Oczywiście lepszym rozwiązaniem byłoby wyeksportowanie tylko jednej domeny przed jej zmianą jednak, zgodnie z podanym wyżej rozwiązaniem, nawet jeśli wyeksportowano całą bazę ustawień, nadal istnieje możliwość przywrócenia tylko wybranych domen z kopii bezpieczeństwa.

Do spisu treści...


© 2006 hipercom.pl. All rights reserved.