eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/CdmAuthorityEditor.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/CdmAuthorityEditorInput.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/handler/EditCdmAuthoritiesHandler.java -text
-eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/AddAHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/EditNewTaxonHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/LoadPherogramHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenAlignmentEditor.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/AlignmentEditorInput.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/CMDAlignmentObjectPlaceholder.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ContigSequenceDataProvider.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ToggleInsertOverwriteButton.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ToggleLeftRightInsertionButton.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroup.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroupedContainer.java -text
</visibleWhen>
</command>
</menuContribution>
+ <menuContribution
+ allPopups="false"
+ locationURI="menu:org.eclipse.ui.main.menu">
+ <menu
+ label="Alignment Editor">
+ <command
+ commandId="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.loadPherogram"
+ label="Load Pherogram"
+ style="push">
+ </command>
+ <visibleWhen
+ checkEnabled="true">
+ <with
+ variable="activePartId">
+ <equals
+ value="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ locationURI="toolbar:org.eclipse.ui.main.toolbar?after=eu.etaxonomy.taxeditor.navigation.search.toolbar">
+ <toolbar
+ id="eu.etaxonomy.taxeditor.editor.alignmentToolbar">
+ <control
+ class="eu.etaxonomy.taxeditor.editor.molecular.ToggleLeftRightInsertionButton">
+ <visibleWhen
+ checkEnabled="true">
+ <with
+ variable="activePartId">
+ <equals
+ value="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </control>
+ <control
+ class="eu.etaxonomy.taxeditor.editor.molecular.ToggleInsertOverwriteButton">
+ <visibleWhen
+ checkEnabled="true">
+ <with
+ variable="activePartId">
+ <equals
+ value="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </control>
+ </toolbar>
+ </menuContribution>
</extension>
<extension
point="org.eclipse.ui.handlers">
</with>
</activeWhen>
</handler>
- <handler
- class="eu.etaxonomy.taxeditor.editor.handler.AddAHandler"
- commandId="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.addA">
- <activeWhen>
- <with
- variable="activePartId">
- <equals
- value="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor">
- </equals>
- </with>
- </activeWhen>
- </handler>
<handler
class="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler"
commandId="org.eclipse.ui.edit.delete">
id="eu.etaxonomy.taxeditor.bindings.scheme.default"
name="%scheme.name">
</scheme>
- <key
- commandId="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.addA"
- schemeId="eu.etaxonomy.taxeditor.bindings.scheme.default"
- sequence="A">
- </key>
<key
commandId="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.loadPherogram"
schemeId="eu.etaxonomy.taxeditor.bindings.scheme.default"
- sequence="O">
+ sequence="M1+O">
</key>
</extension>
<extension
+++ /dev/null
-package eu.etaxonomy.taxeditor.editor.handler;
-
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IEditorPart;
-
-import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-
-
-
-public class AddAHandler extends AbstractHandler {
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IEditorPart activeEditor = AbstractUtility.getActiveEditor();
- if(activeEditor instanceof AlignmentEditor){
- AlignmentEditor alignmentEditor = (AlignmentEditor) activeEditor;
-// alignmentEditor.getAlignmentArea().getSelection()
- }
- MessagingUtils.informationDialog("Added A", "Added A");
- return null; // Reserved for future use
- }
-
-
-}
package eu.etaxonomy.taxeditor.editor.molecular;
-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.AlignmentContentArea;
-import info.bioinfweb.libralign.dataarea.implementations.ConsensusSequenceArea;
import info.bioinfweb.libralign.dataarea.implementations.SequenceIndexArea;
import info.bioinfweb.libralign.dataarea.implementations.pherogram.PherogramArea;
import info.bioinfweb.libralign.pherogram.BioJavaPherogramProvider;
-import info.bioinfweb.libralign.pherogram.PherogramProvider;
-import info.bioinfweb.libralign.pherogram.ReverseComplementPherogramProvider;
import info.bioinfweb.libralign.sequenceprovider.SequenceDataProvider;
-import info.bioinfweb.libralign.sequenceprovider.implementations.BioJavaSequenceDataProvider;
import info.bioinfweb.libralign.sequenceprovider.implementations.PackedSequenceDataProvider;
import info.bioinfweb.libralign.sequenceprovider.tokenset.BioJavaTokenSet;
import info.bioinfweb.libralign.sequenceprovider.tokenset.TokenSet;
import java.io.File;
import org.biojava.bio.chromatogram.ChromatogramFactory;
-import org.biojava3.core.sequence.DNASequence;
import org.biojava3.core.sequence.compound.DNACompoundSet;
import org.biojava3.core.sequence.compound.NucleotideCompound;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;
public static final String ID = "eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor";
private AlignmentArea readsArea;
+ private boolean isOverwriteMode;
+ private boolean isRightInsertion;
private AlignmentArea createReadsArea() {
try {
AlignmentArea result = new AlignmentArea();
AlignmentContentArea contentArea = result.getContentArea();
-
+
TokenSet<NucleotideCompound> tokenSet = new BioJavaTokenSet<NucleotideCompound>(new DNACompoundSet(), true);
SequenceDataProvider<NucleotideCompound> provider = new PackedSequenceDataProvider<NucleotideCompound>(tokenSet);
-
+
// Add index area:
contentArea.getDataAreas().getTopAreas().add(new SequenceIndexArea(contentArea));
-
-
+
+
// First test sequence with pherogram:
provider.addSequence("Read 1");
int id = provider.sequenceIDByName("Read 1");
BioJavaPherogramProvider pherogramProvider = new BioJavaPherogramProvider(ChromatogramFactory.create(
new File("D:/Users/BenStoever/Documents/Studium/Projekte/Promotion/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR430_JR-P01.ab1")));
- //new File("/home/pplitzner/svn/LibrAlign/taxeditor/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR430_JR-P01.ab1")));
-
+// new File("/home/pplitzner/svn/LibrAlign/taxeditor/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR430_JR-P01.ab1")));
+
// Copy base call sequence into alignment:
for (int i = 0; i < pherogramProvider.getSequenceLength(); i++) {
provider.insertTokenAt(id, i, tokenSet.tokenByKeyChar(pherogramProvider.getBaseCall(i).getUpperedBase().charAt(0)));
}
-
+
// Add data area:
PherogramArea pherogramArea = new PherogramArea(result.getContentArea(), pherogramProvider);
result.getContentArea().getDataAreas().getSequenceAreas(id).add(pherogramArea);
-
+
// Second test sequence with pherogram:
provider.addSequence("Read 2");
id = provider.sequenceIDByName("Read 2");
pherogramProvider = new BioJavaPherogramProvider(ChromatogramFactory.create(
new File("D:/Users/BenStoever/Documents/Studium/Projekte/Promotion/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR444_JR-P05.ab1")));
- //new File("/home/pplitzner/svn/LibrAlign/taxeditor/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR444_JR-P05.ab1")));
+// new File("/home/pplitzner/svn/LibrAlign/taxeditor/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR444_JR-P05.ab1")));
// Copy base call sequence into alignment:
for (int i = 0; i < pherogramProvider.getSequenceLength(); i++) {
provider.insertTokenAt(id, i, tokenSet.tokenByKeyChar(pherogramProvider.getBaseCall(i).getUpperedBase().charAt(0)));
}
-
+
// Add data area:
pherogramArea = new PherogramArea(result.getContentArea(), pherogramProvider);
result.getContentArea().getDataAreas().getSequenceAreas(id).add(pherogramArea);
-
-
+
+
contentArea.setSequenceProvider(provider, false);
-
+
return result;
}
catch (Exception e) {
public void createPartControl(Composite parent) {
readsArea = createReadsArea();
Composite alignmentWidget = readsArea.createSWTWidget(parent, SWT.NONE);
- //getSite().setSelectionProvider(provider)
+ updateStatusBar();
}
+ private void updateStatusBar(){
+ IActionBars bars = getEditorSite().getActionBars();
+ bars.getStatusLineManager().setMessage("Insertion Mode: " +
+ (isRightInsertion?"Right":"Left")+" "+(isOverwriteMode?"Overwrite":"Insert"));
+ }
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
}
-
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#doSaveAs()
*/
}
-
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
*/
setInput(input);
}
-
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#isDirty()
*/
return false;
}
-
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
*/
return false;
}
-
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#setFocus()
*/
public void setFocus() {
//alignmentArea.getToolkitComponent().redistributeHeight();
}
-}
+
+ public boolean isOverwriteMode() {
+ return isOverwriteMode;
+ }
+
+ public boolean isRightInsertion() {
+ return isRightInsertion;
+ }
+
+ public void toggleLeftRightInsertion() {
+ isRightInsertion = !isRightInsertion;
+ updateStatusBar();
+ }
+
+ public void toggleInsertOverwrite() {
+ isOverwriteMode = !isOverwriteMode;
+ updateStatusBar();
+ }
+}
\ No newline at end of file
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2014 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.taxeditor.editor.molecular;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.menus.WorkbenchWindowControlContribution;
+
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+
+/**
+ * @author pplitzner
+ * @date Nov 5, 2014
+ *
+ */
+public class ToggleInsertOverwriteButton extends WorkbenchWindowControlContribution {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.ControlContribution#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ protected Control createControl(Composite parent) {
+ Button button = new Button(parent, SWT.TOGGLE);
+// button.setImage(ImageResources.getImage(ImageResources.SWAP_SYNONYM_AND_TAXON_ICON));
+ button.setText("Toggle Insert/Overwrite");
+ button.setToolTipText("Toggle Insert/Overwrite");
+ button.addListener(SWT.Selection, new Listener() {
+
+ @Override
+ public void handleEvent(Event event) {
+ IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ if (activeEditor instanceof AlignmentEditor) {
+ AlignmentEditor alignmentEditor = (AlignmentEditor)activeEditor;
+ alignmentEditor.toggleInsertOverwrite();
+ }
+ }
+ });
+
+ IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ if (activeEditor instanceof AlignmentEditor) {
+ AlignmentEditor alignmentEditor = (AlignmentEditor)activeEditor;
+ button.setSelection(alignmentEditor.isOverwriteMode());
+ }
+ return button;
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2014 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.taxeditor.editor.molecular;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.menus.WorkbenchWindowControlContribution;
+
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+
+/**
+ * @author pplitzner
+ * @date Nov 5, 2014
+ *
+ */
+public class ToggleLeftRightInsertionButton extends WorkbenchWindowControlContribution {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.ControlContribution#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ protected Control createControl(Composite parent) {
+ final Button button = new Button(parent, SWT.TOGGLE);
+// button.setImage(ImageResources.getImage(ImageResources.SWAP_SYNONYM_AND_TAXON_ICON));
+ button.setText("Toggle Left/Right Insertion");
+ button.setToolTipText("Toggle Left/Right Insertion");
+ button.addListener(SWT.Selection, new Listener() {
+ @Override
+ public void handleEvent(Event event) {
+ IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ if (activeEditor instanceof AlignmentEditor) {
+ AlignmentEditor alignmentEditor = (AlignmentEditor)activeEditor;
+ alignmentEditor.toggleLeftRightInsertion();
+ }
+ }
+ });
+
+ IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ if (activeEditor instanceof AlignmentEditor) {
+ AlignmentEditor alignmentEditor = (AlignmentEditor)activeEditor;
+ button.setSelection(alignmentEditor.isRightInsertion());
+ }
+ return button;
+ }
+}