Os recursos e a área de trabalho

O hub central dos arquivos de dados do usuário é chamado de área de trabalho. Você pode pensar no workbench da plataforma como uma ferramenta que permite ao usuário navegar e manipular a área de trabalho. O plug-in de recursos fornece APIs para criação, navegação e manipulação de recursos em uma área de trabalho. O workbench utiliza essas APIs para fornecer essa funcionalidade ao usuário. O plug-in também pode utilizar essas APIs.

Do ponto de vista de um plug-in com base em recurso, há exatamente uma área de trabalho e ela está sempre aberta para negócios, desde que o plug-in esteja sendo executado. A área de trabalho é aberta automaticamente quando o plug-in de recursos é ativado e é fechada quando a plataforma é encerrada. Se o plug-in requer o plug-in de recursos, ele será iniciado antes do seu e a área de trabalho estará disponível para você.

A área de trabalho contém uma coleção de recursos. Da perspectiva do usuário, há três tipos diferentes de recursos: projetos, pastas e arquivos. Um projeto é uma coleção de qualquer número de arquivos e pastas. É um contêiner para a organização de outros recursos relacionados a uma área específica. Os arquivos e as pastas são como os arquivos e diretórios no sistema de arquivos. Uma pasta contém outras pastas ou arquivos. Um arquivo contém uma seqüência arbitrária de bytes. Seu conteúdo não é interpretado pela plataforma.

Os recursos de uma área de trabalho são organizados em uma estrutura em árvore, com os projetos no topo e as pastas e os arquivos abaixo. Um recurso especial, o recurso raiz da área de trabalho, serve como raiz da árvore de recursos. A raiz da área de trabalho é criada internamente quando a área de trabalho é criada e sua existência depende da existência dela.

Um espaço de trabalho pode ter qualquer número de projetos, cada um dos quais pode ser armazenado em um local diferente no disco.

O espaço de nomes do recurso do espaço de trabalho sempre faz distinção entre maiúsculas e minúsculas e as preserva. Portanto, o espaço de trabalho permite que vários recursos irmãos existam com nomes que têm distinção apenas entre maiúsculas e minúsculas. O espaço de trabalho também não coloca nenhuma restrição em caracteres válidos em nomes de recursos, no comprimento dos nomes de recursos ou no tamanho dos recursos no disco. Naturalmente, se você armazenar recursos em um disco que não faça distinção entre maiúsculas e minúsculas ou que tem restrições sobre nomes de recursos, essas restrições serão mostradas quando você realmente tentar criar e modificar recursos.

Um Exemplo de Árvores de Recursos

A árvore abaixo (representada na visualização do navegador do workbench) ilustra uma hierarquia de recursos típica em uma área de trabalho. A raiz (implícita) da árvore é a raiz da área de trabalho. Os projetos são filhos imediatos da raiz da área de trabalho. Cada nó (diferente da raiz) é um dos três tipos de recursos e cada um tem um nome que é diferente de seus irmãos.

Visualização Navegador com área de trabalho de exemplo

Os nomes de recurso são cadeias arbitrárias (quase -- eles devem ser nomes de arquivo válidos). A própria plataforma não dita nomes de recurso e nem especifica qualquer nome com significância especial.  (Uma exceção é que você não pode nomear um projeto ".metadata" pois esse nome é utilizado internamente.)

Os projetos contêm arquivos e pastas, mas não contêm outros projetos. Os projetos e as pastas são como diretórios em um sistema de arquivos.  Na exclusão de um projeto, é perguntado se você deseja excluir todos os arquivos e pastas que ele contém.  A exclusão de uma pasta de um projeto irá excluir a pasta e todos os seus filhos. A exclusão de um arquivo é parecida com a exclusão de um arquivo no sistema de arquivos.