Como faço para remover ícones de itens de menu em um aplicativo baseado em Eclipse RCP?
-
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 .
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