Package org.epic.perleditor.actions

Source Code of org.epic.perleditor.actions.ExportHtmlSourceAction

package org.epic.perleditor.actions;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PlatformUI;
import org.epic.perleditor.PerlEditorPlugin;
import org.epic.perleditor.editors.PerlEditor;
import org.epic.perleditor.editors.PerlEditorActionIds;
import org.epic.perleditor.editors.util.SourceFormatter;
import org.epic.perleditor.preferences.SourceFormatterPreferences;


public class ExportHtmlSourceAction extends PerlEditorAction
{
    //~ Static fields/initializers

    private static String lastSelectedDir;

    //~ Constructors

    public ExportHtmlSourceAction(PerlEditor editor)
    {
        super(editor);
    }

    //~ Methods

    protected void doRun()
    {
        PerlEditor editor = getEditor();
        IFileEditorInput editorInput = (IFileEditorInput) editor.getEditorInput();
        String filePath = editorInput.getFile().getLocation().makeAbsolute().toString();

        // Display directory dialog
        DirectoryDialog directoryDialog =
            new DirectoryDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                SWT.SAVE);
        directoryDialog.setText("Select Output Directory");
        directoryDialog.setMessage("HTML Export...");

        directoryDialog.setFilterPath(lastSelectedDir);

        String outputDir = directoryDialog.open();
        if (outputDir == null) return;
       
        lastSelectedDir = outputDir;

        // Export options
        List cmdList = new ArrayList();

        cmdList.add("-html");
        cmdList.add("-opath");
        cmdList.add(outputDir);

        // Add additional options
        IPreferenceStore store = PerlEditorPlugin.getDefault().getPreferenceStore();
        StringTokenizer st =
            new StringTokenizer(store.getString(
                    SourceFormatterPreferences.HTML_EXPORT_OPTIONS));
        while (st.hasMoreTokens())
        {
            cmdList.add(st.nextToken());
        }

        // last thing has to be the input file name
        cmdList.add(filePath);

        try
        {
            SourceFormatter.format(
                editor.getViewer().getDocument().get(),
                cmdList,
                getLog());
        }
        catch (CoreException e)
        {
            log(e.getStatus());
            MessageDialog.openError(
                getEditor().getSite().getShell(),
                "HTML export failed",
                e.getMessage());
        }
    }

    protected String getPerlEditorActionId()
    {
        return PerlEditorActionIds.HTML_EXPORT;
    }
}
TOP

Related Classes of org.epic.perleditor.actions.ExportHtmlSourceAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.