From: Patric Plitzner Date: Thu, 3 Jul 2014 15:47:13 +0000 (+0000) Subject: merge-update from trunk X-Git-Tag: 3.6.0~393^2~68 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/ada4a75848f5bb137730f6f7c8694117e89166d2 merge-update from trunk --- ada4a75848f5bb137730f6f7c8694117e89166d2 diff --cc eu.etaxonomy.taxeditor.store/.classpath index ee4c1eaf5,ee4c1eaf5..666d5b1fe --- a/eu.etaxonomy.taxeditor.store/.classpath +++ b/eu.etaxonomy.taxeditor.store/.classpath @@@ -1,10 -1,10 +1,20 @@@ -- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ diff --cc eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF index 9344dffea,fc199cb9d..d2216872f --- a/eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF +++ b/eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF @@@ -52,7 -52,7 +52,32 @@@ Export-Package: eu.etaxonomy.cdm eu.etaxonomy.taxeditor.view.derivateSearch, eu.etaxonomy.taxeditor.view.detail, eu.etaxonomy.taxeditor.view.specimenSearch, -- eu.etaxonomy.taxeditor.view.supplementaldata ++ eu.etaxonomy.taxeditor.view.supplementaldata, ++ info.bioinfweb.commons, ++ info.bioinfweb.commons.appversion, ++ info.bioinfweb.commons.bio, ++ info.bioinfweb.commons.bio.alignment.pairwise, ++ info.bioinfweb.commons.bio.biojava3.alignment, ++ info.bioinfweb.commons.bio.biojava3.alignment.io, ++ info.bioinfweb.commons.bio.biojava3.alignment.io.fasta, ++ info.bioinfweb.commons.bio.biojava3.alignment.io.hennig86, ++ info.bioinfweb.commons.bio.biojava3.alignment.io.mega, ++ info.bioinfweb.commons.bio.biojava3.alignment.io.nexus, ++ info.bioinfweb.commons.bio.biojava3.alignment.io.phylip, ++ info.bioinfweb.commons.bio.biojava3.alignment.template, ++ info.bioinfweb.commons.bio.biojava3.core.sequence, ++ info.bioinfweb.commons.bio.biojava3.core.sequence.compound, ++ info.bioinfweb.commons.bio.biojava3.core.sequence.io, ++ info.bioinfweb.commons.bio.biojava3.core.sequence.template, ++ info.bioinfweb.commons.bio.biojava3.core.sequence.views, ++ info.bioinfweb.commons.bio.biojavax.bio.phylo.io.nexus, ++ info.bioinfweb.commons.changemonitor, ++ info.bioinfweb.commons.collections, ++ info.bioinfweb.commons.graphics, ++ info.bioinfweb.commons.io, ++ info.bioinfweb.commons.log, ++ info.bioinfweb.commons.progress, ++ info.bioinfweb.commons.text Require-Bundle: org.eclipse.osgi, org.eclipse.ui, org.eclipse.jface.text, @@@ -240,4 -235,4 +265,14 @@@ Bundle-ClassPath: . xpp3-1.1.4c.jar, xpp3_min-1.1.4c.jar, xstream-1.4.4.jar, -- yjp-controller-api-redist-9.0.8.jar ++ yjp-controller-api-redist-9.0.8.jar, ++ lib/bioinfweb.commons.core.jar, ++ lib/biojava3-core-3.0.7.jar, ++ lib/bioinfweb.commons.experimental.bio.jar, ++ lib/biojava3-alignment-3.0.7.jar, ++ lib/LibrAlign.jar, ++ lib/bioinfweb.commons.tic.jar, ++ lib/jfreechart-1.0.17/lib/jfreechart-1.0.17-swt.jar, ++ lib/bioinfweb.commons.swing.jar, ++ lib/core-1.8.5.jar, ++ lib/sequencing-1.8.5.jar diff --cc eu.etaxonomy.taxeditor.store/build.properties index 925934e50,925934e50..0ed4bb687 --- a/eu.etaxonomy.taxeditor.store/build.properties +++ b/eu.etaxonomy.taxeditor.store/build.properties @@@ -6,4 -6,4 +6,14 @@@ bin.includes = META-INF/, .,\ plugin.xml,\ icons/,\ -- p2.inf ++ p2.inf,\ ++ lib/bioinfweb.commons.core.jar,\ ++ lib/biojava3-core-3.0.7.jar,\ ++ lib/bioinfweb.commons.experimental.bio.jar,\ ++ lib/biojava3-alignment-3.0.7.jar,\ ++ lib/LibrAlign.jar,\ ++ lib/bioinfweb.commons.tic.jar,\ ++ lib/jfreechart-1.0.17/lib/jfreechart-1.0.17-swt.jar,\ ++ lib/bioinfweb.commons.swing.jar,\ ++ lib/core-1.8.5.jar,\ ++ lib/sequencing-1.8.5.jar diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewPart.java index 3cbafb384,3cbafb384..34afe6bb9 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewPart.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewPart.java @@@ -1,61 -1,61 +1,62 @@@ // $Id$ /** * Copyright (C) 2007 EDIT --* European Distributed Institute of Taxonomy ++* 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.taxeditor.view.datasource; ++import info.bioinfweb.commons.bio.biojava3.alignment.SimpleAlignment; ++import info.bioinfweb.commons.bio.biojava3.alignment.template.Alignment; ++import info.bioinfweb.commons.bio.biojava3.core.sequence.compound.AlignmentAmbiguityNucleotideCompoundSet; ++import info.bioinfweb.libralign.AlignmentArea; ++import info.bioinfweb.libralign.dataarea.implementations.ConsensusSequenceArea; ++import info.bioinfweb.libralign.pherogram.BioJavaPherogramProvider; ++import info.bioinfweb.libralign.pherogram.PherogramFormats.QualityOutputType; ++import info.bioinfweb.libralign.pherogram.PherogramHeadingView; ++import info.bioinfweb.libralign.pherogram.PherogramTraceCurveView; ++import info.bioinfweb.libralign.sequenceprovider.implementations.BioJavaSequenceDataProvider; ++import info.bioinfweb.libralign.sequenceprovider.tokenset.BioJavaTokenSet; ++ ++import java.io.File; ++import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; --import org.eclipse.core.commands.Command; --import org.eclipse.core.commands.ExecutionException; --import org.eclipse.core.commands.NotEnabledException; --import org.eclipse.core.commands.NotHandledException; --import org.eclipse.core.commands.common.NotDefinedException; ++import org.biojava.bio.chromatogram.ChromatogramFactory; ++import org.biojava.bio.chromatogram.UnsupportedChromatogramFormatException; ++import org.biojava3.core.sequence.DNASequence; ++import org.biojava3.core.sequence.compound.NucleotideCompound; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; --import org.eclipse.jface.action.GroupMarker; --import org.eclipse.jface.action.MenuManager; --import org.eclipse.jface.viewers.DoubleClickEvent; --import org.eclipse.jface.viewers.IDoubleClickListener; --import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.swt.SWT; ++import org.eclipse.swt.custom.ScrolledComposite; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; --import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; --import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.ui.IMemento; --import org.eclipse.ui.IWorkbenchActionConstants; --import org.eclipse.ui.commands.ICommandService; --import org.eclipse.ui.handlers.IHandlerService; import org.eclipse.ui.part.ViewPart; import org.eclipse.ui.progress.IWorkbenchSiteProgressService; --import org.springframework.security.core.GrantedAuthority; import eu.etaxonomy.cdm.config.ICdmSource; --import eu.etaxonomy.cdm.database.ICdmDataSource; import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository; import eu.etaxonomy.taxeditor.model.ContextListenerAdapter; import eu.etaxonomy.taxeditor.model.IContextListener; import eu.etaxonomy.taxeditor.store.CdmStore; --import eu.etaxonomy.taxeditor.store.StoreUtil; /** *

