demo.handler.ExportTableHandler.java Source code

Java tutorial

Introduction

Here is the source code for demo.handler.ExportTableHandler.java

Source

/*******************************************************************************
 * Caleydo - Visualization for Molecular Biology - http://caleydo.org
 * Copyright (c) The Caleydo Team. All rights reserved.
 * Licensed under the new BSD license, available at http://caleydo.org/license
 ******************************************************************************/
package demo.handler;

import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.caleydo.vis.lineup.model.RankTableModel;
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.ProgressMonitorDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PlatformUI;

import demo.ARcpRankTableDemoView;
import demo.project.ExportTable;

public class ExportTableHandler extends AbstractHandler implements IHandler {
    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {

        IWorkbenchPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
        if (!(part instanceof ARcpRankTableDemoView)) {
            return null;
        }
        RankTableModel table = ((ARcpRankTableDemoView) part).getTable();
        if (table == null)
            return null;

        FileDialog fileDialog = new FileDialog(new Shell(), SWT.SAVE);
        fileDialog.setText("Export Table");
        String[] filterExt = { "*.csv" };
        fileDialog.setFilterExtensions(filterExt);

        String filePath = "lineup-table_" + new SimpleDateFormat("yyyy.MM.dd_HH.mm").format(new Date()) + ".csv";

        fileDialog.setFileName(filePath);
        final String fileName = fileDialog.open();
        if (fileName == null)
            return null;

        try {
            new ProgressMonitorDialog(Display.getCurrent().getActiveShell()).run(true, false,
                    new ExportTable(table, new File(fileName)));
        } catch (InvocationTargetException | InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
}