taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortMenuProvider.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/NameCreator.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/ReferenceCreator.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/TeamOrPersonCreator.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorInputTypeValues.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorPropertyTester.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DeleteObjectContributionItem.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicNewObjectMenu.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/NewObjectContributionItem.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/OpenBulkEditorContributionItem.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/MergeGroupHandler.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMergeTargetHandler.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/ShowReferencingObjectsHandler.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/ToggleMergeCandidateHandler.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/BulkEditorInput.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/ReferenceEditorInput.java -text
</menuContribution>\r
<menuContribution\r
locationURI="popup:#BulkEditorContext">\r
- <dynamic\r
- class="eu.etaxonomy.taxeditor.bulkeditor.command.NewObjectContributionItem"\r
- id="taxeditor-bulkeditor.dynamicnewobjectcommand">\r
- </dynamic>\r
+ <menu\r
+ label="New">\r
+ <dynamic\r
+ class="eu.etaxonomy.taxeditor.bulkeditor.command.DynamicNewObjectMenu"\r
+ id="taxeditor-bulkeditor.dynamicNewObjectMenu">\r
+ </dynamic>\r
+ </menu>\r
<!--dynamic\r
class="eu.etaxonomy.taxeditor.bulkeditor.command.DeleteObjectContributionItem"\r
id="taxeditor-bulkeditor.dynamicdeleteobjectcommand">\r
return viewer;\r
}\r
\r
- /** \r
- * @param newInstance\r
+ /**\r
+ * Create an annotated line with an "empty" entity, i.e. using the editor\r
+ * input's default entity type and a zero-length title cache. \r
+ * \r
+ * @return\r
*/\r
public LineAnnotation createAnnotatedLineNewObject() {\r
\r
return annotation;\r
}\r
\r
+ /**\r
+ * Create an annotated line, first creating an entity of type "key" - this key\r
+ * must be recognized by the editor's entity creator.\r
+ * \r
+ * @param key\r
+ * @param value\r
+ * @return \r
+ */\r
+ public LineAnnotation createAnnotatedLineNewObject(Object key, String titleCache) {\r
+ \r
+ // Create new object\r
+ Object entity = ((AnnotatedLineDocumentProvider) getDocumentProvider()).\r
+ getEntityCreator(getEditorInput()).createEntity(key, titleCache);\r
+\r
+ LineAnnotation annotation = createAnnotatedLine(entity);\r
+ if (annotation != null) {\r
+ annotation.markAsNew(true);\r
+ }\r
+ return annotation;\r
+ \r
+ }\r
+ \r
public LineAnnotation createAnnotatedLine(Object entity) {\r
\r
IEditorInput input = getEditorInput();\r
\r
package eu.etaxonomy.taxeditor.annotatedlineeditor;\r
\r
+import java.util.Map;\r
+\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
\r
\r
public interface IEntityCreator<T extends CdmBase> {\r
\r
T createEntity(String text);\r
+ \r
+ T createEntity(Object key, String text);\r
+ \r
+ /**\r
+ * Get a map of keys for all objects that can be created by this entity creator\r
+ * along with their string representations.\r
+ * \r
+ * @return\r
+ */\r
+ Map<Object, String> getKeyLabelPairs();\r
}\r
import org.eclipse.core.commands.AbstractHandler;\r
import org.eclipse.core.commands.ExecutionEvent;\r
import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.jface.dialogs.InputDialog;\r
+import org.eclipse.jface.window.Window;\r
+import org.eclipse.swt.widgets.Event;\r
import org.eclipse.ui.IEditorInput;\r
import org.eclipse.ui.IEditorPart;\r
import org.eclipse.ui.handlers.HandlerUtil;\r
IEditorPart editor = HandlerUtil.getActiveEditor(event);\r
IEditorInput input = editor.getEditorInput();\r
if (editor instanceof AnnotatedLineEditor) {\r
- ((AnnotatedLineEditor) editor).createAnnotatedLineNewObject();\r
+ \r
+ Object key = ((Event)event.getTrigger()).data;\r
+ if (key != null) {\r
+ String text = ((Event)event.getTrigger()).text;\r
+ InputDialog dialog = new InputDialog(HandlerUtil.getActiveShell(event), "Create " + text, "Enter new " + text, "", null);\r
+ if (dialog.open() == Window.CANCEL) {\r
+ return null;\r
+ }\r
+ ((AnnotatedLineEditor) editor).createAnnotatedLineNewObject(key, dialog.getValue());\r
+ } else {\r
+ ((AnnotatedLineEditor) editor).createAnnotatedLineNewObject();\r
+ }\r
}\r
return null;\r
}\r
protected ISourceViewer createSourceViewer(Composite parent,\r
IVerticalRuler ruler, int styles) {\r
ISourceViewer viewer = super.createSourceViewer(parent, ruler, styles);\r
- addToggleMergeCandidateListener(ruler.getControl());\r
+ if (((BulkEditorInput) getEditorInput()).isMergingEnabled()) {\r
+ addToggleMergeCandidateListener(ruler.getControl());\r
+ }\r
return viewer;\r
}\r
\r
*/\r
public void toggleMergeCandidateAnnotation(int line) {\r
// TODO merge this with duplicate code in SetMergeCandidateHandler\r
+ \r
+ // Set line as selection\r
+ \r
+ // call handler w handler service\r
+ \r
IDocument document = getSourceViewer().getDocument();\r
LineAnnotationModel model = \r
(LineAnnotationModel) getSourceViewer().getAnnotationModel();\r
\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreatorService;\r
+import eu.etaxonomy.taxeditor.bulkeditor.input.AgentEditorInput;\r
import eu.etaxonomy.taxeditor.bulkeditor.input.NameEditorInput;\r
import eu.etaxonomy.taxeditor.bulkeditor.input.ReferenceEditorInput;\r
\r
if (element instanceof NameEditorInput) {\r
return new NameCreator();\r
}\r
+ if (element instanceof AgentEditorInput) {\r
+ return new TeamOrPersonCreator();\r
+ }\r
return null;\r
}\r
\r
import org.eclipse.ui.IEditorPart;\r
\r
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
+import eu.etaxonomy.cdm.model.agent.AgentBase;\r
+import eu.etaxonomy.cdm.model.agent.Institution;\r
+import eu.etaxonomy.cdm.model.agent.Person;\r
+import eu.etaxonomy.cdm.model.agent.Team;\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.EntityListener;\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy;\r
+import eu.etaxonomy.taxeditor.propertysheet.AgentBasePropertySource;\r
import eu.etaxonomy.taxeditor.propertysheet.name.NonViralNamePropertySource;\r
import eu.etaxonomy.taxeditor.propertysheet.reference.ReferencePropertySource;\r
\r
if (entity instanceof NonViralName) {\r
return new NonViralNamePropertySource((NonViralName) entity);\r
}\r
- \r
+ if (entity instanceof AgentBase) {\r
+ return new AgentBasePropertySource((AgentBase) entity);\r
+ }\r
return null;\r
}\r
\r
String text = ((TaxonNameBase) entity).getTitleCache(); \r
return text == null ? "" : text;\r
}\r
+ if (entity instanceof AgentBase) {\r
+ String text = ((AgentBase) entity).getTitleCache();\r
+ if (entity instanceof Team) {\r
+ text += " [Author Team]";\r
+ }\r
+ if (entity instanceof Person) {\r
+ text += " [Person]";\r
+ }\r
+ if (entity instanceof Institution) {\r
+ text += " [Institution]";\r
+ }\r
+ return text == null ? "" : text;\r
+ }\r
return "";\r
}\r
\r
if (entity instanceof TaxonNameBase) {\r
return "No name title cache";\r
}\r
+ if (entity instanceof AgentBase) {\r
+ return "No title cache";\r
+ }\r
return "";\r
}\r
\r
String text = ((TaxonNameBase) entity).getTitleCache(); \r
return (text == null || text.equals(""));\r
}\r
+ if (entity instanceof AgentBase) {\r
+ String text = ((AgentBase) entity).getTitleCache(); \r
+ return (text == null || text.equals(""));\r
+ }\r
return false;\r
}\r
\r
import org.apache.log4j.Logger;\r
\r
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;\r
-import eu.etaxonomy.cdm.model.common.TimePeriod;\r
+import eu.etaxonomy.cdm.model.agent.AgentBase;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
import eu.etaxonomy.cdm.strategy.merge.MergeException;\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService;\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.IdentifiableEntityComparator;\r
+import eu.etaxonomy.taxeditor.bulkeditor.input.AgentEditorInput;\r
import eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput;\r
import eu.etaxonomy.taxeditor.bulkeditor.input.NameEditorInput;\r
import eu.etaxonomy.taxeditor.bulkeditor.input.ReferenceEditorInput;\r
private static final Logger logger = Logger\r
.getLogger(BulkEditorPersistenceService.class);\r
\r
- \r
- public ReferenceBase makeTestReference(String titleCache, int year) {\r
- ReferenceBase ref = (ReferenceBase) creator.createEntity(titleCache);\r
- if (year > 0)\r
- ref.setDatePublished(TimePeriod.NewInstance(year));\r
- return ref;\r
- }\r
-\r
- ReferenceCreator creator = new ReferenceCreator();\r
- \r
/* (non-Javadoc)\r
* @see eu.etaxonomy.taxeditor.bulkeditor.IEntityPersistenceService#getEntityList(java.lang.Object)\r
*/\r
if (element instanceof NameEditorInput) {\r
entityList = CdmStore.findNames(configurator);\r
}\r
- // TODO enable when implementing AgentEditor\r
-// if (element instanceof AgentEditorInput){\r
-// entityList = CdmStore.findAgents(configurator);\r
-// }\r
+ if (element instanceof AgentEditorInput){\r
+ entityList = CdmStore.findTeamOrPersons(configurator);\r
+ \r
+ }\r
if (queryComparator != null) {\r
Collections.sort(entityList, queryComparator); \r
} else {\r
}\r
((BulkEditorInput) element).setQuery(null);\r
}\r
-// entityList.add(makeTestReference("Acta universitatis carolinae. Biologica Prague",1932));\r
-// entityList.add(makeTestReference("Acta universitatis asiae mediae. Botanica",1753));\r
-// entityList.add(makeTestReference("Acta phytogeographica suecica Uppsala",1900));\r
-// entityList.add(makeTestReference("Acta botanica neerlandica Amsterdam",1864));\r
-// entityList.add(makeTestReference("Acta geobotanica hungarica Debrecen, Hungary",0));\r
}\r
return entityList;\r
}\r
if (entity instanceof TaxonNameBase) {\r
CdmStore.getNameService().delete((TaxonNameBase) entity); \r
}\r
+ if (entity instanceof AgentBase) {\r
+ CdmStore.getAgentService().delete((AgentBase) entity); \r
+ }\r
return true;\r
}\r
\r
e.printStackTrace();\r
}\r
}\r
- if (entity instanceof TaxonNameBase) {\r
- logger.warn("Merging not yet implemented for taxon name base"); \r
- }\r
return true;\r
}\r
\r
if (entity instanceof TaxonNameBase) {\r
CdmStore.getNameService().saveOrUpdate((TaxonNameBase) entity); \r
}\r
+ if (entity instanceof AgentBase) {\r
+ CdmStore.getAgentService().saveOrUpdate((AgentBase) entity); \r
+ }\r
return true;\r
}\r
}\r
\r
package eu.etaxonomy.taxeditor.bulkeditor;\r
\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;\r
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
name.setTitleCache(text);\r
return name;\r
}\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.Class, java.lang.String)\r
+ */\r
+ public TaxonNameBase createEntity(Object key, String text) {\r
+ TaxonNameBase name = PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance((Rank) key);\r
+ name.setTitleCache(text);\r
+ return name;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#getClassLabelPairs()\r
+ */\r
+ public Map<Object, String> getKeyLabelPairs() {\r
+ Map<Object, String> result = new HashMap<Object, String>();\r
+ for (Rank rank : PreferencesUtil.getPreferredRanks()) {\r
+ result.put(rank, rank.getLabel());\r
+ }\r
+ return result;\r
+ }\r
}\r
\r
package eu.etaxonomy.taxeditor.bulkeditor;\r
\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
import org.apache.log4j.Logger;\r
\r
+import eu.etaxonomy.cdm.model.reference.Article;\r
import eu.etaxonomy.cdm.model.reference.Book;\r
+import eu.etaxonomy.cdm.model.reference.BookSection;\r
+import eu.etaxonomy.cdm.model.reference.CdDvd;\r
+import eu.etaxonomy.cdm.model.reference.Database;\r
+import eu.etaxonomy.cdm.model.reference.Generic;\r
+import eu.etaxonomy.cdm.model.reference.InProceedings;\r
+import eu.etaxonomy.cdm.model.reference.Journal;\r
+import eu.etaxonomy.cdm.model.reference.Patent;\r
+import eu.etaxonomy.cdm.model.reference.PersonalCommunication;\r
+import eu.etaxonomy.cdm.model.reference.PrintSeries;\r
+import eu.etaxonomy.cdm.model.reference.Proceedings;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceType;\r
+import eu.etaxonomy.cdm.model.reference.Report;\r
+import eu.etaxonomy.cdm.model.reference.Thesis;\r
+import eu.etaxonomy.cdm.model.reference.WebPage;\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;\r
\r
/**\r
*/\r
public ReferenceBase createEntity(String text) {\r
// TODO configure default reference type\r
- Book reference = Book.NewInstance();\r
+ return createEntity(Book.class, text);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.Class, java.lang.String)\r
+ */\r
+ public ReferenceBase createEntity(Object key, String text) {\r
+ ReferenceBase reference = null;\r
+ if (ReferenceType.Article.getMessage().equals(key)) {\r
+ reference = Article.NewInstance();\r
+ }\r
+ if (ReferenceType.Book.getMessage().equals(key)) {\r
+ reference = Book.NewInstance();\r
+ }\r
+ if (ReferenceType.BookSection.getMessage().equals(key)) {\r
+ reference = BookSection.NewInstance();\r
+ }\r
+ if (ReferenceType.CdDvd.getMessage().equals(key)) {\r
+ reference = CdDvd.NewInstance();\r
+ }\r
+ if (ReferenceType.Database.getMessage().equals(key)) {\r
+ reference = Database.NewInstance();\r
+ }\r
+ if (ReferenceType.Generic.getMessage().equals(key)) {\r
+ reference = Generic.NewInstance();\r
+ }\r
+ if (ReferenceType.InProceedings.getMessage().equals(key)) {\r
+ reference = InProceedings.NewInstance();\r
+ }\r
+ if (ReferenceType.Journal.getMessage().equals(key)) {\r
+ reference = Journal.NewInstance();\r
+ }\r
+ if (ReferenceType.Map.getMessage().equals(key)) {\r
+ reference = eu.etaxonomy.cdm.model.reference.Map.NewInstance();\r
+ }\r
+ if (ReferenceType.Patent.getMessage().equals(key)) {\r
+ reference = Patent.NewInstance();\r
+ }\r
+ if (ReferenceType.PersonalCommunication.getMessage().equals(key)) {\r
+ reference = PersonalCommunication.NewInstance();\r
+ }\r
+ if (ReferenceType.PrintSeries.getMessage().equals(key)) {\r
+ reference = PrintSeries.NewInstance();\r
+ }\r
+ if (ReferenceType.Proceedings.getMessage().equals(key)) {\r
+ reference = Proceedings.NewInstance();\r
+ }\r
+ if (ReferenceType.Report.getMessage().equals(key)) {\r
+ reference = Report.NewInstance();\r
+ }\r
+ if (ReferenceType.Thesis.getMessage().equals(key)) {\r
+ reference = Thesis.NewInstance();\r
+ }\r
+ if (ReferenceType.WebPage.getMessage().equals(key)) {\r
+ reference = WebPage.NewInstance();\r
+ }\r
+ if (reference == null) {\r
+ logger.warn("Reference type " + key + " not found. Creating reference with default type.");\r
+ reference = Book.NewInstance();\r
+ }\r
reference.setTitleCache(text);\r
return reference;\r
}\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#getClassLabelPairs()\r
+ */\r
+ public Map<Object, String> getKeyLabelPairs() {\r
+ Map<Object, String> result = new HashMap<Object, String>();\r
+ for (ReferenceType type : ReferenceType.values()) {\r
+ result.put(type.getMessage(), type.getMessage());\r
+ }\r
+ return result;\r
+ }\r
}\r
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.bulkeditor;\r
+\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import eu.etaxonomy.cdm.model.agent.Person;\r
+import eu.etaxonomy.cdm.model.agent.Team;\r
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;\r
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 18.09.2009\r
+ * @version 1.0\r
+ */\r
+public class TeamOrPersonCreator implements IEntityCreator<TeamOrPersonBase> {\r
+ private static final Logger logger = Logger\r
+ .getLogger(TeamOrPersonCreator.class);\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.String)\r
+ */\r
+ public TeamOrPersonBase createEntity(String text) {\r
+ return createEntity(Person.class, text);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.Class, java.lang.String)\r
+ */\r
+ public TeamOrPersonBase createEntity(Object key, String text) {\r
+ TeamOrPersonBase teamOrPerson = null;\r
+ if (Team.class.equals(((Class) key))) {\r
+ teamOrPerson = Team.NewInstance();\r
+ }\r
+ if (Person.class.equals(((Class) key))) {\r
+ teamOrPerson = Person.NewInstance();\r
+ } \r
+ if (teamOrPerson != null) {\r
+ teamOrPerson.setTitleCache(text);\r
+ }\r
+ return teamOrPerson;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#getClassLabelPairs()\r
+ */\r
+ public Map<Object, String> getKeyLabelPairs() {\r
+ Map<Object, String> result = new HashMap<Object, String>();\r
+ result.put(Team.class, "Author Team");\r
+ result.put(Person.class, "Author");\r
+ return result;\r
+ }\r
+}\r
import org.eclipse.core.commands.IParameterValues;\r
import org.eclipse.ui.IEditorInput;\r
\r
+import eu.etaxonomy.taxeditor.bulkeditor.input.AgentEditorInput;\r
import eu.etaxonomy.taxeditor.bulkeditor.input.NameEditorInput;\r
import eu.etaxonomy.taxeditor.bulkeditor.input.ReferenceEditorInput;\r
\r
// TODO user role determines which editor inputs are returned\r
values.put("Reference", ReferenceEditorInput.getID());\r
values.put("Name", NameEditorInput.getID());\r
+ values.put("Authors and Author Teams", AgentEditorInput.getID());\r
\r
return values;\r
}\r
if (input instanceof NameEditorInput) {\r
return "Name";\r
}\r
+ if (input instanceof AgentEditorInput) {\r
+ return "Authors and Author Teams";\r
+ }\r
return "";\r
}\r
}\r
private static final Logger logger = Logger\r
.getLogger(BulkEditorPropertyTester.class);\r
\r
-\r
/* (non-Javadoc)\r
* @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)\r
*/\r
public boolean test(Object receiver, String property, Object[] args,\r
Object expectedValue) {\r
BulkEditor bulkEditor = (BulkEditor) receiver;\r
- if ("isMergingEnabled".equals(property)) {\r
- \r
+ if ("isMergingEnabled".equals(property)) { \r
IEditorInput input = bulkEditor.getEditorInput();\r
if (input instanceof NameEditorInput) {\r
return false;\r
--- /dev/null
+// $Id$
+/**
+* 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.bulkeditor.command;
+
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.action.ContributionItem;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.CompoundContributionItem;
+import org.eclipse.ui.handlers.IHandlerService;
+
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineDocumentProvider;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineEditor;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
+import eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput;
+import eu.etaxonomy.taxeditor.bulkeditor.input.ReferenceEditorInput;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author n.hoffmann
+ * @created 17.04.2009
+ * @version 1.0
+ */
+public class DynamicNewObjectMenu extends CompoundContributionItem {
+ private static final Logger logger = Logger
+ .getLogger(DynamicNewObjectMenu.class);
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
+ */
+ @Override
+ protected IContributionItem[] getContributionItems() {
+
+ return new IContributionItem[] {
+ new ContributionItem() {
+ public void fill(Menu menu, int index){
+
+ final Map<Object, String> classLabelPairs = getClassLabelPairs();
+
+ final IHandlerService handlerService =
+ (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
+
+ for(final Object key : classLabelPairs.keySet()){
+ MenuItem menuItem = new MenuItem(menu, -1);
+ menuItem.setText(classLabelPairs.get(key));
+ menuItem.addSelectionListener(new SelectionListener(){
+
+ public void widgetDefaultSelected(SelectionEvent e) {}
+
+ public void widgetSelected(SelectionEvent ev) {
+ Event event = new Event();
+ event.data = key;
+ event.text = classLabelPairs.get(key);
+ try {
+ handlerService.executeCommand(IBulkEditorConstants.DYNAMIC_OPEN_OBJECT_ID, event);
+ } catch (Exception e) {
+ logger.error("Error executing command", e);
+ }
+ }
+ });
+ }
+ }
+ }
+ };
+ }
+
+ /**
+ * Get class label pairs from Annotated Line Editor's entity creator.
+ * @return
+ */
+ private Map<Object, String> getClassLabelPairs() {
+ IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+ if (editor == null || !(editor instanceof AnnotatedLineEditor) || !(((AnnotatedLineEditor) editor).getDocumentProvider() instanceof AnnotatedLineDocumentProvider)) {
+ return null;
+ }
+ IEntityCreator<?> entityCreator = ((AnnotatedLineDocumentProvider) ((AnnotatedLineEditor) editor).getDocumentProvider()).getEntityCreator(editor.getEditorInput());
+ return entityCreator.getKeyLabelPairs();
+ }
+}
\ No newline at end of file
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.taxeditor.bulkeditor.input;\r
+\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 25.06.2009\r
+ * @version 1.0\r
+ */\r
+public class AgentEditorInput extends BulkEditorInput {\r
+\r
+ public static final String ID = "bulkeditor.input.author";\r
+ \r
+ private static AgentEditorInput instance;\r
+\r
+ /**\r
+ * @param sourceBean\r
+ */\r
+ public AgentEditorInput() {\r
+ super(new Object());\r
+ }\r
+\r
+ /**\r
+ * @return the iD\r
+ */\r
+ public static String getID() {\r
+ return ID;\r
+ }\r
+ \r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.ui.IEditorInput#getName()\r
+ */\r
+ public String getName() {\r
+ return "Bulk Editor - Authors";\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.ui.IEditorInput#getToolTipText()\r
+ */\r
+ public String getToolTipText() {\r
+ return getName();\r
+ }\r
+\r
+ /**\r
+ * @return\r
+ */\r
+ public static BulkEditorInput getInstance() {\r
+ if (instance == null) {\r
+ instance = new AgentEditorInput();\r
+ }\r
+ return instance;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()\r
+ */\r
+ @Override\r
+ public boolean isMergingEnabled() {\r
+ return false;\r
+ }\r
+}
\ No newline at end of file
static public BulkEditorInput NewInstance(String inputType) {\r
\r
if (ReferenceEditorInput.getID().equals(inputType)) {\r
-// return ReferenceEditorInput.getInstance();\r
return new ReferenceEditorInput();\r
}\r
\r
if (NameEditorInput.getID().equals(inputType)) {\r
-// return NameEditorInput.getInstance();\r
return new NameEditorInput();\r
}\r
+\r
+ if (AgentEditorInput.getID().equals(inputType)) {\r
+ return new AgentEditorInput();\r
+ }\r
\r
return null;\r
}\r
public IBulkEditorQuery getQuery() {\r
return query;\r
}\r
+ \r
+ abstract public boolean isMergingEnabled();\r
}
\ No newline at end of file
public static Object getID() {\r
return ID;\r
}\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()\r
+ */\r
+ @Override\r
+ public boolean isMergingEnabled() {\r
+ return false;\r
+ }\r
}\r
}\r
return instance;\r
}\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()\r
+ */\r
+ @Override\r
+ public boolean isMergingEnabled() {\r
+ return true;\r
+ }\r
}
\ No newline at end of file
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.LineSelection;\r
import eu.etaxonomy.taxeditor.model.DescriptionHelper;\r
+import eu.etaxonomy.taxeditor.propertysheet.AgentBasePropertySource;\r
import eu.etaxonomy.taxeditor.propertysheet.name.NonViralNamePropertySource;\r
import eu.etaxonomy.taxeditor.propertysheet.reference.ReferencePropertySource;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
}\r
if (entity instanceof NonViralNamePropertySource) {\r
return ((NonViralNamePropertySource) entity).getName();\r
- } \r
+ }\r
+ if (entity instanceof AgentBasePropertySource) {\r
+ return ((AgentBasePropertySource) entity).getAgentBase();\r
+ }\r
return null;\r
}\r
}\r
package eu.etaxonomy.taxeditor.store;
+import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import eu.etaxonomy.cdm.api.service.ITaxonTreeService;
import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.api.service.IUserService;
-import eu.etaxonomy.cdm.api.service.TaxonTreeServiceImpl;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator;
import eu.etaxonomy.cdm.database.DbSchemaValidation;
import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.ext.IEditGeoService;
import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
import eu.etaxonomy.taxeditor.datasource.DatasourceLauncherDialog;
import eu.etaxonomy.taxeditor.io.ExportHandler;
return getAgentService().findAgentsByTitle(titleSearchString);
}
+
+ public static List<TeamOrPersonBase> findTeamOrPersons(IIdentifiableEntityServiceConfigurator configurator){
+ // TODO move this to cdmlib
+ List<TeamOrPersonBase> result = new ArrayList<TeamOrPersonBase>();
+ for (AgentBase agent : findAgents(configurator)) {
+ if (agent instanceof TeamOrPersonBase) {
+ result.add((TeamOrPersonBase) agent);
+ }
+ }
+ return result;
+ }
/*
* LANGUAGE