Pergunta

Em Eclipse, é fácil de especificar botões para sua barra de ferramentas usando o ponto de extensão ActionSets. No entanto, quando eu preciso especificar alguns itens programaticamente, não posso obter o mesmo olhar. Eu não acredito que o quadro está usando botões nativas para estes, mas até agora, não consigo encontrar a receita certa para combinar com o visual Eclipse. Eu queria ver se alguém encontrou o fragmento direito de duplicar esta funcionalidade no código.

Foi útil?

Solução

É difícil dizer de sua pergunta, mas parece que você pode estar tentando adicionar um ControlContribution à barra de ferramentas e retornando um botão. Isto faria com que o botão na barra de ferramentas aparecer como um botão nativa como você parece estar descrevendo. Isso seria algo parecido com isto:

IToolBarManager toolBarManager = actionBars.getToolBarManager();
toolBarManager.add(new ControlContribution("Toggle Chart") {
    @Override
    protected Control createControl(Composite parent)
    {
        Button button = new Button(parent, SWT.PUSH);
        button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
                // Perform action
            }
        });
     }
});

Em vez disso, você deve adicionar uma Ação para a barra de ferramentas. Isto irá criar um botão na barra de ferramentas que coincide com os botões da barra de ferramentas eclipse padrão. Isso seria algo parecido com isto:

Action myAction = new Action("", imageDesc) {
    @Override
    public void run() {
        // Perform action
    }
};

IToolBarManager toolBarManager = actionBars.getToolBarManager();
toolBarManager.add(myAction);

Outras dicas

Você poderia, talvez, colocar em um trecho do código que você tem para adicionar ações programaticamente à barra de ferramentas? Eu suponho que você fazer isso em um ApplicationActionBarAdvisor classe? Sua deve haver nenhuma diferença na aparência de botões que você adicionar declarativamente vs aqueles que você adicionar programaticamente.

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