From c4b5fbed14eea2fd78670d2c7f3291960c58594b Mon Sep 17 00:00:00 2001 From: "a.theys" Date: Mon, 23 Jan 2012 14:43:20 +0000 Subject: [PATCH] AT: commiting latest changes to the Palm Use data extension --- .gitattributes | 1 + eu.etaxonomy.taxeditor.cdmlib/.classpath | 238 +++++++++--------- .../editor/view/uses/UsesLabelProvider.java | 85 +++++-- .../uses/handler/CreateUseRecordHandler.java | 37 ++- .../view/uses/handler/DeleteUseHandler.java | 5 +- .../operation/CreateUseRecordOperation.java | 18 +- .../operation/DeleteUseRecordOperation.java | 64 +++++ 7 files changed, 293 insertions(+), 155 deletions(-) create mode 100644 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/DeleteUseRecordOperation.java diff --git a/.gitattributes b/.gitattributes index cf048df2a..dd91b184a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -485,6 +485,7 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/u eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateTaxonUseOperation.java -text eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateUseRecordOperation.java -text eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/DeleteTaxonUseOperation.java -text +eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/DeleteUseRecordOperation.java -text eu.etaxonomy.taxeditor.editor/src/main/resources/TaonDescriptionEditor.screen -text eu.etaxonomy.taxeditor.editor/src/main/resources/log4j.properties -text eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/Application.java -text diff --git a/eu.etaxonomy.taxeditor.cdmlib/.classpath b/eu.etaxonomy.taxeditor.cdmlib/.classpath index 99aacc09e..1270f8c7e 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/.classpath +++ b/eu.etaxonomy.taxeditor.cdmlib/.classpath @@ -1,119 +1,119 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesLabelProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesLabelProvider.java index ba88dd48a..37968d9a7 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesLabelProvider.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesLabelProvider.java @@ -1,39 +1,80 @@ - package eu.etaxonomy.taxeditor.editor.view.uses; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction; + import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider; import org.eclipse.jface.viewers.StyledString; +import eu.etaxonomy.cdm.api.service.DefaultCategoricalDescriptionBuilder; +import eu.etaxonomy.cdm.api.service.DescriptionBuilder; +import eu.etaxonomy.cdm.model.common.Language; +import eu.etaxonomy.cdm.model.common.LanguageString; +import eu.etaxonomy.cdm.model.description.CategoricalData; import eu.etaxonomy.cdm.model.description.DescriptionBase; +import eu.etaxonomy.cdm.model.description.DescriptionElementBase; +import eu.etaxonomy.cdm.model.description.TextData; +import eu.etaxonomy.taxeditor.store.CdmStore; - - - - - - -public class UsesLabelProvider extends ColumnLabelProvider implements IStyledLabelProvider { - +public class UsesLabelProvider extends ColumnLabelProvider implements + IStyledLabelProvider { + + private static DescriptionBuilder categoricalDescriptionBuilder = new DefaultCategoricalDescriptionBuilder(); public String getText(Object element) { - /*return DescriptionHelper.getLabel(element); - - for (Marker marker : element.getMarkers()) { - if (marker.getMarkerType().getTitleCache().equals("use")) { - return "Use: " + text; + String text = ""; + /* + * return DescriptionHelper.getLabel(element); + * + * for (Marker marker : element.getMarkers()) { if + * (marker.getMarkerType().getTitleCache().equals("use")) { return + * "Use: " + text; } } + */ + if (element instanceof DescriptionBase) { + text = ((DescriptionBase) element).getTitleCache(); + if (text == null || text.length() == 0) { + text = "Use: No label provided"; } + else { + text = "Use: " + text; + } + } + else if (element instanceof CategoricalData) { + TextData textData = categoricalDescriptionBuilder.build((CategoricalData) element, getLanguageList()); + text = textData.getText(CdmStore.getDefaultLanguage()); + if (text == null || text.length() == 0) { + text = "No data provided"; + } + return text; + } + /*else if (element instanceof DescriptionElementBase) { + Map useRecordText = ((DescriptionElementBase) element).getModifyingText(); + + + if (text == null || text.length() == 0) { + text = "Use Record: No label provided"; + } + text = useRecordText.toString(); + //text = "Something else"; }*/ - String text = ((DescriptionBase)element).getTitleCache(); - if (text == null || text.length() == 0) { - text = "No label provided"; + else{ + text = "Use Record"; } - - return "Use: " + text; - } - + + return text; + } + @Override public StyledString getStyledText(Object element) { - return new StyledString(this.getText(element), StyledString.QUALIFIER_STYLER); + return new StyledString(this.getText(element), + StyledString.QUALIFIER_STYLER); + } + + private static List getLanguageList(){ + return Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()}); } } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/handler/CreateUseRecordHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/handler/CreateUseRecordHandler.java index 2e24fb0c1..390cb7673 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/handler/CreateUseRecordHandler.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/handler/CreateUseRecordHandler.java @@ -1,5 +1,8 @@ package eu.etaxonomy.taxeditor.editor.view.uses.handler; +import java.util.List; +import java.util.Set; + import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; @@ -15,14 +18,19 @@ import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.handlers.HandlerUtil; +import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; +import eu.etaxonomy.cdm.model.description.CategoricalData; +import eu.etaxonomy.cdm.model.description.DescriptionElementBase; import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.description.TaxonDescription; +import eu.etaxonomy.cdm.model.description.TextData; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.taxeditor.editor.EditorUtil; import eu.etaxonomy.taxeditor.editor.TaxonEditorInput; import eu.etaxonomy.taxeditor.editor.view.uses.operation.CreateUseRecordOperation; import eu.etaxonomy.taxeditor.operation.AbstractPostOperation; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; +import eu.etaxonomy.taxeditor.store.CdmStore; public class CreateUseRecordHandler extends AbstractHandler { public Object execute(ExecutionEvent event) throws ExecutionException { @@ -56,16 +64,31 @@ public class CreateUseRecordHandler extends AbstractHandler { } if (description != null) { - - Feature feature = (Feature) ((Event) event.getTrigger()).data; - + //CategoricalData element = CategoricalData.NewInstance(); AbstractPostOperation operation = null; try { + List features = CdmStore.getTermManager().getPreferredTerms(Feature.class); + //TextData element = TextData.NewInstance(); + /*TextData feature = TextData.NewInstance(); + *Feature feature = (Feature) HibernateProxyHelper.deproxy(feature);*/ + for (Feature feature : features) { + if(feature.getTitleCache().equals("Use Record")) { + feature.setSupportsCategoricalData(true); + //CategoricalData element = CategoricalData.NewInstance(); + //element.setFeature(feature); + /*operation = new CreateUseRecordOperation(event + .getCommand().getName(), + EditorUtil.getUndoContext(), taxon, + description, feature, postOperationEnabled);*/ + operation = new CreateUseRecordOperation(event + .getCommand().getName(), + EditorUtil.getUndoContext(), taxon, + description, feature, postOperationEnabled); + + } + } // TODO use undo context specific to editor - operation = new CreateUseRecordOperation(event - .getCommand().getName(), - EditorUtil.getUndoContext(), taxon, - description, element, postOperationEnabled); + EditorUtil.executeOperation(operation); } catch (NotDefinedException e) { EditorUtil.warn(getClass(), "Command name not set"); diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/handler/DeleteUseHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/handler/DeleteUseHandler.java index 167b4f59f..0028fc3a1 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/handler/DeleteUseHandler.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/handler/DeleteUseHandler.java @@ -21,6 +21,7 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil; import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation; import eu.etaxonomy.taxeditor.editor.view.media.operation.DeleteMediaOperation; import eu.etaxonomy.taxeditor.editor.view.uses.operation.DeleteTaxonUseOperation; +import eu.etaxonomy.taxeditor.editor.view.uses.operation.DeleteUseRecordOperation; import eu.etaxonomy.taxeditor.model.FeatureNodeContainer; import eu.etaxonomy.taxeditor.operation.AbstractPostOperation; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; @@ -62,7 +63,7 @@ public class DeleteUseHandler extends AbstractHandler { } // DescriptionElementBase else if (object instanceof DescriptionElementBase) { - operations.add(new DeleteDescriptionElementOperation(label, + operations.add(new DeleteUseRecordOperation(label, undoContext, (DescriptionElementBase) object, postOperationEnabled)); } else if (object instanceof FeatureNodeContainer) { @@ -70,7 +71,7 @@ public class DeleteUseHandler extends AbstractHandler { .getDescriptionElementsForEntireBranch(); for (DescriptionElementBase description : descriptions) { - operations.add(new DeleteDescriptionElementOperation( + operations.add(new DeleteUseRecordOperation( label, undoContext, description, postOperationEnabled)); } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateUseRecordOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateUseRecordOperation.java index 6ea72b38a..90fd7e604 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateUseRecordOperation.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateUseRecordOperation.java @@ -29,19 +29,27 @@ public class CreateUseRecordOperation extends AbstractPostOperation { private DescriptionElementBase element; + /*public CreateUseRecordOperation(String label, IUndoContext undoContext, + Taxon taxon, TaxonDescription description, Feature feature, IPostOperationEnabled postOperationEnabled) {*/ public CreateUseRecordOperation(String label, IUndoContext undoContext, - Taxon taxon, TaxonDescription description, DescriptionElementBase element, IPostOperationEnabled postOperationEnabled) { - super(label, undoContext, taxon, postOperationEnabled); + Taxon taxon, TaxonDescription description, Feature feature, IPostOperationEnabled postOperationEnabled) { + super(label, undoContext, taxon, postOperationEnabled); - this.description = description; - this.element = element; + this.description = description; + this.feature = feature; } public CreateUseRecordOperation(String label, IUndoContext undoContext, Taxon taxon, TaxonDescription description, Feature feature, DescriptionElementBase element, IPostOperationEnabled postOperationEnabled) { - this(label, undoContext, taxon, description, element, postOperationEnabled); + /*public CreateUseRecordOperation(String label, + IUndoContext undoContext, Taxon taxon, + TaxonDescription description, Feature feature, + DescriptionElementBase element, IPostOperationEnabled postOperationEnabled) {*/ + + this(label, undoContext, taxon, description, feature, postOperationEnabled); + //this(label, undoContext, taxon, description, (CategoricalData) element, postOperationEnabled); this.element = element; } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/DeleteUseRecordOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/DeleteUseRecordOperation.java new file mode 100644 index 000000000..b50e4bd65 --- /dev/null +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/DeleteUseRecordOperation.java @@ -0,0 +1,64 @@ +package eu.etaxonomy.taxeditor.editor.view.uses.operation; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.operations.IUndoContext; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; + +import eu.etaxonomy.cdm.model.description.DescriptionBase; +import eu.etaxonomy.cdm.model.description.DescriptionElementBase; +import eu.etaxonomy.taxeditor.operation.AbstractPostOperation; +import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; +import eu.etaxonomy.taxeditor.store.StoreUtil; + +public class DeleteUseRecordOperation extends AbstractPostOperation { + private DescriptionElementBase element; + private DescriptionBase description = null; + + + public DeleteUseRecordOperation(String label, IUndoContext undoContext, + DescriptionElementBase element, IPostOperationEnabled postOperationEnabled) { + super(label, undoContext, postOperationEnabled); + + this.element = element; + } + + + @Override + public IStatus execute(IProgressMonitor monitor, IAdaptable info) + throws ExecutionException { + description = element.getInDescription(); + + monitor.worked(20); + + // Remove element from description + if (description == null) { + StoreUtil.error(this.getClass(), "Couldn't find element's description!", null); + } else { + description.removeElement(element); + } + monitor.worked(40); + + // Redraw editor if exists + return postExecute(null); + } + + + @Override + public IStatus redo(IProgressMonitor monitor, IAdaptable info) + throws ExecutionException { + return execute(monitor, info); + } + + + @Override + public IStatus undo(IProgressMonitor monitor, IAdaptable info) + throws ExecutionException { + + description.addElement(element); + + return postExecute(element); + } + +} -- 2.34.1