Pregunta

En Eclipse, es fácil especificar botones para su barra de herramientas utilizando el punto de extensión ActionSets. Sin embargo, cuando necesito especificar algunos elementos mediante programación, no puedo obtener el mismo aspecto. No creo que el marco esté usando botones nativos para estos, pero hasta ahora no puedo encontrar la receta adecuada para combinar con el aspecto de Eclipse. Quería ver si alguien ha encontrado el fragmento correcto para duplicar esta funcionalidad en el código.

¿Fue útil?

Solución

Es difícil distinguirlo de su pregunta, pero parece que puede estar intentando agregar un ControlContribution a la barra de herramientas y devolver un botón. Esto haría que el botón de la barra de herramientas aparezca como un botón nativo, como parece que estás describiendo. Esto se vería algo como esto:

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
            }
        });
     }
});

En su lugar, debe agregar una acción a la barra de herramientas. Esto creará un botón en la barra de herramientas que coincide con los botones de la barra de herramientas de eclipse estándar. Esto se vería algo como esto:

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

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

Otros consejos

¿Podrías poner un extracto del código que tienes para agregar acciones a la barra de herramientas mediante programación? ¿Asumo que haces esto en una clase ApplicationActionBarAdvisor ? No debería haber ninguna diferencia en el aspecto de los botones que agrega de forma declarativa frente a los que agrega mediante programación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top