Resurser och arbetsytan

Det centrala navet för användarens datafiler kallas arbetsyta. Du kan tänka dig plattformens arbetsmiljö som ett verktyg där användaren kan navigera på och ändra arbetsytan. Resursens insticksprogram tillhandahåller APIer för att skapa, navigera på och ändra resurser på en arbetsyta. APIerna ger funktionalitet åt användarna genom arbetsmiljön. Även insticksprogrammet kan använde de här APIerna.

Med utgångspunkt från ett resursbaserat insticksprogram finns det exakt en arbetsyta, och den är alltid öppen för verksamhet så länge insticksprogrammet körs. Arbetsytan öppnas automatiskt när resursens insticksprogram aktiveras och stängs när plattformen avslutas. Om insticksprogrammet kräver resursens insticksprogram kommer resursens insticksprogram att startas före ditt insticksprogram. Sedan är arbetsytan tillgänglig.

Arbetsytan innehåller en samling av resurser. Från användarens perspektiv finns det tre typer av resurser: projekt, mappar och filer. Ett projekt är en samling med ett antal filer och mappar. Det är en behållare för organisering av andra resurser som hör till ett visst område. Filer och mappar fungerar som filer och kataloger i filsystemet. En mapp innehåller andra mappar eller filer. En fil innehåller en slumpmässig sekvens av byte. Innehållet tolkas inte av plattformen.

Resurserna på en arbetsyta är organiserade i en trädstruktur, med projekten på översta nivån, och filerna och mapparna under. En speciell resurs, arbetsytans rotresurs, fungerar som rot för resursträdet. Arbetsytans rot skapas internt när en arbetsyta skapas och finns kvar så länge arbetsytan finns kvar.

En arbetsyta kan ha hur många projekt som helst, där vart och ett kan lagras på olika platser i filsystemet.

Namnområdet för arbetsytans resurs är alltid skiftlägeskänsligt och skiftlägesbevarande. Därför måste arbetsytan alltid kunna ha flera resurser med samma underordningsnivå där namnen bara skiljer sig åt med skiftläge. Arbetsytan har inte heller några begränsningar för vilka tecken som kan användas i resursnamn, hur långa resursnamnen är eller storleken på resurser på disk. Om du lagrar resurser i ett filsystem som inte är skiftlägeskänsligt, eller som har begränsningar för resursnamn, så kommer de begränsningarna givetvis att gälla när du försöker skapa och ändra resurser.

Exempel på ett resursträd

I trädet nedan (representerat i arbetsytans navigeringsvy) visas en typisk hierarki för resurser på en arbetsyta. Trädets (tänkta) rot är arbetsytans rot. Projekten är direkt underordnade objekt till arbetsytans rot. Varje nod (utom roten) är någon av de tre resurstyperna, och var och en har ett namn som skiljer sig från objekten på samma nivå.

Navigeringsvy med exempel på arbetsyta

Resursnamn är slumpmässiga strängar (åtminstone nästan, eftersom det måste vara giltiga filnamn). Själva plattformen avgör inte resursnamnen och har heller inga objekt med specifika namn.  (Ett undantag är att du inte kan kalla ett projekt ".metadata", eftersom det namnet används internt.)

Projekt innehåller filer och mappar men innehåller inte andra projekt. Projekt och mappar är som kataloger i ett filsystem.  När du tar bort ett projekt tillfrågas du om du vill ta bort alla filer och mappar som ingår i det.  Om du tar bort en mapp från ett projekt tas mappen och alla underordnade objekt bort. Att ta bort en fil fungerar på samma sätt som att ta bort en fil från filsystemet.