Project

General

Profile

Download (2.82 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

    
11
package eu.etaxonomy.taxeditor.printpublisher.handler;
12

    
13
import java.util.UUID;
14

    
15
import org.eclipse.core.commands.AbstractHandler;
16
import org.eclipse.core.commands.ExecutionEvent;
17
import org.eclipse.core.commands.ExecutionException;
18
import org.eclipse.jface.wizard.WizardDialog;
19
import org.eclipse.ui.IEditorInput;
20
import org.eclipse.ui.IEditorPart;
21
import org.eclipse.ui.handlers.HandlerUtil;
22
import org.jdom.Element;
23

    
24
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
25
import eu.etaxonomy.cdm.print.IXMLEntityFactory;
26
import eu.etaxonomy.cdm.print.PublishConfigurator;
27
import eu.etaxonomy.cdm.print.out.pdf.PdfOutputModule;
28
import eu.etaxonomy.cdm.print.out.xml.XMLOutputModule;
29
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
30
import eu.etaxonomy.taxeditor.printpublisher.PrintUtil;
31
import eu.etaxonomy.taxeditor.printpublisher.wizard.DirectPublishingWizard;
32
import eu.etaxonomy.taxeditor.store.CdmStore;
33
import eu.etaxonomy.taxeditor.store.StoreUtil;
34

    
35
/**
36
 * <p>GeneratePdfHandler class.</p>
37
 *
38
 * @author n.hoffmann
39
 * @created Jul 20, 2010
40
 * @version 1.0
41
 */
42
public class GeneratePdfHandler extends AbstractHandler {
43
	
44
	private PublishConfigurator configurator;
45

    
46
	/** {@inheritDoc} */
47
	public Object execute(ExecutionEvent event) throws ExecutionException {
48
		// make the editors taxon the selected taxon to export
49
		IEditorPart editor = HandlerUtil.getActiveEditor(event);	
50

    
51
		IEditorInput input = editor.getEditorInput();
52
		
53
		if(!(input instanceof TaxonEditorInput)){
54
			StoreUtil.warningDialog("PDF generation not supported for selected input", this, "Generating PDF output is not supported for the current active editor");
55
			
56
			return null;
57
		}
58
		
59
		configurator = PublishConfigurator.NewLocalInstance((ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration());
60
		
61
		Element taxonNodeElement = getTaxonNodeElement((TaxonEditorInput) input);
62
		configurator.addSelectedTaxonNodeElements(taxonNodeElement);
63
		
64
		configurator.setDoPublishEntireBranches(false);
65
		
66
		configurator.addOutputModule(new PdfOutputModule());
67
		configurator.addOutputModule(new XMLOutputModule());
68
		
69
		DirectPublishingWizard wizard = new DirectPublishingWizard(configurator);
70
		WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);
71
		
72
		dialog.open();
73
		
74
		return null;
75
	}
76
	
77
	private Element getTaxonNodeElement(TaxonEditorInput input){
78
		
79
		UUID taxonNodeUuid = input.getTaxonNode().getUuid();
80
		
81
		IXMLEntityFactory factory = configurator.getFactory();
82
		
83
		Element taxonNodeElement = factory.getTaxonNode(taxonNodeUuid);
84
		
85
		return taxonNodeElement;
86
	}
87
}
    (1-1/1)