CdmDataSourceViewPart class.

@@@ -65,9 -65,9 +66,9 @@@ * @version 1.0 */ public class CdmDataSourceViewPart extends ViewPart{ -- ++ private static final Logger logger = Logger.getLogger(CdmDataSourceViewPart.class); -- ++ private class ContextListener extends ContextListenerAdapter{ /* (non-Javadoc) * @see eu.etaxonomy.taxeditor.model.IContextListener#contextAboutToStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor) @@@ -75,7 -75,7 +76,7 @@@ @Override public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) { monitor.subTask("Refreshing Datasource View"); -- viewer.refresh(); ++ viewer.refresh(); } /* (non-Javadoc) @@@ -84,7 -84,7 +85,7 @@@ @Override public void contextStop(IMemento memento, IProgressMonitor monitor) { monitor.subTask("Refreshing Datasource View"); -- viewer.refresh(); ++ viewer.refresh(); } /* (non-Javadoc) @@@ -96,10 -96,10 +97,10 @@@ viewer.refresh(); } } -- ++ private class DataSourceJob extends Job{ -- private List cdmSources; ++ private final List cdmSources; /** * @param name @@@ -116,142 -116,142 +117,218 @@@ public IStatus run(final IProgressMonitor monitor) { try{ logger.debug("Begin of eclipse core runtime Job to Retrieve datasources"); -- monitor.beginTask("Retrieving datasources", cdmSources.size() + 1); -- ++ monitor.beginTask("Retrieving datasources", cdmSources.size() + 1); ++ final List containers = new ArrayList(); -- ++ for(ICdmSource cdmSource : cdmSources){ containers.add(new CdmMetaDataAwareDataSourceContainer(cdmSource)); } -- ++ Display.getDefault().asyncExec(new Runnable() { -- ++ @Override public void run() { viewer.setInput(containers); } }); monitor.worked(1); -- ++ for(final CdmMetaDataAwareDataSourceContainer container : containers){ -- -- -- if(logger.isDebugEnabled()) logger.debug(" #" + container.hashCode() + " : next DataSourceContainer"); ++ ++ ++ if(logger.isDebugEnabled()) { ++ logger.debug(" #" + container.hashCode() + " : next DataSourceContainer"); ++ } container.getMetaDataFromDataSource(); -- if(logger.isDebugEnabled()) logger.debug(" #" + container.hashCode() + " : metadata retrieved, creating new runnable ..."); ++ if(logger.isDebugEnabled()) { ++ logger.debug(" #" + container.hashCode() + " : metadata retrieved, creating new runnable ..."); ++ } Display.getDefault().asyncExec(new Runnable() { -- ++ @Override public void run() { -- if(logger.isDebugEnabled()) logger.debug(" #" + container.hashCode() + " starting sub thread to update ..."); ++ if(logger.isDebugEnabled()) { ++ logger.debug(" #" + container.hashCode() + " starting sub thread to update ..."); ++ } viewer.update(container, null); -- if(logger.isDebugEnabled()) logger.debug(" #" + container.hashCode() + " end of sub thread to update ..."); ++ if(logger.isDebugEnabled()) { ++ logger.debug(" #" + container.hashCode() + " end of sub thread to update ..."); ++ } } }); -- if(logger.isDebugEnabled()) logger.debug(" #" + container.hashCode() + " done"); ++ if(logger.isDebugEnabled()) { ++ logger.debug(" #" + container.hashCode() + " done"); ++ } monitor.worked(1); } -- ++ }finally{ monitor.done(); } return Status.OK_STATUS; } } -- ++ /** Constant ID="eu.etaxonomy.taxeditor.store.datasource"{trunked} */ public static String ID = "eu.etaxonomy.taxeditor.view.datasource"; -- ++ private TableViewer viewer; private String partNameCache; private IWorkbenchSiteProgressService service; -- ++ private IContextListener contextListener; private CdmDataSourceViewerComparator comparator; -- ++ /** *

Constructor for CdmDataSourceViewPart.

*/ public CdmDataSourceViewPart(){ } -- ++ ++ private void librAlignInit(Composite parent){ ++ ScrolledComposite scrolledComposite = new ScrolledComposite(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); ++ scrolledComposite.setExpandHorizontal(true); ++ scrolledComposite.setExpandVertical(true); ++ ++ Alignment alignment = ++ new SimpleAlignment(); ++ alignment.add("Sequence 1", new DNASequence("ATCGTAGATCGTAGATCGTAGATCGTAGATCGTAGATCGTAGATCGTAG")); ++ alignment.add("Sequence 2", new DNASequence("AT-GTTG")); ++ alignment.add("Sequence 3", new DNASequence("AT-GTAG")); ++ ++ BioJavaSequenceDataProvider sequenceProvider = ++ new BioJavaSequenceDataProvider( ++ new BioJavaTokenSet( ++ AlignmentAmbiguityNucleotideCompoundSet.getAlignmentAmbiguityNucleotideCompoundSet()), ++ alignment); ++ ++ AlignmentArea result = new AlignmentArea(); ++ result.setSequenceProvider(sequenceProvider, false); ++ result.getDataAreas().getBottomAreas().add(new ConsensusSequenceArea(result)); ++ ++// Composite alignmentWidget = result.createSWTWidget(scrolledComposite, SWT.NONE); ++// scrolledComposite.setContent(alignmentWidget); ++// scrolledComposite.setMinSize(alignmentWidget.computeSize(SWT.DEFAULT, SWT.DEFAULT)); ++ ++ //+++ConsensusSequenceArea ++ ConsensusSequenceArea consensusSequenceArea = new ConsensusSequenceArea(result); ++ Composite consensusWidget = consensusSequenceArea.createSWTWidget(scrolledComposite, SWT.NONE); ++ scrolledComposite.setContent(consensusWidget); ++ ++ ++ //+++PherogramTraceCurveView+++ ++ PherogramTraceCurveView pherogramView = new PherogramTraceCurveView(); ++ // pherogramView.setProvider(new BioJavaPherogramProvider(ChromatogramFactory.create( ++ // new File("data\\pherograms\\Test_pel1PCR_Pel2Wdhg_PCR-7-A_1.ab1")))); ++ try { ++ pherogramView.setProvider(new BioJavaPherogramProvider(ChromatogramFactory.create( ++ new File("/home/pplitzner/svn/branch/taxeditor-3.4/eu.etaxonomy.taxeditor.store/lib/jfreechart-1.0.17/lib/A10001_GM106-petD_F.scf")))); ++ } catch (UnsupportedChromatogramFormatException e) { ++ // TODO Auto-generated catch block ++ e.printStackTrace(); ++ } catch (IOException e) { ++ // TODO Auto-generated catch block ++ e.printStackTrace(); ++ } ++ pherogramView.setHorizontalScale(1); ++ pherogramView.setVerticalScale(100); ++ pherogramView.getFormats().setQualityOutputType(QualityOutputType.ALL); ++ pherogramView.getFormats().setShowProbabilityValues(true); ++ ++// Composite pherogramWidget = pherogramView.createSWTWidget(scrolledComposite, SWT.NONE); ++// scrolledComposite.setContent(pherogramWidget); ++// scrolledComposite.setMinSize(pherogramWidget.computeSize(SWT.DEFAULT, SWT.DEFAULT)); ++ ++ //+++Pherogramm Heading View+++ ++ PherogramHeadingView pherogramHeadingView = new PherogramHeadingView(pherogramView); ++// Composite pherogramHeadingWidget = pherogramHeadingView.createSWTWidget(scrolledComposite, SWT.NONE); ++// scrolledComposite.setContent(pherogramHeadingWidget); ++// scrolledComposite.setMinSize(pherogramHeadingWidget.computeSize(SWT.DEFAULT, SWT.DEFAULT)); ++ ++ } ++ /** {@inheritDoc} */ @Override public void createPartControl(Composite parent) { service = (IWorkbenchSiteProgressService) getSite().getAdapter(IWorkbenchSiteProgressService.class); contextListener = new ContextListener(); CdmStore.getContextManager().addContextListener(contextListener); -- ++ // Create top composite FillLayout fillLayout = new FillLayout(); fillLayout.marginWidth = 0; fillLayout.marginHeight = 0; -- fillLayout.type = SWT.VERTICAL; ++ fillLayout.type = SWT.VERTICAL; parent.setLayout(fillLayout); -- -- viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL -- | SWT.V_SCROLL | SWT.FULL_SELECTION); -- getSite().setSelectionProvider(viewer); -- -- createColumns(viewer); -- -- viewer.setContentProvider(new CdmDataSourceContentProvider()); -- viewer.setLabelProvider(new CdmDataSourceLabelProvider()); -- comparator = new CdmDataSourceViewerComparator(); -- viewer.setComparator(comparator); -- -- -- // register context menu -- MenuManager menuMgr = new MenuManager(); -- menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); -- getSite().registerContextMenu(menuMgr, viewer); -- -- Control control = viewer.getControl(); -- Menu menu = menuMgr.createContextMenu(control); -- control.setMenu(menu); -- -- // connect on doubleclick -- viewer.addDoubleClickListener(new IDoubleClickListener() { -- -- public void doubleClick(DoubleClickEvent event) { -- if (event.getSelection() instanceof StructuredSelection) { -- -- Object element = ((StructuredSelection) event -- .getSelection()).getFirstElement(); -- if (element instanceof CdmMetaDataAwareDataSourceContainer) { -- String commandId = "eu.etaxonomy.taxeditor.store.datasource.change"; -- -- ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class); -- -- Command command = commandService.getCommand(commandId); -- if(command.isEnabled()) { -- -- IHandlerService handlerService = (IHandlerService) StoreUtil.getService(IHandlerService.class); -- -- try { -- handlerService.executeCommand(commandId, null); -- } catch (ExecutionException e) { -- StoreUtil.error(this.getClass(), e); -- } catch (NotDefinedException e) { -- StoreUtil.error(this.getClass(), e); -- } catch (NotEnabledException e) { -- StoreUtil.error(this.getClass(), e); -- } catch (NotHandledException e) { -- StoreUtil.error(this.getClass(), e); -- } -- } -- } -- } -- } -- }); -- -- refresh(); ++ ++ librAlignInit(parent); ++ ++ ++// viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL ++// | SWT.V_SCROLL | SWT.FULL_SELECTION); ++// getSite().setSelectionProvider(viewer); ++// ++// createColumns(viewer); ++// ++// viewer.setContentProvider(new CdmDataSourceContentProvider()); ++// viewer.setLabelProvider(new CdmDataSourceLabelProvider()); ++// comparator = new CdmDataSourceViewerComparator(); ++// viewer.setComparator(comparator); ++// ++// ++// // register context menu ++// MenuManager menuMgr = new MenuManager(); ++// menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); ++// getSite().registerContextMenu(menuMgr, viewer); ++// ++// Control control = viewer.getControl(); ++// Menu menu = menuMgr.createContextMenu(control); ++// control.setMenu(menu); ++// ++// // connect on doubleclick ++// viewer.addDoubleClickListener(new IDoubleClickListener() { ++// ++// @Override ++// public void doubleClick(DoubleClickEvent event) { ++// if (event.getSelection() instanceof StructuredSelection) { ++// ++// Object element = ((StructuredSelection) event ++// .getSelection()).getFirstElement(); ++// if (element instanceof CdmMetaDataAwareDataSourceContainer) { ++// String commandId = "eu.etaxonomy.taxeditor.store.datasource.change"; ++// ++// ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class); ++// ++// Command command = commandService.getCommand(commandId); ++// if(command.isEnabled()) { ++// ++// IHandlerService handlerService = (IHandlerService) AbstractUtility.getService(IHandlerService.class); ++// ++// try { ++// handlerService.executeCommand(commandId, null); ++// } catch (ExecutionException e) { ++// AbstractUtility.error(this.getClass(), e); ++// } catch (NotDefinedException e) { ++// AbstractUtility.error(this.getClass(), e); ++// } catch (NotEnabledException e) { ++// AbstractUtility.error(this.getClass(), e); ++// } catch (NotHandledException e) { ++// AbstractUtility.error(this.getClass(), e); ++// } ++// } ++// } ++// } ++// } ++// }); ++// ++// refresh(); } -- ++ // This will create the columns for the table private void createColumns(TableViewer viewer) { Table table = viewer.getTable(); @@@ -272,13 -272,13 +349,13 @@@ table.setHeaderVisible(true); table.setLinesVisible(true); table.setSortDirection(SWT.UP); -- ++ } -- ++ /** *

refresh

*/ -- public void refresh(){ ++ public void refresh(){ getService().schedule(new DataSourceJob("Loading datasources", CdmDataSourceRepository.getAll()), Job.LONG); } @@@ -292,10 -292,10 +369,10 @@@ /** {@inheritDoc} */ @Override public void setFocus() { -- viewer.getControl().setFocus(); ++// viewer.getControl().setFocus(); } -- ++ /* (non-Javadoc) * @see org.eclipse.ui.part.WorkbenchPart#showBusy(boolean) */ @@@ -331,7 -331,7 +408,7 @@@ public IWorkbenchSiteProgressService getService() { return service; } -- ++ private SelectionAdapter getSelectionAdapter(final TableColumn column, final int index) { SelectionAdapter selectionAdapter = new SelectionAdapter() {