@Override
    public void actionPerformed(final ActionEvent event) {
        switch (event.getActionCommand()) {
        case COMMAND_ALG_1:
            processAlgorithm(new ToneMappingAlg1());
            break;
        case COMMAND_ALG_2:
            processAlgorithm(new ToneMappingAlg2());
            break;
        case COMMAND_ZOOM_IN:
            getCurrentTabImage().zoomIn(this.mainFrame.getWidth() / 2, mainFrame.getHeight() / 2);
            break;
        case COMMAND_ZOOM_OUT:
            getCurrentTabImage().zoomOut(this.mainFrame.getWidth() / 2, mainFrame.getHeight() / 2);
            break;
        case COMMAND_RESET_ZOOM:
            getCurrentTabImage().reset();
            break;

        default:
            // ignore
            break;
        }
        mainFrame.requestFocus();
    }