taxeditor-navigation/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml -text
taxeditor-navigation/src/test/resources/eu/etaxonomy/cdm/defaultApplicationContext.xml -text
taxeditor-navigation/src/test/resources/log4j.properties -text
+taxeditor-printpublisher/META-INF/MANIFEST.MF -text
+taxeditor-printpublisher/build.properties -text
+taxeditor-printpublisher/plugin.xml -text
+taxeditor-printpublisher/pom.xml -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/handler/GeneratePdfHandler.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/internal/PrintpublisherPlugin.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/AbstractPublishWizard.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/AbstractPublishWizardPage.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/DirectPublishingWizard.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/OptionsWizardPage.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/OverviewWizardPage.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/PublishWizardODF.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/PublishWizardPDF.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/PublishWizardTaxPub.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/PublishWizardXML.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/SelectFeatureTreeWizardPage.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/SelectFolderWizardPage.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/SelectServiceWizardPage.java -text
+taxeditor-printpublisher/src/main/java/eu/etaxonomy/printpublisher/wizard/SelectTaxaWizardPage.java -text
taxeditor-store/META-INF/MANIFEST.MF -text
taxeditor-store/build.properties -text
taxeditor-store/icons/256color_16x16.bmp -text
taxeditor-navigation/.project
taxeditor-navigation/.settings
taxeditor-navigation/target
+taxeditor-printpublisher/.classpath
+taxeditor-printpublisher/.project
+taxeditor-printpublisher/.settings
+taxeditor-printpublisher/target
taxeditor-store/.classpath
taxeditor-store/.project
taxeditor-store/.settings
--- /dev/null
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: CDM Print Publisher Plugin
+Bundle-SymbolicName: eu.etaxonomy.printpublisher.plugin;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Require-Bundle: org.eclipse.osgi;bundle-version="3.5.2",
+ org.eclipse.ui;bundle-version="3.5.2",
+ eu.etaxonomy.cdmlib;bundle-version="2.4.0",
+ eu.etaxonomy.printpublisher.core;bundle-version="1.0.0",
+ eu.etaxonomy.taxeditor.editor;bundle-version="2.1.0",
+ eu.etaxonomy.taxeditor.store;bundle-version="2.1.0"
+Import-Package: org.apache.log4j,
+ org.eclipse.core.runtime;version="3.4.0",
+ org.osgi.framework;version="1.5.0"
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: EDIT
+Bundle-Activator: eu.etaxonomy.printpublisher.internal.PrintpublisherPlugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
--- /dev/null
+source.. = src/main/java/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.exportWizards">
+ <category
+ id="print-publisher.category"
+ name="Print Publishing">
+ </category>
+ <wizard
+ category="print-publisher.category"
+ class="eu.etaxonomy.printpublisher.wizard.PublishWizardXML"
+ id="print-publisher.wizardXml"
+ name="CDM-XML">
+ </wizard>
+ <wizard
+ category="print-publisher.category"
+ class="eu.etaxonomy.printpublisher.wizard.PublishWizardODF"
+ id="print-publisher.wizardOdf"
+ name="ODF">
+ </wizard>
+ <wizard
+ category="print-publisher.category"
+ class="eu.etaxonomy.printpublisher.wizard.PublishWizardPDF"
+ id="print-publisher.wizardPdf"
+ name="PDF">
+ </wizard>
+ <wizard
+ category="print-publisher.category"
+ class="eu.etaxonomy.printpublisher.wizard.PublishWizardTaxPub"
+ id="print-publisher.wizardTaxPub"
+ name="TaxPub">
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="menu:org.eclipse.ui.main.menu.file?after=eu.etaxonomy.taxeditor.application.filemenu.save">
+ <command
+ commandId="eu.etaxonomy.printpublisher.plugin.generatePdf"
+ label="Generate PDF"
+ style="push">
+ </command>
+ <separator
+ name="eu.etaxonomy.printpublisher.plugin.separator"
+ visible="true">
+ </separator>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ defaultHandler="eu.etaxonomy.printpublisher.handler.GeneratePdfHandler"
+ id="eu.etaxonomy.printpublisher.plugin.generatePdf"
+ name="Generate PDF">
+ </command>
+ </extension>
+
+</plugin>
--- /dev/null
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>printpublisher-parent</artifactId>
+ <groupId>eu.etaxonomy</groupId>
+ <version>1.0</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>eu.etaxonomy</groupId>
+
+ <artifactId>printpublisher-plugin</artifactId>
+
+ <packaging>jar</packaging>
+
+ <version>1.0-SNAPSHOT</version>
+
+ <name>printpublisher-plugin</name>
+
+ <url>http://maven.apache.org</url>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.handler;
+
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.jdom.Element;
+
+import eu.etaxonomy.printpublisher.IXMLEntityFactory;
+import eu.etaxonomy.printpublisher.PublishConfigurator;
+import eu.etaxonomy.printpublisher.out.pdf.PdfOutputModule;
+import eu.etaxonomy.printpublisher.out.xml.XMLOutputModule;
+import eu.etaxonomy.printpublisher.wizard.DirectPublishingWizard;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+
+/**
+ * @author n.hoffmann
+ * @created Jul 20, 2010
+ * @version 1.0
+ */
+public class GeneratePdfHandler extends AbstractHandler {
+ private static final Logger logger = Logger.getLogger(GeneratePdfHandler.class);
+
+ private PublishConfigurator configurator;
+
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ configurator = PublishConfigurator.NewLocalInstance(CdmStore.getCurrentApplicationController());
+ configurator.setDoPublishEntireBranches(false);
+
+ configurator.addOutputModule(new XMLOutputModule());
+ configurator.addOutputModule(new PdfOutputModule());
+
+ // make the editors taxon the selected taxon to export
+ IEditorPart editor = HandlerUtil.getActiveEditor(event);
+ Element taxonNodeElement = getTaxonNodeElement(editor);
+ configurator.addSelectedTaxonNodeElements(taxonNodeElement);
+
+ // while testing
+// configurator.setFeatureTree(UUID.fromString("168df0c6-6429-484c-b26f-ded1f7e44bd9"));
+// configurator.setExportFolder(new File("/Users/n.hoffmann/Desktop/"));
+//
+// ConversationHolder conversation = CdmStore.createConversation();
+// conversation.close();
+//// try{
+// Publisher.publish(configurator);
+//// conversation.commit();
+//// }finally{
+//// conversation.close();
+//// }
+
+
+ // enable this when not testing
+ DirectPublishingWizard wizard = new DirectPublishingWizard(configurator);
+ WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);
+
+ int result = dialog.open();
+
+ if(result != Status.OK || result != Status.CANCEL){
+ throw new RuntimeException("An error occurred during print publishing.");
+ }
+
+ return null;
+ }
+
+ private Element getTaxonNodeElement(IEditorPart editor){
+
+
+ TaxonEditorInput input = (TaxonEditorInput) editor.getEditorInput();
+
+ UUID taxonNodeUuid = input.getTaxonNode().getUuid();
+
+ IXMLEntityFactory factory = configurator.getFactory();
+
+ Element taxonNodeElement = factory.getTaxonNode(taxonNodeUuid);
+
+ return taxonNodeElement;
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.internal;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * @author n.hoffmann
+ * @created Jul 15, 2010
+ * @version 1.0
+ */
+public class PrintpublisherPlugin extends AbstractUIPlugin {
+ private static final Logger logger = Logger
+ .getLogger(PrintpublisherPlugin.class);
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.editor";
+
+ // The shared instance
+ private static PrintpublisherPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public PrintpublisherPlugin() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ logger.trace("Plugin started: " + this.getBundle().getSymbolicName());
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ logger.trace("Plugin stopped");
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static PrintpublisherPlugin getDefault() {
+ return plugin;
+ }
+}
--- /dev/null
+/**
+ *
+ */
+package eu.etaxonomy.printpublisher.wizard;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.IExportWizard;
+import org.eclipse.ui.IWorkbench;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.printpublisher.IHarvestObserver;
+import eu.etaxonomy.printpublisher.PublishConfigurator;
+import eu.etaxonomy.printpublisher.Publisher;
+import eu.etaxonomy.printpublisher.out.IPublishOutputModule;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ *
+ * @author n.hoffmann
+ * @created Apr 1, 2010
+ * @version 1.0
+ */
+public class AbstractPublishWizard extends Wizard implements IExportWizard{
+ private static final Logger logger = Logger
+ .getLogger(AbstractPublishWizard.class);
+
+ public static final String PAGE_SERVICE = "PAGE_SERVICE";
+ public static final String PAGE_TAXA = "PAGE_TAXA";
+ public static final String PAGE_OPTIONS = "PAGE_OPTIONS";
+ public static final String PAGE_FOLDER = "PAGE_FOLDER";
+ public static final String PAGE_OVERVIEW = "PAGE_OVERVIEW";
+ public static final String PAGE_FEATURETREE = "PAGE_FEATURETREE";
+
+ protected SelectServiceWizardPage pageService;
+ protected SelectTaxaWizardPage pageTaxa;
+ protected OptionsWizardPage pageOptions;
+ protected SelectFeatureTreeWizardPage pageFeatureTree;
+ protected SelectFolderWizardPage pageFolder;
+ protected OverviewWizardPage pageOverview;
+
+ private PublishConfigurator configurator;
+
+ private IPublishOutputModule outputModule;
+
+ public AbstractPublishWizard(){
+ setNeedsProgressMonitor(true);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#performFinish()
+ */
+ @Override
+ public boolean performFinish() {
+
+ IRunnableWithProgress runnable = new IRunnableWithProgress() {
+
+ public void run(final IProgressMonitor monitor)
+ throws InvocationTargetException, InterruptedException {
+ monitor.beginTask("Exporting Printable Output", getConfigurator().calculateNumberOfNodes() + 1);
+ try{
+ IHarvestObserver observer = new IHarvestObserver() {
+
+ public void update(String taskName) {
+ monitor.setTaskName(taskName);
+ monitor.worked(1);
+
+ }
+ };
+ getConfigurator().addObserver(observer);
+
+ Publisher.publish(configurator);
+ }finally{
+ monitor.done();
+ }
+
+ }
+ };
+
+ ConversationHolder conversation = null;
+
+ try {
+ if(getConfigurator().isLocal()){
+ conversation= CdmStore.createConversation();
+ }
+ getContainer().run(false, true, runnable);
+
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }finally{
+ if(conversation != null) conversation.close();
+ }
+
+ return true;
+ }
+
+ @Override
+ public void addPages() {
+ super.addPages();
+
+ pageService = new SelectServiceWizardPage(PAGE_SERVICE);
+ addPage(pageService);
+
+ pageTaxa = new SelectTaxaWizardPage(PAGE_TAXA);
+ addPage(pageTaxa);
+
+ pageOptions = new OptionsWizardPage(PAGE_OPTIONS);
+ addPage(pageOptions);
+
+ pageFeatureTree = new SelectFeatureTreeWizardPage(PAGE_FEATURETREE);
+ addPage(pageFeatureTree);
+
+ pageFolder = new SelectFolderWizardPage(PAGE_FOLDER);
+ addPage(pageFolder);
+
+ pageOverview = new OverviewWizardPage(PAGE_OVERVIEW);
+ addPage(pageOverview);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ logger.warn("Instantiating wizard: " + this.getClass().getSimpleName());
+ }
+
+
+
+ @Override
+ public boolean canFinish() {
+ return pageService.isPageComplete() &&
+ pageTaxa.isPageComplete() &&
+ pageFeatureTree.isPageComplete() &&
+ pageFolder.isPageComplete();
+ }
+
+ protected PublishConfigurator getConfigurator() {
+ return configurator;
+ }
+
+ protected void setConfigurator(PublishConfigurator configurator){
+ this.configurator = configurator;
+ }
+
+ protected void setOutputModule(IPublishOutputModule outputModule){
+ this.outputModule = outputModule;
+ }
+
+ public IPublishOutputModule getOutputModule(){
+ return outputModule;
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.wizard;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.wizard.WizardPage;
+
+import eu.etaxonomy.printpublisher.PublishConfigurator;
+import eu.etaxonomy.printpublisher.out.IPublishOutputModule;
+
+/**
+ * @author n.hoffmann
+ * @created Apr 27, 2010
+ * @version 1.0
+ */
+public abstract class AbstractPublishWizardPage extends WizardPage {
+
+
+ private static final Logger logger = Logger
+ .getLogger(AbstractPublishWizardPage.class);
+
+ protected AbstractPublishWizardPage(String pageName) {
+ super(pageName);
+ }
+
+ public PublishConfigurator getConfigurator(){
+ return ((AbstractPublishWizard) getWizard()).getConfigurator();
+ }
+
+ public void setConfigurator(PublishConfigurator configurator){
+ ((AbstractPublishWizard) getWizard()).setConfigurator(configurator);
+ }
+
+ public IPublishOutputModule getOutputModule(){
+ IPublishOutputModule outputModule = ((AbstractPublishWizard) getWizard()).getOutputModule();
+ if(outputModule == null)
+ throw new IllegalStateException("OutputModule may not be null at this moment");
+ return outputModule;
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.wizard;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.wizard.Wizard;
+
+import eu.etaxonomy.printpublisher.PublishConfigurator;
+
+/**
+ * @author n.hoffmann
+ * @created Aug 6, 2010
+ * @version 1.0
+ */
+public class DirectPublishingWizard extends AbstractPublishWizard {
+ private static final Logger logger = Logger
+ .getLogger(DirectPublishingWizard.class);
+
+ public DirectPublishingWizard(PublishConfigurator configurator) {
+ setConfigurator(configurator);
+ setOutputModule(configurator.getOutputModules().iterator().next());
+ }
+
+ @Override
+ public void addPages() {
+ pageOptions = new OptionsWizardPage(PAGE_OPTIONS);
+ addPage(pageOptions);
+
+ pageFeatureTree = new SelectFeatureTreeWizardPage(PAGE_FEATURETREE);
+ addPage(pageFeatureTree);
+
+ pageFolder = new SelectFolderWizardPage(PAGE_FOLDER);
+ addPage(pageFolder);
+
+ pageOverview = new OverviewWizardPage(PAGE_OVERVIEW);
+ addPage(pageOverview);
+ }
+
+ @Override
+ public boolean performFinish() {
+ return super.performFinish();
+ }
+
+ public boolean canFinish() {
+ return pageFeatureTree.isPageComplete()
+ && pageFolder.isPageComplete();
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.wizard;
+
+import org.apache.log4j.Logger;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author n.hoffmann
+ * @created Jul 26, 2010
+ * @version 1.0
+ */
+public class OptionsWizardPage extends AbstractPublishWizardPage implements SelectionListener{
+
+
+ private static final Logger logger = Logger
+ .getLogger(OptionsWizardPage.class);
+ private Button button_doSynonymy;
+ private Button button_doDescriptions;
+ private Button button_doImages;
+ private Button button_doPublishEntireBranches;
+ private Composite composite;
+
+ protected OptionsWizardPage(String pageName) {
+ super(pageName);
+ setTitle("Select options");
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+
+ composite = new Composite(parent, SWT.NULL);
+ composite.setLayout(new GridLayout());
+
+ button_doPublishEntireBranches = new Button(composite, SWT.CHECK);
+ button_doPublishEntireBranches.setText("Publish the entire branch for selected taxa (i.e. all taxonomically included taxa)");
+ button_doPublishEntireBranches.addSelectionListener(this);
+
+ button_doSynonymy = new Button(composite, SWT.CHECK);
+ button_doSynonymy.setText("Publish Synonymy");
+ button_doSynonymy.addSelectionListener(this);
+
+ button_doDescriptions = new Button(composite, SWT.CHECK);
+ button_doDescriptions.setText("Publish Descriptions");
+ button_doDescriptions.addSelectionListener(this);
+
+ button_doImages = new Button(composite, SWT.CHECK);
+ button_doImages.setText("Publish Images (not supported yet)");
+ button_doImages.addSelectionListener(this);
+
+ initButtons();
+
+ setControl(composite);
+ }
+
+ private void initButtons() {
+ button_doPublishEntireBranches.setSelection(getConfigurator().isDoPublishEntireBranches());
+ button_doSynonymy.setSelection(getConfigurator().isDoSynonymy());
+ button_doDescriptions.setSelection(getConfigurator().isDoDescriptions());
+ button_doImages.setSelection(getConfigurator().isDoImages());
+ }
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ getConfigurator().setDoPublishEntireBranches(button_doPublishEntireBranches.getSelection());
+ getConfigurator().setDoSynonymy(button_doSynonymy.getSelection());
+ getConfigurator().setDoDescriptions(button_doDescriptions.getSelection());
+ getConfigurator().setDoImages(button_doImages.getSelection());
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {}
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.wizard;
+
+import org.apache.log4j.Logger;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+/**
+ * @author n.hoffmann
+ * @created Apr 6, 2010
+ * @version 1.0
+ */
+public class OverviewWizardPage extends AbstractPublishWizardPage {
+ private static final Logger logger = Logger
+ .getLogger(OverviewWizardPage.class);
+
+ private Composite composite;
+
+ private Label serviceUrl;
+
+ private Label exportFolder;
+
+ /**
+ * @param pageName
+ */
+ public OverviewWizardPage(String pageName) {
+ super(pageName);
+ setTitle("Overview");
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createControl(Composite parent) {
+
+ composite = new Composite(parent, SWT.NULL);
+ composite.setLayout(new GridLayout());
+
+// serviceUrl = new Label(composite, SWT.NULL);
+
+ exportFolder = new Label(composite, SWT.NULL);
+
+ setControl(composite);
+ }
+
+ public void refresh() {
+// serviceUrl.setText(getConfigurator().getWebserviceUrl().toString());
+ exportFolder.setText(getConfigurator().getExportFolder().toString());
+ composite.layout();
+ }
+}
--- /dev/null
+/**
+ *
+ */
+package eu.etaxonomy.printpublisher.wizard;
+
+import eu.etaxonomy.printpublisher.out.odf.OdfOutputModule;
+
+
+/**
+ *
+ * @author n.hoffmann
+ * @created Apr 1, 2010
+ * @version 1.0
+ */
+public class PublishWizardODF extends AbstractPublishWizard {
+
+ /**
+ *
+ */
+ public PublishWizardODF() {
+ setOutputModule(new OdfOutputModule());
+ setWindowTitle("Publish ODF");
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.wizard;
+
+import org.eclipse.ui.IExportWizard;
+
+import eu.etaxonomy.printpublisher.out.pdf.PdfOutputModule;
+
+/**
+ * @author n.hoffmann
+ * @created Aug 4, 2010
+ * @version 1.0
+ */
+public class PublishWizardPDF extends AbstractPublishWizard implements
+ IExportWizard {
+
+ public PublishWizardPDF(){
+ setOutputModule(new PdfOutputModule());
+ setWindowTitle("Publish PDF");
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.wizard;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.IExportWizard;
+
+import eu.etaxonomy.printpublisher.out.taxpub.TaxPubOutputModule;
+
+/**
+ * @author n.hoffmann
+ * @created Aug 4, 2010
+ * @version 1.0
+ */
+public class PublishWizardTaxPub extends AbstractPublishWizard implements
+ IExportWizard {
+ private static final Logger logger = Logger
+ .getLogger(PublishWizardTaxPub.class);
+
+ public PublishWizardTaxPub(){
+ setOutputModule(new TaxPubOutputModule());
+ setWindowTitle("Publish TaxPub");
+ }
+}
--- /dev/null
+/**
+ *
+ */
+package eu.etaxonomy.printpublisher.wizard;
+
+import org.eclipse.ui.IExportWizard;
+
+import eu.etaxonomy.printpublisher.out.xml.XMLOutputModule;
+
+
+
+/**
+ *
+ * @author n.hoffmann
+ * @created Apr 1, 2010
+ * @version 1.0
+ */
+public class PublishWizardXML extends AbstractPublishWizard implements IExportWizard{
+ /**
+ *
+ */
+ public PublishWizardXML() {
+ setOutputModule(new XMLOutputModule());
+ setWindowTitle("Publish XML");
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.wizard;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.jdom.Element;
+
+import eu.etaxonomy.printpublisher.IXMLEntityFactory;
+import eu.etaxonomy.printpublisher.XMLHelper;
+import eu.etaxonomy.taxeditor.featuretree.FeatureTreeEditorWizard;
+
+/**
+ * @author n.hoffmann
+ * @created Aug 6, 2010
+ * @version 1.0
+ */
+public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage implements ISelectionChangedListener{
+
+
+ private static final Logger logger = Logger
+ .getLogger(SelectFeatureTreeWizardPage.class);
+ private ListViewer viewer;
+ private IStructuredSelection selection;
+
+ protected SelectFeatureTreeWizardPage(String pageName) {
+ super(pageName);
+ setTitle("Select Feature Tree");
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ public void createControl(Composite parent) {
+ setPageComplete(false);
+
+ Composite composite = new Composite(parent, SWT.NULL);
+ composite.setLayout(new GridLayout());
+
+ viewer = new ListViewer(composite);
+ viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ viewer.setContentProvider(new FeatureTreeContentProvider());
+ viewer.setLabelProvider(new FeatureTreeLabelProvider());
+
+ viewer.addSelectionChangedListener(this);
+
+ // offer feature tree editor when local
+ if(getConfigurator().isLocal()){
+ final Button button_openFeatureTree = new Button(composite, SWT.PUSH);
+ button_openFeatureTree.setText("Open FeatureTree Editor");
+
+ button_openFeatureTree.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ FeatureTreeEditorWizard featureTreeEditorDialog = new FeatureTreeEditorWizard();
+ WizardDialog dialog = new WizardDialog(getShell(), featureTreeEditorDialog);
+
+ if(dialog.open() == IStatus.OK){
+ refresh();
+ }
+ }
+ });
+ }
+
+ // when using a local factory we can set the input right here
+ if(getConfigurator() != null && getConfigurator().isLocal()){
+ refresh();
+ }
+
+ setControl(composite);
+ }
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ selection = (IStructuredSelection) event.getSelection();
+
+ setPageComplete(selection.size() == 1);
+
+ if(selection.size() == 1){
+ Element featureTreeElement = (Element) selection.getFirstElement();
+
+ UUID featureTreeUuid = XMLHelper.getUuid(featureTreeElement);
+
+ getConfigurator().setFeatureTree(featureTreeUuid);
+ }else if(selection.size() > 1){
+ setErrorMessage("Please select only one feature tree.");
+ }
+ }
+
+ @Override
+ public boolean canFlipToNextPage() {
+ return (isPageComplete() && selection.size() == 1);
+ }
+
+ /**
+ * Refreshes the input of the viewer
+ */
+ public void refresh() {
+ IXMLEntityFactory factory = getConfigurator().getFactory();
+
+ List<Element> featureTrees = factory.getFeatureTrees();
+ List<Element> realFeatureTrees = new ArrayList<Element>();
+ for(Element featureTree : featureTrees){
+ if(XMLHelper.getClazz(featureTree).equals("FeatureTree")){
+ realFeatureTrees.add(featureTree);
+ }
+ }
+ viewer.setInput(realFeatureTrees);
+ }
+
+ private class FeatureTreeContentProvider implements IStructuredContentProvider {
+
+ @Override
+ public void dispose() {}
+
+ @Override
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
+
+ @Override
+ public Object[] getElements(Object inputElement) {
+ if(inputElement instanceof List){
+ return ((List) inputElement).toArray();
+ }
+ return new Object[0];
+ }
+
+ }
+
+ private class FeatureTreeLabelProvider extends LabelProvider {
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+ */
+ @Override
+ public String getText(Object element) {
+ if(element instanceof Element){
+ Element xmlElement = (Element) element;
+ return XMLHelper.getTitleCache(xmlElement);
+ }
+ return "no title cache";
+ }
+
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.wizard;
+
+import java.io.File;
+
+import org.apache.log4j.Logger;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author n.hoffmann
+ * @created Apr 7, 2010
+ * @version 1.0
+ */
+public class SelectFolderWizardPage extends AbstractPublishWizardPage {
+ private static final Logger logger = Logger
+ .getLogger(SelectFolderWizardPage.class);
+ private Composite composite;
+ private DirectoryDialog folderDialog;
+ private Text text_folder;
+
+ /**
+ * @param pageName
+ */
+ public SelectFolderWizardPage(String pageName) {
+ super(pageName);
+ setTitle("Select a folder");
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createControl(Composite parent) {
+// configurator = ((IPublishConfigurer) getWizard()).getConfigurator();
+
+ composite = new Composite(parent, SWT.NULL);
+ composite.setLayout(new GridLayout());
+
+ Label folderLabel = new Label(composite, SWT.NONE);
+ folderLabel.setText("Folder");
+
+ folderDialog = new DirectoryDialog(parent.getShell());
+
+ text_folder = new Text(composite, SWT.BORDER);
+ text_folder.setEditable(false);
+ text_folder.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+
+ Button button = new Button(composite, SWT.PUSH);
+ button.setText("Browse...");
+
+ button.addSelectionListener(new SelectionAdapter(){
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ super.widgetSelected(e);
+ String path = folderDialog.open();
+ if(path != null){ // a folder was selected
+ text_folder.setText(path);
+ getConfigurator().setExportFolder(new File(path));
+
+ setPageComplete(true);
+ }
+ }
+ });
+
+ setControl(composite);
+ }
+
+ @Override
+ public boolean canFlipToNextPage() {
+ if(isPageComplete()){
+ OverviewWizardPage overviewPage = (OverviewWizardPage) getNextPage();
+ overviewPage.refresh();
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean isPageComplete() {
+ return getConfigurator().getExportFolder() != null;
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.wizard;
+
+import java.net.MalformedURLException;
+
+import org.apache.log4j.Logger;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.printpublisher.PublishConfigurator;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created Apr 6, 2010
+ * @version 1.0
+ */
+public class SelectServiceWizardPage extends AbstractPublishWizardPage {
+
+
+ private static final Logger logger = Logger
+ .getLogger(SelectServiceWizardPage.class);
+
+ private Composite composite;
+ private Button button_local;
+ private Button button_remote;
+ private Label label_serviceUrl;
+ private Text text_serviceUrl;
+
+ protected SelectServiceWizardPage(String pageName) {
+ super(pageName);
+ setTitle("Select a Service");
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createControl(Composite parent) {
+
+ composite = new Composite(parent, SWT.NULL);
+ composite.setLayout(new GridLayout());
+
+ RadioSelectionListener listener = new RadioSelectionListener();
+
+ button_local = new Button(composite, SWT.RADIO);
+ button_local.setText("Local (By selecting this option the database you are currently " +
+ "connected to will be used to gather data.)");
+
+ button_local.addSelectionListener(listener);
+
+
+
+ button_remote = new Button(composite, SWT.RADIO);
+ button_remote.setText("Remote");
+ button_remote.addSelectionListener(listener);
+
+
+ label_serviceUrl = new Label(composite, SWT.NULL);
+ label_serviceUrl.setText("Service URL");
+
+ text_serviceUrl = new Text(composite, SWT.BORDER);
+ text_serviceUrl.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+ text_serviceUrl.setText("http://");
+ text_serviceUrl.addModifyListener(new ModifyListener() {
+
+ public void modifyText(ModifyEvent e) {
+ String text = text_serviceUrl.getText();
+
+ try {
+ getConfigurator().setWebserviceUrl(text);
+ } catch (MalformedURLException e1) {
+ logger.warn("Malformed Url");
+ }
+
+ if(isPageComplete()){
+ SelectServiceWizardPage.this.setErrorMessage(null);
+ setPageComplete(true);
+ }else{
+ SelectServiceWizardPage.this.setErrorMessage("Webservice URL has to end with \"/\"");
+ setPageComplete(false);
+ }
+ }
+ });
+
+ if(CdmStore.isActive()){
+ enableLocal();
+ }else{
+ enableRemote();
+ button_local.setEnabled(false);
+ }
+
+ setControl(composite);
+
+ }
+
+ private class RadioSelectionListener extends SelectionAdapter{
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ if(e.widget == button_local){
+ enableLocal();
+ }else{
+ enableRemote();
+ }
+ }
+ }
+
+ private void enableRemote() {
+ button_local.setSelection(false);
+ button_remote.setSelection(true);
+
+ label_serviceUrl.setEnabled(true);
+ text_serviceUrl.setEnabled(true);
+
+ setConfigurator(PublishConfigurator.NewRemoteInstance());
+ getConfigurator().addOutputModule(getOutputModule());
+ }
+
+ private void enableLocal() {
+ button_remote.setSelection(false);
+ button_local.setSelection(true);
+
+ label_serviceUrl.setEnabled(false);
+ text_serviceUrl.setEnabled(false);
+
+ setConfigurator(PublishConfigurator.NewLocalInstance(CdmStore.getCurrentApplicationController()));
+ getConfigurator().addOutputModule(getOutputModule());
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.jface.wizard.WizardPage#canFlipToNextPage()
+ */
+ @Override
+ public boolean canFlipToNextPage() {
+ if(isPageComplete()){
+ SelectTaxaWizardPage selectTaxaPage = (SelectTaxaWizardPage) getWizard().getPage(AbstractPublishWizard.PAGE_TAXA);
+ selectTaxaPage.refresh();
+
+ SelectFeatureTreeWizardPage selectFeatureTreePage = (SelectFeatureTreeWizardPage) getWizard().getPage(AbstractPublishWizard.PAGE_FEATURETREE);
+ selectFeatureTreePage.refresh();
+
+ return true;
+ }
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.jface.wizard.WizardPage#isPageComplete()
+ */
+ @Override
+ public boolean isPageComplete() {
+ if(getConfigurator().isLocal()){
+ return true;
+ }else if(getConfigurator().isRemote()
+ && getConfigurator().getWebserviceUrl() != null
+ && getConfigurator().getWebserviceUrl().toString().endsWith("/")){
+ return true;
+ }else{
+ return false;
+ }
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.printpublisher.wizard;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.jdom.Element;
+
+import eu.etaxonomy.printpublisher.IXMLEntityFactory;
+import eu.etaxonomy.printpublisher.XMLHelper;
+import eu.etaxonomy.printpublisher.XMLHelper.EntityType;
+
+/**
+ * @author n.hoffmann
+ * @created Apr 6, 2010
+ * @version 1.0
+ */
+public class SelectTaxaWizardPage extends AbstractPublishWizardPage {
+ private static final Logger logger = Logger
+ .getLogger(SelectTaxaWizardPage.class);
+
+ private Composite composite;
+
+ private TreeViewer treeViewer;
+
+ private Button button_refresh;
+
+ /**
+ * @param pageName
+ */
+ public SelectTaxaWizardPage(String pageName) {
+ super(pageName);
+ setTitle("Select Taxa to export.");
+
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createControl(Composite parent) {
+ composite = new Composite(parent, SWT.NULL);
+ composite.setLayout(new GridLayout());
+
+ treeViewer = new TreeViewer(composite);
+
+ treeViewer.setContentProvider(new ContentProvider());
+ treeViewer.setLabelProvider(new LabelProvider());
+
+ treeViewer.addSelectionChangedListener(new SelectionChangedListener());
+
+ treeViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ setControl(composite);
+ }
+
+ public void refresh(){
+
+ if(getConfigurator() != null){
+
+// IRunnableWithProgress runnable = new IRunnableWithProgress() {
+//
+// public void run(IProgressMonitor monitor) throws InvocationTargetException,
+// InterruptedException {
+// monitor.beginTask("Retrieving classifications", 3);
+// try{
+ IXMLEntityFactory factory = getConfigurator().getFactory();
+// monitor.worked(1);
+// if(factory != null){
+ List<Element> classifications = factory.getClassifications();
+// monitor.worked(1);
+ treeViewer.setInput(classifications);
+// monitor.worked(1);
+// }
+// }finally{
+// monitor.done();
+// }
+// }
+// };
+//
+// try {
+// getWizard().getContainer().run(false, false, runnable);
+// } catch (InvocationTargetException e) {
+// logger.error(e);
+// } catch (InterruptedException e) {
+// logger.error(e);
+// }
+ }
+ }
+
+ private class SelectionChangedListener implements ISelectionChangedListener {
+
+ public void selectionChanged(SelectionChangedEvent event) {
+ StructuredSelection selection = (StructuredSelection) treeViewer.getSelection();
+
+ List<Element> selectedElements = selection.toList();
+ if(selectedElements.size() > 0){
+ getConfigurator().setSelectedTaxonNodeElements(selectedElements);
+ setPageComplete(true);
+ }
+ }
+
+ }
+
+ private class ContentProvider implements ITreeContentProvider{
+
+ public Object[] getChildren(Object parentElement) {
+ if(parentElement instanceof List){
+ return ((List)parentElement).toArray();
+ }
+ else if(parentElement instanceof Element){
+ Element element = (Element) parentElement;
+
+ IXMLEntityFactory factory = getConfigurator().getFactory();
+
+ return factory != null ? factory.getChildNodes(element).toArray() : new Object[]{};
+
+ }
+
+ return new Object[]{};
+ }
+
+ public Object getParent(Object element) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ return getChildren(element).length > 0;
+ }
+
+ public Object[] getElements(Object inputElement) {
+ return getChildren(inputElement);
+ }
+
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ // TODO Auto-generated method stub
+
+ }
+
+ }
+
+ private class LabelProvider extends ColumnLabelProvider
+ implements ILabelProvider{
+
+ @Override
+ public String getText(Object element) {
+ if(element instanceof Element){
+ Element xmlElement = (Element) element;
+ EntityType entityType = XMLHelper.getEntityType(xmlElement);
+ if(EntityType.TAXON_NODE.equals(entityType)){
+ xmlElement = getConfigurator().getFactory().getTaxonForTaxonNode(xmlElement);
+ }
+ return XMLHelper.getTitleCache(xmlElement);
+ }
+ return "no title cache";
+ }
+
+ }
+
+ @Override
+ public boolean canFlipToNextPage() {
+ return isPageComplete();
+ }
+
+ @Override
+ public boolean isPageComplete() {
+ return getConfigurator().getSelectedTaxonNodeElements() != null && getConfigurator().getSelectedTaxonNodeElements().size() > 0;
+ }
+}