Como faço para remover ícones de itens de menu em um aplicativo baseado em Eclipse RCP?

StackOverflow https://stackoverflow.com/questions/1100747

  •  11-09-2019
  •  | 
  •  

Pergunta

Eu estou trabalhando em um aplicativo baseado em Eclipse RCP, e decidimos que não queremos qualquer um dos itens de menu para exibir ícones ao lado do texto. O problema que estamos vendo é que as ações padrão como Desfazer, Refazer, Cortar, Copiar, Colar e assim por diante todos exibir os ícones padrão para as ações correspondentes.

Existe alguma maneira de dizer a infra-estrutura de gerenciamento de ação para ignorar os ícones? Minha solução força bruta para esse era reconstruir o SWT para que MenuItem.setImage () foi um não-op, e, em seguida, incluem a nossa própria cópia do SWT no produto final, mas parece que deve haver uma solução mais leve .

Foi útil?

Solução

Este acabou por ser mais fácil do que eu esperava.

Criar uma subclasse de org.eclipse.ui.application.ActionBarAdvisor. Substituir o registo método como este:

protected void register(IAction action) {
    super.register(action);
    action.setImageDescriptor(null);
}

Em seguida, crie uma subclasse de org.eclipse.ui.application.WorkbenchWindowAdvisor que substitui createActionBarAdvisor:

public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
    return new MyActionBarAdvisor(configurer);
}

É isso. Todas as ações não terão ícones.

Outras dicas

Eu acredito que você quer examinar melhor indo para o manifesto e olhando para org.eclipse.ui.views e ver se há alguma coisa lá para a remoção de ícones

Qual é a razão para não incluir ícones? Um grande esforço foi para criar uma interface padrão, qual seria o benefício de se desviar do padrão? Você acha que a sua omissão aumenta usabilidade?

Tendo dito tudo o que você poderia tentar contribuir um fragmento com algum AspectJ em torno de conselhos para chamadas interceptar a setImage () e veto eles.

Você pode fazer isso indo até a guia de extensão em plugin.xml.add o org.eclipse.ui.menu extensão (se não estiver presente) .right clique criar uma nova contribution.again menu de clique direito e criar um novo menu .here u tem a opção de mudar as imagens com os salvos em sua pasta ícone no caminho de classe

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top