From 4fb47d79d6c8fefb12f903777b87247a8a0dc2e6 Mon Sep 17 00:00:00 2001 From: "p.ciardelli"
Taxon
data, corresponding
@@ -64,37 +68,30 @@ public abstract class AbstractTaxonEditorView extends EditorPart implements
* When this EditorPart
gets focus, the data structure of
* defaultPropertyObject
is displayed in the property sheet.
*/
- protected Object defaultPropertySheetObject = null;
protected IManagedForm managedForm;
protected ScrolledForm scrolledForm;
protected Composite parent;
protected ISelectionProvider provider;
+
+ private IHasPropertySource selectedObject;
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
*/
- @Override
- public void doSave(IProgressMonitor monitor) {
- // TODO Auto-generated method stub
-
- }
+ public void doSave(IProgressMonitor monitor) {}
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#doSaveAs()
*/
- @Override
- public void doSaveAs() {
- // TODO Auto-generated method stub
-
- }
+ public void doSaveAs() {}
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
*/
- @Override
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
+
if (!(input instanceof IEditorInput))
throw new PartInitException(
"Invalid Input: Must be IFileEditorInput");
@@ -113,21 +110,11 @@ public abstract class AbstractTaxonEditorView extends EditorPart implements
this.getSite().setSelectionProvider(provider);
}
- /**
- * When this EditorPart
gets focus, the data structure of
- * defaultPropertyObject
is displayed in the property sheet.
- *
- * @param object
- */
- protected void setDefaultPropertySheetObject(Object object) {
- this.defaultPropertySheetObject = object;
- }
-
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#setFocus()
*/
public void setFocus() {
- setSelection(defaultPropertySheetObject);
+// setSelection(selectedObject);
}
/**
@@ -137,41 +124,47 @@ public abstract class AbstractTaxonEditorView extends EditorPart implements
*
* @param selectedObject
*/
- protected void setSelection(Object selectedObject) {
+ protected void setSelection(IHasPropertySource selectedObject) {
+
+ // Unpaint last selection - last selection will only be unpainted
+ // when something else on this page is selected
+ if (this.selectedObject instanceof EditorGroupedComposite) {
+ ((EditorGroupedComposite) this.selectedObject).unpaintBorder();
+ }
+
+ // Set the selection to this editor's selected object
+ this.selectedObject = selectedObject;
+
+ // Get the selection's property source, pass it to the selection provider
IPropertySource propertySource = null;
if (selectedObject != null) {
- propertySource = new PropertySourceAdapter(selectedObject).getPropertySource();
+ propertySource = selectedObject.getPropertySource();
}
-
if (propertySource == null) {
provider.setSelection(new StructuredSelection());
} else {
provider.setSelection(new StructuredSelection(propertySource));
- }
+ }
+
}
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#isDirty()
*/
- @Override
public boolean isDirty() {
- // TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
*/
- @Override
public boolean isSaveAsAllowed() {
- // TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
- @Override
public void createPartControl(Composite composite) {
managedForm = new ManagedForm(composite) {
@@ -179,7 +172,9 @@ public abstract class AbstractTaxonEditorView extends EditorPart implements
firePropertyChange(PROP_DIRTY);
}
public boolean setInput(Object input) {
- setSelection(input);
+ if (input instanceof IHasPropertySource) {
+ setSelection((IHasPropertySource)input);
+ }
return super.setInput(input);
}
};
@@ -209,6 +204,8 @@ public abstract class AbstractTaxonEditorView extends EditorPart implements
public Control getControl() {
Control control = super.getControl();
+
+ // Save the property sheet tree for easy access as needed
if (!control.isDisposed()) {
if (control instanceof Tree) {
UiUtil.setPropertySheetTree((Tree) control);
@@ -217,6 +214,62 @@ public abstract class AbstractTaxonEditorView extends EditorPart implements
return control;
}
};
+
+ // Try out PartListener to intercept selections
+ IWorkbenchPage activePage = UiUtil.getActivePage();
+// IWorkbenchPart active = activePage.getActivePart();
+ IPartListener2 partListener = new IPartListener2() {
+
+ @Override
+ public void partActivated(IWorkbenchPartReference partRef) {
+ // Fires for every part
+ logger.warn(partRef.getTitle());
+ }
+
+ @Override
+ public void partBroughtToTop(IWorkbenchPartReference partRef) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void partClosed(IWorkbenchPartReference partRef) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void partDeactivated(IWorkbenchPartReference partRef) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void partHidden(IWorkbenchPartReference partRef) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void partInputChanged(IWorkbenchPartReference partRef) {
+ logger.warn("part input changed");
+ }
+
+ @Override
+ public void partOpened(IWorkbenchPartReference partRef) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void partVisible(IWorkbenchPartReference partRef) {
+ // TODO Auto-generated method stub
+
+ }
+
+ };
+ activePage.addPartListener(partListener);
+
UiUtil.setPropertySheetPage(page);
CustomSortPropertySheetEntry entry = new CustomSortPropertySheetEntry();
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/CompositeBorderDecorator.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/CompositeBorderDecorator.java
index 2d33e8cb3..eadee0cbe 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/CompositeBorderDecorator.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/CompositeBorderDecorator.java
@@ -33,6 +33,12 @@ public class CompositeBorderDecorator {
private Composite borderedComposite;
private FocusListener listener = new PaintBorderListener();
+
+ /**
+ * If true, the borderedComposite
's border is erased when
+ * it loses focus.
+ */
+ private boolean doLoseFocus = true;
public CompositeBorderDecorator(Composite composite, IManagedForm form) {
this.borderedComposite = composite;
@@ -48,6 +54,30 @@ public class CompositeBorderDecorator {
composite.addFocusListener(listener);
}
+ /**
+ * If this is set to true, border will disappear when focus is lost.
+ * Otherwise, it will remain until explicitly erased.
+ *
+ * @param doLoseFocus
+ */
+ public void setLoseFocus(boolean doLoseFocus) {
+ this.doLoseFocus = doLoseFocus;
+ }
+
+ /**
+ * Removes the border from borderedComposite
.
+ */
+ public void unpaintBorder() {
+ paintBorder(null);
+ }
+
+ /**
+ * Adds a border to borderedComposite
.
+ */
+ public void paintBorder() {
+ paintBorder(FormToolkit.TEXT_BORDER);
+ }
+
private void paintBorder(String border) {
borderedComposite.setData(FormToolkit.KEY_DRAW_BORDER, border);
toolkit.paintBordersFor(borderedComposite.getParent());
@@ -69,13 +99,13 @@ public class CompositeBorderDecorator {
class PaintBorderListener implements FocusListener {
public void focusGained(FocusEvent e) {
- String border = FormToolkit.TEXT_BORDER;
- paintBorder(border);
+ paintBorder();
}
public void focusLost(FocusEvent e) {
- String border = null;
- paintBorder(border);
+ if (doLoseFocus) {
+ unpaintBorder();
+ }
}
}
}
\ No newline at end of file
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/EditorGroupedComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/EditorGroupedComposite.java
index 58769bdc6..2812d0253 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/EditorGroupedComposite.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/EditorGroupedComposite.java
@@ -46,15 +46,16 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
* @created 02.06.2008
* @version 1.0
*/
-abstract public class EditorGroupedComposite extends GroupedComposite {
+abstract public class EditorGroupedComposite extends GroupedComposite implements IHasPropertySource {
private static final Logger logger = Logger.getLogger(EditorGroupedComposite.class);
protected TextViewer textViewer;
protected TableWrapLayout layout;
- private ISelectionWrapper selectionWrapper;
private Label draggableLabel;
protected IManagedForm managedForm;
private Taxon taxon;
+
+ private CompositeBorderDecorator borderDecorator;
/**
* @param parent
@@ -160,9 +161,6 @@ abstract public class EditorGroupedComposite extends GroupedComposite {
* @see org.eclipse.swt.widgets.Composite#setFocus()
*/
public boolean setFocus() {
- if (selectionWrapper != null) {
- selectionWrapper.setSelection();
- }
setSelection();
return super.setFocus();
}
@@ -171,7 +169,7 @@ abstract public class EditorGroupedComposite extends GroupedComposite {
*
*/
protected void setSelection() {
- managedForm.setInput(getData());
+ managedForm.setInput(this);
}
/* (non-Javadoc)
@@ -180,13 +178,6 @@ abstract public class EditorGroupedComposite extends GroupedComposite {
public void setFont(Font font) {
getTextViewer().getTextWidget().setFont(font);
}
-
- /**
- * @param selectionWrapper
- */
- public void setSelectionWrapper (ISelectionWrapper selectionWrapper) {
- this.selectionWrapper = selectionWrapper;
- }
/**
* If textViewer
has already been set, it will show a
@@ -223,14 +214,19 @@ abstract public class EditorGroupedComposite extends GroupedComposite {
*
*/
public void createBorderSupport() {
- CompositeBorderDecorator borderDecorator = new CompositeBorderDecorator(
+ borderDecorator = new CompositeBorderDecorator(
this, managedForm);
if (getTextViewer() == null) {
logger.warn("Could not create border support - getTextViewer() returned null.");
} else {
borderDecorator.setBorderedComposite(getTextViewer().getTextWidget());
+ borderDecorator.setLoseFocus(false);
}
}
+
+ public void drawBorder() {
+ borderDecorator.paintBorder();
+ }
/**
* @param isDirty
@@ -243,7 +239,14 @@ abstract public class EditorGroupedComposite extends GroupedComposite {
* @see eu.etaxonomy.taxeditor.editor.name.GroupedComposite#dispose()
*/
public void dispose () {
+
+ // Nullify decorator to stop its listener to listening for
+ // composite focus
+ borderDecorator = null;
+
super.dispose();
+
+ // A disposed graphic element means that the taxon has changed
setDirty(true);
}
@@ -268,6 +271,7 @@ abstract public class EditorGroupedComposite extends GroupedComposite {
return false;
}
+
/**
* Returns a ContextMenu
opened by right-clicking on
* draggableLabel
.
@@ -276,5 +280,12 @@ abstract public class EditorGroupedComposite extends GroupedComposite {
*/
protected ContextMenu createContextMenu() {
return new ContextMenu(getDraggableLabel());
+// return new ContextMenu(this);
+ }
+
+ public void unpaintBorder() {
+ if (borderDecorator != null) {
+ borderDecorator.unpaintBorder();
+ }
}
-}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/ErrorAnnotation.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/ErrorAnnotation.java
index a8d3ba780..f3d727c2a 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/ErrorAnnotation.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/ErrorAnnotation.java
@@ -38,7 +38,7 @@ public class ErrorAnnotation extends Annotation {
}
public String getText() {
- return text;
+ return "Error in the string " + text;
}
public Image getImage() {
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/IHasPropertySource.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/IHasPropertySource.java
new file mode 100644
index 000000000..1172880bb
--- /dev/null
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/IHasPropertySource.java
@@ -0,0 +1,21 @@
+/**
+* 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.taxeditor.editor;
+
+import org.eclipse.ui.views.properties.IPropertySource;
+
+/**
+ * @author p.ciardelli
+ * @created 21.11.2008
+ * @version 1.0
+ */
+public interface IHasPropertySource {
+ public IPropertySource getPropertySource();
+}
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/ISelectionWrapper.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/ISelectionWrapper.java
deleted file mode 100644
index b1aa6bc71..000000000
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/ISelectionWrapper.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package eu.etaxonomy.taxeditor.editor;
-
-public interface ISelectionWrapper {
- public void setSelection();
-}
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/LineWrapSquigglesStrategy.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/LineWrapSquigglesStrategy.java
index 410788389..4280a4c85 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/LineWrapSquigglesStrategy.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/LineWrapSquigglesStrategy.java
@@ -126,7 +126,7 @@ public class LineWrapSquigglesStrategy extends SquigglesStrategy {
}
/**
- * Copied verbatim from org.eclipse.jface.text.source.AnnotationPainter$SquigglesStrategy
+ * Copied verbatim from {@link org.eclipse.jface.text.source.AnnotationPainter$SquigglesStrategy}
*
* @see org.eclipse.jface.text.source.AnnotationPainter$SquigglesStrategy
*
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java
index f3923dbce..4f425fdd5 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java
@@ -22,6 +22,7 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.views.properties.IPropertySource;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
@@ -33,6 +34,7 @@ import eu.etaxonomy.taxeditor.editor.ContextMenu;
import eu.etaxonomy.taxeditor.editor.EditorGroupedComposite;
import eu.etaxonomy.taxeditor.editor.LineWrapSupport;
import eu.etaxonomy.taxeditor.editor.ParseListener;
+import eu.etaxonomy.taxeditor.propertysheet.description.DescriptionElementPropertySource;
/**
* @author p.ciardelli
@@ -210,4 +212,9 @@ public class DescriptionElementComposite extends EditorGroupedComposite {
managedForm.getForm().getBody().layout();
}
+
+ @Override
+ public IPropertySource getPropertySource() {
+ return new DescriptionElementPropertySource((DescriptionElementBase) getData());
+ }
}
\ No newline at end of file
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java
index a3b9fbbb6..f0a2bae7f 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java
@@ -25,6 +25,7 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.views.properties.IPropertySource;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
@@ -35,6 +36,7 @@ import eu.etaxonomy.taxeditor.actions.ui.description.AddDescriptionElementCompos
import eu.etaxonomy.taxeditor.editor.ContextMenu;
import eu.etaxonomy.taxeditor.editor.EditorGroupedComposite;
import eu.etaxonomy.taxeditor.editor.ParseListener;
+import eu.etaxonomy.taxeditor.propertysheet.description.TaxonDescriptionPropertySource;
/**
* Composite for editing a description's label / Title Cache information.
@@ -140,4 +142,9 @@ public class DescriptionLabelComposite extends EditorGroupedComposite {
}
});
}
-}
+
+ @Override
+ public IPropertySource getPropertySource() {
+ return new TaxonDescriptionPropertySource((TaxonDescription) getData());
+ }
+}
\ No newline at end of file
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java
index 954956e83..682d811ae 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java
@@ -16,8 +16,6 @@ import org.apache.log4j.Logger;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.FocusAdapter;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.graphics.Font;
@@ -203,6 +201,7 @@ public class NameComposite extends EditorGroupedComposite {
}
};
+ // TODO clean this part up
name.addPropertyChangeListener("fullTitleCache", listener);
name.addPropertyChangeListener("nomenclaturalMicroReference", listener);
@@ -212,13 +211,6 @@ public class NameComposite extends EditorGroupedComposite {
if (reference != null) {
reference.addPropertyChangeListener("titleCache", listener);
}
-
- this.addDisposeListener(new DisposeListener() {
-
- public void widgetDisposed(DisposeEvent e) {
-// name.removePropertyChangeListener(listener);
- }
- });
}
/**
@@ -325,10 +317,11 @@ public class NameComposite extends EditorGroupedComposite {
if (getTextViewer() instanceof NameViewer) {
((NameViewer) getTextViewer()).setCursorToEOL();
- if (((TaxonBase) data).getName() != null) {
- boolean hasProblem = ((TaxonBase) data).getName()
- .getHasProblem();
- ((NameViewer) getTextViewer()).setShowError(hasProblem);
+ TaxonNameBase name = ((TaxonBase) data).getName();
+ if (name != null) {
+
+ boolean hasProblem = name.getHasProblem();
+ ((NameViewer) getTextViewer()).setShowError(name);
}
}
@@ -340,24 +333,32 @@ public class NameComposite extends EditorGroupedComposite {
@Override
public void parse(String text) {
+ // Either composite is not yet fully built, or
+ // the property sheet is writing to it
if (!isUseParser) {
return;
}
-
+
+ // Let others know the parser is active
isParsing = true;
+ // Get the name from the composite's data field
TaxonBase taxonBase = (TaxonBase) getData();
NonViralName nonViralName = (NonViralName) taxonBase.getName();
+ // Parse the name and paint the text field w any errors
if (nonViralName != null) {
- CdmUtil.parseFullReference(nonViralName, text, null, true);
- ((NameViewer) getTextViewer()).setShowError(nonViralName.getHasProblem());
+ CdmUtil.parseFullReference(nonViralName, text);
+ ((NameViewer) getTextViewer()).setShowError(nonViralName);
}
+ // Any entry of text means the taxon has been changed
setDirty(true);
+ // The parser is no longer active
isParsing = false;
+ // Manually refresh the property sheet to reflect changes
UiUtil.getPropertySheetPage().refresh();
}
});
@@ -393,7 +394,6 @@ public class NameComposite extends EditorGroupedComposite {
});
-// nameViewer.getTextWidget().addFocusListener(new FocusAdapter() {
getTextViewer().getTextWidget().addFocusListener(new FocusAdapter() {
public void focusGained(FocusEvent e) {
setFocus();
@@ -401,10 +401,7 @@ public class NameComposite extends EditorGroupedComposite {
});
// createLineWrapSupport(nameViewer);
-//
-// this.textViewer = nameViewer;
-// nameViewer.getTextWidget().setBackground(TaxEditorPlugin.getDefault().
-// getColor(ITaxEditorConstants.GROUP_GRAY_BKG_COLOR));
+
getTextViewer().getTextWidget().setBackground(TaxEditorPlugin.getDefault().
getColor(ITaxEditorConstants.GROUP_GRAY_BKG_COLOR));
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameViewer.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameViewer.java
index 78083ad11..29d77dbd7 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameViewer.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameViewer.java
@@ -21,8 +21,12 @@ import org.eclipse.jface.text.IUndoManagerExtension;
import org.eclipse.jface.text.Position;
import org.eclipse.jface.text.TextViewerUndoManager;
import org.eclipse.jface.text.source.Annotation;
+import org.eclipse.jface.text.source.AnnotationBarHoverManager;
import org.eclipse.jface.text.source.AnnotationModel;
import org.eclipse.jface.text.source.AnnotationPainter;
+import org.eclipse.jface.text.source.AnnotationRulerColumn;
+import org.eclipse.jface.text.source.CompositeRuler;
+import org.eclipse.jface.text.source.DefaultAnnotationHover;
import org.eclipse.jface.text.source.IAnnotationAccess;
import org.eclipse.jface.text.source.SourceViewer;
import org.eclipse.swt.SWT;
@@ -90,9 +94,18 @@ public class NameViewer extends SourceViewer {
annotationPainter.addAnnotationType(WarningAnnotation.WARNING_TYPE, LineWrapSquigglesStrategy.ID);
annotationPainter.setAnnotationTypeColor(WarningAnnotation.WARNING_TYPE,
new Color(Display.getDefault(), WarningAnnotation.WARNING_RGB));
-
+
this.addPainter(annotationPainter);
+// DefaultAnnotationHover hover = new DefaultAnnotationHover();
+//
+// CompositeRuler fCompositeRuler = new CompositeRuler();
+// AnnotationRulerColumn annotationCol = new AnnotationRulerColumn(model, 10);
+// AnnotationBarHoverManager fAnnotationHoverManager = new AnnotationBarHoverManager(annotationCol, this,
+// new DefaultAnnotationHover(), fHoverControlCreator);
+// fAnnotationHoverManager.install(annotationRuler.getControl());
+
+
// DocumentUndoManagerRegistry.connect(this.getDocument());
// IDocumentUndoManager docUndoManager = DocumentUndoManagerRegistry.getDocumentUndoManager(this.getDocument());
@@ -170,8 +183,7 @@ public class NameViewer extends SourceViewer {
this.getAnnotationModel().addAnnotation(
new ErrorAnnotation(0, text),
- new Position(start, length));
-
+ new Position(start, length));
}
}
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditorView.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditorView.java
index b13505b94..3e950d72b 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditorView.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditorView.java
@@ -75,10 +75,6 @@ public class TaxonNameEditorView extends AbstractTaxonEditorView {
// Register listeners for any change in accepted name or set of relations
taxon.getName().addPropertyChangeListener(taxonChangeListener);
taxon.addPropertyChangeListener(taxonChangeListener);
-
- // The property sheet should show the Taxon's accepted name upon
- // receiving focus
- setDefaultPropertySheetObject(taxon.getName());
}
@Override
@@ -169,6 +165,9 @@ public class TaxonNameEditorView extends AbstractTaxonEditorView {
// We've added elements to the managed form, so redraw it
scrolledForm.reflow(true);
+
+ setSelection(acceptedNameComposite);
+ acceptedNameComposite.drawBorder();
}
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmUtil.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmUtil.java
index 6c12a3fff..006b0e9a0 100644
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmUtil.java
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmUtil.java
@@ -30,6 +30,7 @@ import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.name.NameRelationship;
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
import eu.etaxonomy.cdm.model.name.NonViralName;
import eu.etaxonomy.cdm.model.name.Rank;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
@@ -43,11 +44,6 @@ import eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl;
import eu.etaxonomy.taxeditor.TaxEditorPlugin;
import eu.etaxonomy.taxeditor.UiUtil;
-/**
- * @author p.ciardelli
- * @created 26.05.2008
- * @version 1.0
- */
/**
* @author p.ciardelli
* @created 17.09.2008
@@ -59,6 +55,7 @@ public class CdmUtil {
private static INonViralNameParser nonViralNameParser;
private static TermVocabularycdmlib
@@ -69,6 +66,8 @@ public class CdmUtil {
features = null;
ranks = null;
nonViralNameParser = null;
+
+ TaxEditorPlugin.getDefault().setNomStatusVocabulary(null);
}
/**
@@ -276,7 +275,7 @@ public class CdmUtil {
nomCode = UiUtil.getPreferredNomenclaturalCode();
}
- TaxonNameBase name = getNonViralNameParser().parseFullReference(fullReference,
+ TaxonNameBase name = getNonViralNameParser().parseReferencedName(fullReference,
nomCode, rank);
if (name.hasProblem()) {
@@ -295,8 +294,27 @@ public class CdmUtil {
* @param rank
* @param makeEmpty
*/
- public static void parseFullReference(NonViralName nameToBeFilled, String fullReference, Rank rank, boolean makeEmpty) {
- getNonViralNameParser().parseFullReference(nameToBeFilled, fullReference, rank, makeEmpty);
+ public static void parseFullReference(NonViralName nameToBeFilled, String fullReference) {
+
+ Rank rank = null;
+ boolean makeEmpty = true;
+
+ // If the name already has a rank, make sure it is passed to the parser
+ if (nameToBeFilled.getRank() != null) {
+ rank = nameToBeFilled.getRank();
+ }
+
+ // Call get status to get status list into the transaction
+// for (NomenclaturalStatusType status : nameToBeFilled.getStatus()) {
+//
+// }
+// TaxEditorPlugin.getDefault().getCdmApp().getTermService().saveTerm(termBase)
+// NomenclaturalStatusType term = NomenclaturalStatusType.INVALID();
+//// .getRepresentation(Language.DEFAULT());
+// TaxEditorPlugin.getDefaulty().getCdmApp().getTermService().saveTerm(term);
+// logger.warn(term.getRepresentation(Language.DEFAULT()));
+
+ getNonViralNameParser().parseReferencedName(nameToBeFilled, fullReference, rank, makeEmpty);
if (nameToBeFilled.hasProblem()) {
nameToBeFilled.setFullTitleCache(fullReference);
@@ -321,8 +339,8 @@ public class CdmUtil {
* @return
*/
public static ReferenceBase getSessionDefaultSec() {
- return null;
-// return TaxEditorPlugin.getDefault().getSec();
+// return null;
+ return TaxEditorPlugin.getDefault().getSessionDefaultSec();
}
/**
@@ -438,7 +456,7 @@ public class CdmUtil {
// In case format is "xxxx-xxxx"
String[] years = refYear.split("-");
- // Unlikely case of "xxx-xx-xxx..."
+ // Unlikely case of "xxxx-xxxx-xxxx..."
if (years.length > 2) {
throw new NumberFormatException();
}
@@ -446,7 +464,7 @@ public class CdmUtil {
// Set startYear
datePublished.setStartYear(getValidYear(years[0]));
- // Format is "xxx-xxxx"
+ // Format is "xxxx-xxxx"
if (years.length == 2) {
datePublished.setEndYear(getValidYear(years[1]));
}
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/PropertySheetNode.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/PropertySheetNode.java
deleted file mode 100644
index 30f21fa7f..000000000
--- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/PropertySheetNode.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package eu.etaxonomy.taxeditor.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- *
- *
- * @author p.ciardelli
- *
- */
-public class PropertySheetNode {
-
- private boolean editable;
- private List