ch.elexis.core.ui.commands.BillingProposalRemoveHandler.java Source code

Java tutorial

Introduction

Here is the source code for ch.elexis.core.ui.commands.BillingProposalRemoveHandler.java

Source

/*******************************************************************************
 * Copyright (c) 2017 MEDEVIT <office@medevit.at>.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     MEDEVIT <office@medevit.at> - initial API and implementation
 ******************************************************************************/
package ch.elexis.core.ui.commands;

import java.util.List;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;

import ch.elexis.core.ui.views.rechnung.BillingProposalView;
import ch.elexis.core.ui.views.rechnung.BillingProposalView.BillingInformation;

public class BillingProposalRemoveHandler extends AbstractHandler implements IHandler {

    @SuppressWarnings("unchecked")
    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {
        ISelection selection = HandlerUtil.getCurrentSelection(event);
        if (selection != null && !selection.isEmpty()) {
            List<Object> selectionList = ((IStructuredSelection) selection).toList();
            // map to List<Konsultation> depending on type
            if (selectionList.get(0) instanceof BillingProposalView.BillingInformation) {
                BillingProposalView view = getOpenView(event);
                if (view != null) {
                    view.removeToBill((List<BillingInformation>) (List<?>) selectionList);
                }
            }
        }
        return null;
    }

    private BillingProposalView getOpenView(ExecutionEvent event) {
        try {
            IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
            IWorkbenchPage page = window.getActivePage();
            return (BillingProposalView) page.showView(BillingProposalView.ID);
        } catch (PartInitException e) {
            MessageDialog.openError(HandlerUtil.getActiveShell(event), "Fehler",
                    "Konnte Rechnungs-Vorschlag View nicht ffnen");
        }
        return null;
    }
}