Zasoby i obszar roboczy

Ośrodek, w którym koncentrują się pliki danych użytkownika, określany jest mianem obszaru roboczego. Środowisko robocze platformy to narzędzie, które pozwala użytkownikowi nawigować po obszarze roboczym i manipulować nim. Moduł dodatkowy zasobów udostępnia interfejsy API służące do tworzenia zasobów w obszarze roboczym, nawigowania między nimi i manipulowania tymi zasobami. Środowisko robocze korzysta z tych interfejsów API, aby udostępniać te funkcje użytkownikowi. Z interfejsów tych mogą również korzystać moduły dodatkowe.

Z punktu widzenia modułu dodatkowego operującego na zasobach, istnieje dokładnie jeden obszar roboczy, który jest zawsze dostępny, dopóki moduł dodatkowy jest uruchomiony. Obszar roboczy jest otwierany automatycznie w momencie aktywowania modułu dodatkowego i zamykany wraz z zamknięciem platformy. Jeśli moduł dodatkowy użytkownika wymaga modułu dodatkowego zasobów, moduł obsługi zasobów zostanie uruchomiony przed modułem użytkownika, a obszar roboczy będzie dostępny dla użytkownika.

Obszar roboczy zawiera kolekcję zasobów. Z perspektywy użytkownika istnieją trzy różne typy zasobów: projekty, foldery i pliki. Projekt to kolekcja zawierająca dowolną liczbę plików i folderów. Stanowi kontener umożliwiający organizowanie innych zasobów, które odnoszą się do konkretnego obszaru. Pliki i foldery są dokładnymi odpowiednikami plików i katalogów w systemie plików. Folder zawiera inne foldery i pliki. Plik zawiera dowolną sekwencję bajtów. Jego treść nie jest interpretowana przez platformę.

Zasoby obszaru roboczego są zorganizowane w strukturę drzewa, z projektami na górze i folderami i plikami poniżej. Specjalny zasób, określany jako zasób główny obszaru roboczego, stanowi główny element drzewa zasobów. Element ten jest tworzony wewnętrznie podczas tworzenia obszaru roboczego i istnieje tak długo, jak obszar roboczy.

Obszar roboczy może zawierać dowolną liczbę projektów, z których każdy może być przechowywany w innym położeniu na dysku.

Przestrzeń nazw zasobów obszaru roboczego zawsze rozróżnia i zachowuje wielkość liter. Dzięki temu obszar roboczy pozwala na istnienie wielu bliźniaczych zasobów o nazwach różniących się jedynie wielkością liter. Nie są też nakładane żadne ograniczenia na znaki używane w nazwach zasobów, długość nazw zasobów ani wielkość zasobów na dysku. Oczywiście jeśli zasoby są przechowywane na dysku, który nie rozróżnia wielkości liter lub nakłada ograniczenia na stosowane nazwy zasobów, zostanie to zasygnalizowane przy próbie utworzenia lub modyfikacji zasobów.

Przykładowe drzewo zasobów

Przedstawione poniżej drzewo (wyświetlone w widoku nawigatora środowiska roboczego) ilustruje typową hierarchię zasobów w obszarze roboczym. Struktura ta zawiera element główny obszaru roboczego. Projekty to bezpośrednie elementy potomne elementu głównego. Każdy węzeł (poza elementem głównym) może należeć do jednego z trzech typów zasobów i każdy z nich ma nazwę różną od elementów równorzędnych.

Widok nawigatora z przykładowym obszarem roboczym

Nazwy zasobów to dowolne łańcuchy (z pewnymi ograniczeniami - muszą być dozwolonymi nazwami plików). Platforma nie narzuca nazw zasobów ani nie określa żadnych nazw ze specjalnym znaczeniem (wyjątkiem jest nazwa ".metadata", z której nie można korzystać, ponieważ nazwa ta jest używana wewnętrznie).

Projekty zawierają pliki i foldery, ale nie inne projekty. Projekty i foldery są jak katalogi w systemie plików. Podczas usuwania projektu wyświetlane jest pytanie, czy usunięte mają zostać wszystkie pliki i foldery, które ten projekt zawiera. Usunięcie folderu z projektu spowoduje usunięcie tego folderu i wszystkich jego elementów potomnych. Usunięcie pliku jest analogiczne do usunięcia pliku w systemie plików.