Eclipse RCP Folder metodo members()

8 respostas
revton
Pessoal estou com um problema ao usar o Folder. Quando ele busca o que tem dentro da pasta como código abaixo, não está me retornando o que está dentro da pasta.
import org.eclipse.core.internal.resources.Folder;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.runtime.CoreException;

public Object[] getChildren(Object o) {
	if(o instanceof IFolder){
		Folder folder = (Folder) o;
		// TODO executar algo para fazer um refresh no objeto, pois a pasta não está vazia e retorna a lista vazia
		// por exemplo: folder.refresh();
		// Se eu verificar new File(folder.getLocationURI()).listFiles(); o mesmo retorna os arquivos dentro da pasta.
		try {
			return folder.members();
		} catch (CoreException e) {
			e.printStackTrace();
		}
	}
	return null;
}
Obrigado

8 Respostas

Ataxexe

Está retornando um array vazio ou lança uma CoreException?

Eu suspeito que esteja lançando uma CoreException, que é lançada caso a pasta não exista (não é o seu caso, pelo código comentado no seu post) ou que se refira a um projeto que não esteja aberto (acredito que seja essa a causa).

revton

Ataxexe:
Está retornando um array vazio ou lança uma CoreException?

Eu suspeito que esteja lançando uma CoreException, que é lançada caso a pasta não exista (não é o seu caso, pelo código comentado no seu post) ou que se refira a um projeto que não esteja aberto (acredito que seja essa a causa).

Lançando CoreException não está.
E sobre o projeto não está aberto, verifiquei que quando se passa pelo o Adapter correspondente a ele, o retorno do metodo isOpen é true.

O cenario desse problema é o seguinte:
Tenho uma IDE que quando faço um checkout e vou ao Explorer e executo uma ação que adiciona arquivos a pasta e vou a perspectiva Team Synchronizing e faço o synchronize, as pastas vem vazias.
Obs: Percebi que quando fecho a aplicação e abro novamente ele retorna o arquivo dentro da pasta.
Algo é feito durante o processo de desligar e ligar a IDE para que o objeto referente a pasta seja lido e tenha adicionado os arquivos da pasta.
Não faço nem ideia do que pode ser.

Mas alguma sugestão para eu verificar?

Ataxexe

Quando eu via esses problemas geralmente eram oriundos de operações de arquivos “por fora” do Eclipse. Talvez sua ação de adicionar os arquivos não esteja usando IFolder e IFile pra criar o conteúdo. Aí o Eclipse sincroniza os arquivos no startup e consegue ver as mudanças.

Agora que me toquei na parte

o Explorer que você se referiu é algo do tipo Windows Explorer ou uma view do Eclipse?

Ataxexe

Outro ponto: se não me falha a memória, é necessário o comando svn add para que os arquivos copiados apareçam na sincronização. Não sei dizer como fazer isso pelo plugin do Eclipse, mas deve ter algo por dentro dele (ou já encapsulado nas operações de arquivo pelo próprio Eclipse).

revton

Ataxexe:
Quando eu via esses problemas geralmente eram oriundos de operações de arquivos “por fora” do Eclipse. Talvez sua ação de adicionar os arquivos não esteja usando IFolder e IFile pra criar o conteúdo. Aí o Eclipse sincroniza os arquivos no startup e consegue ver as mudanças.

Agora que me toquei na parte

o Explorer que você se referiu é algo do tipo Windows Explorer ou uma view do Eclipse?

é uma View que eu criei.

Ataxexe

revton:
Ataxexe:
Quando eu via esses problemas geralmente eram oriundos de operações de arquivos “por fora” do Eclipse. Talvez sua ação de adicionar os arquivos não esteja usando IFolder e IFile pra criar o conteúdo. Aí o Eclipse sincroniza os arquivos no startup e consegue ver as mudanças.

Agora que me toquei na parte

o Explorer que você se referiu é algo do tipo Windows Explorer ou uma view do Eclipse?

é uma View que eu criei.

E como você faz a operação de adicionar os arquivos?

revton

Acho que descobri o porque não aparece os arquivos que estão nessa pasta.
Não adiciono os arquivos ao meu objeto, pois são arquivos que gravo informações usando ObjectOutputStream e não precisam aparecer na view que aparecem os projetos.

Vou refazer algumas coisas da estrutura relacionada a esses arquivos para adicionar eles ao objeto, mas não aparecendo na view.
Quando eu terminar de fazer isso, volto aqui para dizer se funcionou ou não.

Muito obrigado Ataxexe pela atenção e a ajuda! =)

Ataxexe

Acho que descobri o porque não aparece os arquivos que estão nessa pasta.
Não adiciono os arquivos ao meu objeto, pois são arquivos que gravo informações usando ObjectOutputStream e não precisam aparecer na view que aparecem os projetos.

Vou refazer algumas coisas da estrutura relacionada a esses arquivos para adicionar eles ao objeto, mas não aparecendo na view.
Quando eu terminar de fazer isso, volto aqui para dizer se funcionou ou não.

Muito obrigado Ataxexe pela atenção e a ajuda! =)

Disponha! Manda ver aí e nos diga o resultado depois. :thumbup:

Criado 5 de novembro de 2012
Ultima resposta 7 de nov. de 2012
Respostas 8
Participantes 2