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() {