Eclipse RCP Mostrar mensagem usando org.eclipse.ui.console

6 respostas
revton

Pessoal, estou fazendo uma aplicação Eclipse RCP.

No qual inclui o console.
O meu problema é quando adiciono uma mensagem para ser mostrada no console.
Hoje só no final do ciclo de todo o processo da action é mostrado a mensagem no console.
Alguém saberia me informar uma forma de mostrar mensagem após usar o messageStream.println()?

public class ManageConsole {

	Action action = new Action(){
		@Override
		public void run() {
			MessageConsoleStream messageStream = findConsole("console").newMessageStream();
			messageStream.println("teste!!!");
			// O que fazer para forçar mostrar a mensagem no console após usar o println???
		}
	};
	
	public static MessageConsole findConsole(String name) {
	      ConsolePlugin plugin = ConsolePlugin.getDefault();
	      IConsoleManager conMan = plugin.getConsoleManager();
	      IConsole[] existing = conMan.getConsoles();
	      for (int i = 0; i < existing.length; i++)
	         if (name.equals(existing[i].getName()))
	            return (MessageConsole) existing[i];
	      MessageConsole myConsole = new MessageConsole(name, null);
	      conMan.addConsoles(new IConsole[]{myConsole});
	      return console;
	   }
}

Obrigado

6 Respostas

Ataxexe

Forçar a console a aparecer é uma opção do usuário, mas é persistida nos metadados de preferências. Eu não me recordo a preferência e no momento estou sem nada no meu notebook pra procurar pra você, mas você pode dar uma olhada na implementação da console padrão do plugin JDT pra ter uma ideia.

Em tempo: se você realmente precisa mostrar uma mensagem e quer que o usuário a veja, talvez seja melhor usar o MessageDialog em vez da Console.

revton

Ataxexe:
Forçar a console a aparecer é uma opção do usuário, mas é persistida nos metadados de preferências. Eu não me recordo a preferência e no momento estou sem nada no meu notebook pra procurar pra você, mas você pode dar uma olhada na implementação da console padrão do plugin JDT pra ter uma ideia.

Em tempo: se você realmente precisa mostrar uma mensagem e quer que o usuário a veja, talvez seja melhor usar o MessageDialog em vez da Console.

Não entendi, como assim o console aparecer é uma opção do usuário?
A unica coisa que preciso e após usar o messageStream.println(“teste!!!”); fazer aparecer na tela do Console o que está sendo passado na String.

Ataxexe

Eu tinha entendido que você queria fazer o console aparecer depois da mensagem e não a própria mensagem.

Seu código me parece correto. O que eu sugiro é você adicionar o Error View no seu projeto pra ver se não tem algo de errado acontecendo antes do println.

revton

Ataxexe:
Eu tinha entendido que você queria fazer o console aparecer depois da mensagem e não a própria mensagem.

Seu código me parece correto. O que eu sugiro é você adicionar o Error View no seu projeto pra ver se não tem algo de errado acontecendo antes do println.

Eu quero que a mensagem apareça em tempo real, pois hoje se eu der um messageStream.println, é só adicionado a mensagem a algum objeto e tenho que aguardar o ciclo que ele tem para a mensagem aparecer no console.

Teria que ter algo do tipo:

messageStream.println("Teste");
messageStream.forcaMostrarMensagemNoConsole();

Não acontece erro na execução, assim o uso da view de Error não é necessário.

Alguma ideia de como fazer isso?

Ataxexe

Bom, nesse caso eu não saberia te dizer como fazer isso.

Em todo caso eu aconselho mesmo você incluir o Error View quando estiver desenvolvendo a aplicação, é uma mão na roda pra depurar e resolver problemas mais facilmente.

[edit]Me desculpe, eu realmente poderia ter entendido melhor se tivesse lido com menos pressa. Falha minha =][/edit]

revton

Ataxexe:
Bom, nesse caso eu não saberia te dizer como fazer isso.

Em todo caso eu aconselho mesmo você incluir o Error View quando estiver desenvolvendo a aplicação, é uma mão na roda pra depurar e resolver problemas mais facilmente.

Apenas uma dica com relação ao uso do fórum: seja mais objetivo nas postagens pois essa necessidade de ser em tempo real faria toda a diferença para alguém postar uma resposta pra você :wink:

Com certeza… obrigado

Criado 27 de julho de 2012
Ultima resposta 31 de jul. de 2012
Respostas 6
Participantes 2