eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/AnnotationMarkerAccess.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/ChangeSynonymToTaxonUiAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/CompositeBorderDecorator.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/EditableGroupedComposite.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/EditorGroupComposite.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/EditorGroupedComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/ErrorAnnotation.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/GroupComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/GroupedComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/IDataDisposer.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/IParentDataAdapter.java -text
import eu.etaxonomy.taxeditor.view.TaxonomicTreeView;\r
import eu.etaxonomy.taxeditor.view.TaxonomicTreeViewer;\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.CompositeBorderDecorator;\r
-import eu.etaxonomy.taxeditor.view.nameviewersupport.GroupComposite;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.EditorGroupComposite;\r
\r
/**\r
* A collection of useful methods related to the UI.\r
logger.warn(dashes);\r
}\r
\r
- public static GroupComposite getMisappliedNameGroupComposite(\r
+ public static EditorGroupComposite getMisappliedNameGroupComposite(\r
IManagedForm managedForm) {\r
\r
// Iterate through parent's children until we find a composite which has a data field\r
// for MISAPPLIED_NAME\r
Composite parent = managedForm.getForm().getBody();\r
for (Control groupComposite : parent.getChildren()) {\r
- if (groupComposite instanceof GroupComposite) {\r
+ if (groupComposite instanceof EditorGroupComposite) {\r
if (groupComposite.getData(ITaxEditorConstants.MISAPPLIED_NAME) != null) {\r
- return (GroupComposite) groupComposite;\r
+ return (EditorGroupComposite) groupComposite;\r
}\r
}\r
}\r
return null;\r
}\r
\r
- public static GroupComposite createMisappliedNameGroupComposite(\r
+ public static EditorGroupComposite createMisappliedNameGroupComposite(\r
IManagedForm managedForm) {\r
\r
Composite parent = managedForm.getForm().getBody();\r
\r
- GroupComposite composite = new GroupComposite(parent);\r
+ EditorGroupComposite composite = new EditorGroupComposite(parent, managedForm);\r
composite.setData(ITaxEditorConstants.MISAPPLIED_NAME,"");\r
new CompositeBorderDecorator(composite, managedForm);\r
return composite;\r
import eu.etaxonomy.taxeditor.actions.cdm.ChangeSynonymHomotypicGroupAction;\r
import eu.etaxonomy.taxeditor.actions.cdm.ChangeTaxonRelationToSynonymAction;\r
import eu.etaxonomy.taxeditor.model.CdmUtil;\r
-import eu.etaxonomy.taxeditor.view.nameviewersupport.GroupComposite;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.EditorGroupComposite;\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.NameComposite;\r
\r
/**\r
* Reassigns the synonym attached to the NameComposite's data object to the\r
- * HomotypicalGroup specified in the GroupComposite's data object.\r
+ * HomotypicalGroup specified in the EditorGroupComposite's data object.\r
* \r
* If this is successful, new Synonym is attached to the NameComposite's data\r
* object, and NameComposite is cosmetically transformed according to its\r
}\r
\r
public AdaptCompositeToGroupAction(final NameComposite composite,\r
- GroupComposite groupComposite) {\r
+ EditorGroupComposite groupComposite) {\r
this();\r
\r
if (composite.getData() instanceof TaxonBase) {\r
.getData();\r
} else {\r
throw new IllegalArgumentException(\r
- "This action requires a GroupComposite with a HomotypicalGroup in its data field.");\r
+ "This action requires a EditorGroupComposite with a HomotypicalGroup in its data field.");\r
}\r
\r
this.composite = composite;\r
this.taxon = (Taxon) groupComposite.getParent().getData();\r
} else {\r
throw new IllegalArgumentException(\r
- "This action requires a GroupComposite whose parent has a Taxon in its data field.");\r
+ "This action requires a EditorGroupComposite whose parent has a Taxon in its data field.");\r
}\r
\r
operation = new ChangeHomotypicGroupOperation();\r
import eu.etaxonomy.taxeditor.UiUtil;\r
import eu.etaxonomy.taxeditor.actions.cdm.ChangeMisappliedNameToSynonymAction;\r
import eu.etaxonomy.taxeditor.actions.cdm.ChangeSynonymToMisappliedNameAction;\r
-import eu.etaxonomy.taxeditor.view.nameviewersupport.GroupComposite;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.EditorGroupComposite;\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.NameComposite;\r
\r
/**\r
composite.setData(misappliedNameTaxon);\r
composite.transform(NameComposite.CHANGE_TO_MISAPPLIED_NAME);\r
\r
- GroupComposite groupComposite = UiUtil\r
+ EditorGroupComposite groupComposite = UiUtil\r
.getMisappliedNameGroupComposite(managedForm);\r
if (groupComposite == null) {\r
groupComposite = UiUtil\r
import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
import eu.etaxonomy.taxeditor.UiUtil;\r
import eu.etaxonomy.taxeditor.actions.cdm.AddHeterotypicSynonymToTaxonAction;\r
-import eu.etaxonomy.taxeditor.view.nameviewersupport.GroupComposite;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.CompositeBorderDecorator;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.EditorGroupComposite;\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.NameComposite;\r
\r
/**\r
Composite grandParent = managedForm.getForm().getBody();\r
\r
// Create new homotypic group composite\r
- GroupComposite newGroupComposite = new GroupComposite(grandParent);\r
+ EditorGroupComposite newGroupComposite = new EditorGroupComposite(grandParent, managedForm);\r
newGroupComposite.setData(synonym.getName().getHomotypicalGroup());\r
+ new CompositeBorderDecorator(newGroupComposite, managedForm);\r
+ \r
+ // Put new group composite above misapplied names as necessary\r
+ EditorGroupComposite misappliedNameGroupComposite = UiUtil\r
+ .getMisappliedNameGroupComposite(managedForm);\r
+ if (misappliedNameGroupComposite != null) {\r
+ newGroupComposite.moveAbove(misappliedNameGroupComposite);\r
+ }\r
\r
// Create new heterotypic synonym composite\r
NameComposite newNameComposite = new NameComposite(newGroupComposite, managedForm);\r
newNameComposite.transform(NameComposite.CHANGE_TO_HETEROTYPIC_SYNONYM);\r
\r
// Add border support to NameComposite\r
- newNameComposite.createBorderSupport(managedForm);\r
+ newNameComposite.createBorderSupport();\r
\r
grandParent.layout();\r
}\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.NameComposite;\r
\r
/**\r
- * Looks for a GroupComposite on an IManagedForm which has a value set for\r
+ * Looks for a EditorGroupComposite on an IManagedForm which has a value set for\r
* composite.getData(ITaxEditorConstants.MISAPPLIED_NAME); if not found, creates\r
* it.\r
* \r
- * Then puts the NameComposite onto the misapplied name GroupComposite. \r
+ * Then puts the NameComposite onto the misapplied name EditorGroupComposite. \r
* \r
* @author p.ciardelli\r
* @created 02.06.2008\r
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.taxeditor.actions.TaxonTransfer;\r
-import eu.etaxonomy.taxeditor.view.nameviewersupport.GroupComposite;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.EditorGroupComposite;\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.NameComposite;\r
-import eu.etaxonomy.taxeditor.view.nameviewersupport.TesterooWritableSet;\r
\r
public class TestDragAndDrop {\r
\r
* Create contents of the window\r
*/\r
protected void createContents(Display display) {\r
- if (logger.isDebugEnabled()){ logger.debug("Creating contents" );}\r
- \r
- shell = new Shell();\r
- shell.setLayout(new FillLayout());\r
- shell.setSize(500, 375);\r
- shell.setText("SWT Application");\r
- \r
- composite = new Composite(shell, SWT.NONE);\r
- GridLayout gridLayout = new GridLayout();\r
- gridLayout.verticalSpacing = 10;\r
- composite.setLayout(gridLayout);\r
- composite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
- \r
- taxon = new Taxon();\r
- taxon.setName(BotanicalName.PARSED_NAME("Accepted name"));\r
- \r
- GroupComposite homoGroupComposite = new GroupComposite(composite);\r
- homoGroupComposite.setTaxon(taxon);\r
- \r
- new NameComposite(homoGroupComposite, taxon);\r
- \r
- Synonym homosyn = new Synonym();\r
- \r
- homosyn.setName(BotanicalName.PARSED_NAME("Homotypic synonym"));\r
- taxon.addSynonym(homosyn, SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF());\r
- new NameComposite(homoGroupComposite, homosyn, taxon);\r
- \r
- homoGroupComposite.drawRect();\r
- \r
- createSynAndHetGroup("Heterotypic synonym 1");\r
- createSynAndHetGroup("Heterotypic synonym 2");\r
- createSynAndHetGroup("Heterotypic synonym 3");\r
- createSynAndHetGroup("Heterotypic synonym 4");\r
-\r
- TesterooWritableSet.getInstance().addSetChangeListener\r
- (new ISetChangeListener() {\r
- public void handleSetChange(SetChangeEvent event) {\r
- for ( Object addition: event.diff.getAdditions()) {\r
- if (addition instanceof Synonym)\r
- createHeterotypicalGroup((Synonym) addition);\r
- }\r
- composite.layout();\r
- }\r
- });\r
- \r
- // Drop functionality\r
- Transfer[] types = new Transfer[] {TaxonTransfer.getInstance()};\r
- int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT;\r
- DropTarget target = new DropTarget(composite, operations);\r
- target.setTransfer(types);\r
- target.addDropListener(dropTargetAdapter);\r
- \r
- composite.addListener(SWT.Modify, new Listener() {\r
-\r
- public void handleEvent(Event event) {\r
- System.out.println("!");\r
- \r
- }\r
-\r
- \r
- });\r
+// if (logger.isDebugEnabled()){ logger.debug("Creating contents" );}\r
+// \r
+// shell = new Shell();\r
+// shell.setLayout(new FillLayout());\r
+// shell.setSize(500, 375);\r
+// shell.setText("SWT Application");\r
+// \r
+// composite = new Composite(shell, SWT.NONE);\r
+// GridLayout gridLayout = new GridLayout();\r
+// gridLayout.verticalSpacing = 10;\r
+// composite.setLayout(gridLayout);\r
+// composite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+// \r
+// taxon = new Taxon();\r
+// taxon.setName(BotanicalName.PARSED_NAME("Accepted name"));\r
+// \r
+// EditorGroupComposite homoGroupComposite = new EditorGroupComposite(composite);\r
+// homoGroupComposite.setTaxon(taxon);\r
+// \r
+// new NameComposite(homoGroupComposite, taxon);\r
+// \r
+// Synonym homosyn = new Synonym();\r
+// \r
+// homosyn.setName(BotanicalName.PARSED_NAME("Homotypic synonym"));\r
+// taxon.addSynonym(homosyn, SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF());\r
+// new NameComposite(homoGroupComposite, homosyn, taxon);\r
+// \r
+// homoGroupComposite.drawRect();\r
+// \r
+// createSynAndHetGroup("Heterotypic synonym 1");\r
+// createSynAndHetGroup("Heterotypic synonym 2");\r
+// createSynAndHetGroup("Heterotypic synonym 3");\r
+// createSynAndHetGroup("Heterotypic synonym 4");\r
+//\r
+// TesterooWritableSet.getInstance().addSetChangeListener\r
+// (new ISetChangeListener() {\r
+// public void handleSetChange(SetChangeEvent event) {\r
+// for ( Object addition: event.diff.getAdditions()) {\r
+// if (addition instanceof Synonym)\r
+// createHeterotypicalGroup((Synonym) addition);\r
+// }\r
+// composite.layout();\r
+// }\r
+// });\r
+// \r
+// // Drop functionality\r
+// Transfer[] types = new Transfer[] {TaxonTransfer.getInstance()};\r
+// int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT;\r
+// DropTarget target = new DropTarget(composite, operations);\r
+// target.setTransfer(types);\r
+// target.addDropListener(dropTargetAdapter);\r
+// \r
+// composite.addListener(SWT.Modify, new Listener() {\r
+//\r
+// public void handleEvent(Event event) {\r
+// System.out.println("!");\r
+// \r
+// }\r
+//\r
+// \r
+// });\r
\r
}\r
\r
private void createSynAndHetGroup(String synonymNameCache) {\r
- Synonym heterosyn = new Synonym();\r
- heterosyn.setName(BotanicalName.PARSED_NAME(synonymNameCache)); \r
- taxon.addSynonym(heterosyn, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF());\r
- \r
- createHeterotypicalGroup(heterosyn);\r
+// Synonym heterosyn = new Synonym();\r
+// heterosyn.setName(BotanicalName.PARSED_NAME(synonymNameCache)); \r
+// taxon.addSynonym(heterosyn, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF());\r
+// \r
+// createHeterotypicalGroup(heterosyn);\r
}\r
\r
private void createHeterotypicalGroup(Synonym heterosyn) {\r
\r
- GroupComposite heteroGroupComposite = new GroupComposite(composite);\r
- heteroGroupComposite.setTaxon(taxon);\r
- \r
- new NameComposite(heteroGroupComposite, heterosyn, taxon).setFocus();\r
-\r
- heteroGroupComposite.layout();\r
- heteroGroupComposite.drawRect();\r
- heteroGroupComposite.layout();\r
+// EditorGroupComposite heteroGroupComposite = new EditorGroupComposite(composite);\r
+// heteroGroupComposite.setTaxon(taxon);\r
+// \r
+// new NameComposite(heteroGroupComposite, heterosyn, taxon).setFocus();\r
+//\r
+// heteroGroupComposite.layout();\r
+// heteroGroupComposite.drawRect();\r
+// heteroGroupComposite.layout();\r
}\r
\r
DropTargetAdapter dropTargetAdapter = new DropTargetAdapter() {\r
\r
public void drop(DropTargetEvent event) {\r
\r
- Synonym synonym = \r
- (Synonym) event.data; \r
- \r
- GroupComposite heteroGroupComposite = new GroupComposite(composite);\r
- heteroGroupComposite.setTaxon(taxon);\r
- \r
- new NameComposite(heteroGroupComposite, synonym, taxon).setFocus();\r
- \r
- TestDragAndDrop.this.composite.layout();\r
+// Synonym synonym = \r
+// (Synonym) event.data; \r
+// \r
+// EditorGroupComposite heteroGroupComposite = new EditorGroupComposite(composite);\r
+// heteroGroupComposite.setTaxon(taxon);\r
+// \r
+// new NameComposite(heteroGroupComposite, synonym, taxon).setFocus();\r
+// \r
+// TestDragAndDrop.this.composite.layout();\r
} \r
};\r
}\r
import java.beans.PropertyChangeListener;\r
\r
import org.apache.log4j.Logger;\r
-import org.eclipse.core.commands.operations.IUndoContext;\r
import org.eclipse.core.runtime.IProgressMonitor;\r
import org.eclipse.ui.IEditorInput;\r
import org.eclipse.ui.IEditorSite;\r
import org.eclipse.ui.PartInitException;\r
-import org.eclipse.ui.actions.ActionFactory;\r
-import org.eclipse.ui.operations.RedoActionHandler;\r
-import org.eclipse.ui.operations.UndoActionHandler;\r
import org.eclipse.ui.part.MultiPageEditorPart;\r
\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.taxeditor.UiUtil;\r
import eu.etaxonomy.taxeditor.actions.cdm.SaveTaxonAction;\r
-import eu.etaxonomy.taxeditor.model.CdmUtil;\r
\r
/**\r
* \r
\r
/**\r
* Checks whether nested editors are calling <code>firePropertyChange(PROP_DIRTY)</code>\r
- * to single an edit has taken place before passing property change along to \r
+ * to signal an edit has taken place before passing property change along to \r
* <code>super.handlePropertyChange(int propertyId)</code>.\r
*/\r
/* (non-Javadoc)\r
import org.eclipse.ui.forms.widgets.TableWrapLayout;\r
import org.eclipse.ui.part.EditorPart;\r
import org.eclipse.ui.views.properties.IPropertySheetPage;\r
+import org.eclipse.ui.views.properties.IPropertySource;\r
import org.eclipse.ui.views.properties.PropertySheetPage;\r
\r
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.taxeditor.UiUtil;\r
import eu.etaxonomy.taxeditor.actions.WidgetTransfer;\r
import eu.etaxonomy.taxeditor.actions.ui.AdaptCompositeToGroupAction;\r
-import eu.etaxonomy.taxeditor.view.nameviewersupport.CompositeBorderDecorator;\r
-import eu.etaxonomy.taxeditor.view.nameviewersupport.GroupComposite;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.EditorGroupComposite;\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.NameComposite;\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.SimpleSelectionProvider;\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.TaxonCompositeFactory;\r
*/\r
private PropertyChangeListener taxonChangeListener = new PropertyChangeListener() {\r
public void propertyChange(PropertyChangeEvent arg0) {\r
- firePropertyChange(PROP_DIRTY);\r
+// firePropertyChange(PROP_DIRTY);\r
}\r
}; \r
\r
new PropertySourceAdapter(taxon.getName()).getPropertySource()\r
));\r
taxonCompositeFactory.setSelectionProvider(provider);\r
-// taxonCompositeFactory.setEditorSite(this.getEditorSite());\r
}\r
\r
@SuppressWarnings("unchecked")\r
private Composite parent;\r
\r
private IManagedForm managedForm;\r
-\r
private ScrolledForm scrolledForm; \r
\r
@Override\r
public void createPartControl(final Composite composite) {\r
\r
- managedForm = new ManagedForm(composite);\r
+ managedForm = new ManagedForm(composite) {\r
+ public void dirtyStateChanged() {\r
+ firePropertyChange(PROP_DIRTY);\r
+ }\r
+ public boolean setInput(Object input) {\r
+ if (input instanceof TaxonBase) {\r
+ TaxonNameBase name = ((TaxonBase) input).getName();\r
+ provider.setSelection(\r
+ new StructuredSelection(\r
+ new PropertySourceAdapter(name).getPropertySource()\r
+ ));\r
+ \r
+ }\r
+ return super.setInput(input);\r
+ }\r
+ };\r
scrolledForm = managedForm.getForm();\r
parent = scrolledForm.getBody();\r
\r
\r
// Create a homotypic group composite for the accepted taxon\r
HomotypicalGroup homotypicGroup = taxon.getHomotypicGroup(); \r
- GroupComposite homotypicComposite = \r
+ EditorGroupComposite homotypicComposite = \r
taxonCompositeFactory.createGroupComposite(parent, homotypicGroup); \r
homotypicComposite.setData(ITaxEditorConstants.TAXON, taxon);\r
\r
IterableSynonymyList synonymyList = new IterableSynonymyList(taxon);\r
HomotypicalGroup lastHeterotypicGroup = null;\r
HomotypicalGroup currentHeterotypicGroup = null;\r
- GroupComposite heterotypicGroupComposite = null;\r
- GroupComposite misappliedNameGroupComposite = null;\r
+ EditorGroupComposite heterotypicGroupComposite = null;\r
+ EditorGroupComposite misappliedNameGroupComposite = null;\r
\r
for (TaxonBase synonymOrMisName : synonymyList) {\r
if (synonymOrMisName instanceof Synonym) {\r
synonym.addPropertyChangeListener(taxonChangeListener);\r
currentHeterotypicGroup = synonym.getHomotypicGroup();\r
\r
- \r
if (currentHeterotypicGroup.equals(homotypicGroup)) {\r
\r
taxonCompositeFactory.createHomotypicSynonymComposite(homotypicComposite, synonym);\r
\r
public void drop(DropTargetEvent event) {\r
\r
- GroupComposite newGroupComposite = \r
+ EditorGroupComposite newGroupComposite = \r
taxonCompositeFactory.createGroupComposite(parent, new HomotypicalGroup());\r
\r
NameComposite nameComposite = (NameComposite) event.data;\r
--- /dev/null
+/**\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.view.nameviewersupport;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.ui.forms.IManagedForm;\r
+\r
+/** \r
+ * Formats EditorGroupComposite with cosmetic and layout properties specific to the\r
+ * Editor. This should be used to maintain a consistent look and feel for all Editor \r
+ * freetext area group components, such as HomotypicalGroup.\r
+ * \r
+ * @author p.ciardelli\r
+ * @created 02.06.2008\r
+ * @version 1.0\r
+ */\r
+public class EditorGroupComposite extends GroupComposite {\r
+ private static final Logger logger = Logger.getLogger(EditorGroupComposite.class);\r
+ \r
+ IManagedForm managedForm;\r
+ \r
+ public EditorGroupComposite(Composite parent, Object data, IManagedForm managedForm) {\r
+ super(parent, data);\r
+ \r
+ this.managedForm = managedForm;\r
+ }\r
+ \r
+ public EditorGroupComposite(Composite parent, IManagedForm managedForm) {\r
+ super(parent);\r
+\r
+ this.managedForm = managedForm;\r
+ }\r
+ \r
+ public IManagedForm getManagedForm() {\r
+ return managedForm;\r
+ }\r
+ \r
+}
\ No newline at end of file
+/**\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.view.nameviewersupport;\r
\r
import org.apache.log4j.Logger;\r
import org.eclipse.swt.widgets.Display;\r
import org.eclipse.swt.widgets.Label;\r
import org.eclipse.swt.widgets.Menu;\r
-import org.eclipse.ui.forms.IFormPart;\r
import org.eclipse.ui.forms.IManagedForm;\r
import org.eclipse.ui.forms.widgets.TableWrapData;\r
import org.eclipse.ui.forms.widgets.TableWrapLayout;\r
\r
-abstract public class EditableGroupedComposite extends GroupedComposite {\r
- private static final Logger logger = Logger.getLogger(TaxonCompositeFactory.class);\r
+/** \r
+ * Formats GroupedComposite with cosmetic and layout properties specific to the\r
+ * Editor. This should be used to maintain a consistent look and feel for all Editor \r
+ * freetext area components, such as NameComposite.\r
+ * \r
+ * @author p.ciardelli\r
+ * @created 02.06.2008\r
+ * @version 1.0\r
+ */\r
+abstract public class EditorGroupedComposite extends GroupedComposite {\r
+ private static final Logger logger = Logger.getLogger(EditorGroupedComposite.class);\r
\r
protected TextViewer textViewer;\r
protected TableWrapLayout layout;\r
private Label draggableLabel;\r
\r
protected IManagedForm managedForm;\r
- protected IFormPart formPart;\r
- protected boolean dirty;\r
\r
- public EditableGroupedComposite(Composite parent, IManagedForm managedForm) {\r
+ public EditorGroupedComposite(Composite parent, IManagedForm managedForm) {\r
super(parent);\r
\r
this.managedForm = managedForm;\r
- this.formPart = new FormPart(managedForm);\r
}\r
\r
@Override\r
if (selectionWrapper != null) {\r
selectionWrapper.setSelection();\r
}\r
+ managedForm.setInput(getData());\r
return super.setFocus();\r
}\r
\r
return menu;\r
}\r
\r
- public void createBorderSupport(IManagedForm managedForm) {\r
+ public void createBorderSupport() {\r
CompositeBorderDecorator borderDecorator = new CompositeBorderDecorator(\r
this, managedForm);\r
- TextViewer textViewer = getTextViewer();\r
- if (textViewer != null) {\r
- borderDecorator.setBorderedComposite(textViewer\r
- .getTextWidget());\r
+ if (getTextViewer() == null) {\r
+ logger.warn("Could not create border support - getTextViewer() returned null.");\r
+ } else {\r
+ borderDecorator.setBorderedComposite(getTextViewer().getTextWidget());\r
}\r
}\r
\r
protected void setDirty(boolean isDirty) {\r
- this.dirty = isDirty;\r
+ managedForm.dirtyStateChanged();\r
}\r
\r
- class FormPart implements IFormPart {\r
-\r
- public FormPart(IManagedForm form) {\r
- form.addPart(this);\r
- }\r
- \r
- @Override\r
- public void commit(boolean onSave) {}\r
-\r
- @Override\r
- public void dispose() {}\r
-\r
- @Override\r
- public void initialize(IManagedForm form) {}\r
-\r
- @Override\r
- public boolean isDirty() {\r
- return dirty;\r
- }\r
-\r
- @Override\r
- public boolean isStale() {\r
- return false;\r
- }\r
-\r
- @Override\r
- public void refresh() {}\r
-\r
- @Override\r
- public void setFocus() {}\r
-\r
- @Override\r
- public boolean setFormInput(Object input) {\r
- return false;\r
+ public void dispose () {\r
+ super.dispose();\r
+ setDirty(true);\r
+ }\r
+ \r
+ public boolean setParent(Composite parent) {\r
+ if (super.setParent(parent)) {\r
+ \r
+ // Has this been moved to a new IManagedForm?\r
+ if (parent instanceof EditorGroupComposite) {\r
+ IManagedForm parentForm = ((EditorGroupComposite) parent)\r
+ .getManagedForm();\r
+ if (!parentForm.equals(managedForm)) {\r
+ managedForm = parentForm;\r
+ }\r
+ }\r
+ \r
+ setDirty(true);\r
+ return true;\r
}\r
+ return false;\r
}\r
}
\ No newline at end of file
+++ /dev/null
-package eu.etaxonomy.taxeditor.view.nameviewersupport;\r
-\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.dnd.DND;\r
-import org.eclipse.swt.dnd.DropTarget;\r
-import org.eclipse.swt.dnd.DropTargetAdapter;\r
-import org.eclipse.swt.dnd.DropTargetEvent;\r
-import org.eclipse.swt.dnd.DropTargetListener;\r
-import org.eclipse.swt.dnd.Transfer;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.ui.forms.widgets.TableWrapData;\r
-import org.eclipse.ui.forms.widgets.TableWrapLayout;\r
-\r
-import eu.etaxonomy.taxeditor.actions.WidgetTransfer;\r
-\r
-public class GroupComposite extends Composite {\r
- \r
- private DropTarget target;\r
- \r
- public GroupComposite(Composite parent, Object data) {\r
- this(parent);\r
- setData(data);\r
- }\r
- \r
- public GroupComposite(Composite parent) {\r
- super(parent, SWT.NONE);\r
-\r
- // Graphic layout of composite\r
- this.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
- this.setLayout(new TableWrapLayout());\r
- this.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
- \r
- // Drop functionality\r
- Transfer[] types = new Transfer[] {WidgetTransfer.getInstance()}; \r
- int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT;\r
- target = new DropTarget(this, operations);\r
- target.setTransfer(types);\r
- target.addDropListener(new DropTargetAdapter() {\r
- \r
- public void dragEnter(DropTargetEvent event) {\r
- GroupComposite.this.notifyListeners(SWT.FocusIn, null);\r
- }\r
- \r
- public void dragLeave(DropTargetEvent event) {\r
- GroupComposite.this.notifyListeners(SWT.FocusOut, null);\r
- }\r
- \r
- public void drop(DropTargetEvent event) {\r
- \r
- if (event.data instanceof Composite) {\r
- Composite composite = (Composite) event.data; \r
- if ( ! composite.getParent().equals(GroupComposite.this)) {\r
- composite.setParent(GroupComposite.this);\r
- }\r
- }\r
- }\r
- });\r
- }\r
- \r
- public void addDropListener(DropTargetListener listener) {\r
- target.addDropListener(listener);\r
- }\r
-}
\ No newline at end of file
import eu.etaxonomy.taxeditor.actions.WidgetTransfer;\r
\r
/**\r
- * A composite which can be dragged between different GroupComposite. The user\r
+ * A composite which can be dragged between different EditorGroupComposite. The user\r
* uses the draggable control for dragging the whole composite.\r
* \r
- * @see eu.etaxonomy.taxeditor.view.nameviewersupport.GroupComposite\r
+ * @see eu.etaxonomy.taxeditor.view.nameviewersupport.EditorGroupComposite\r
* \r
* @author p.ciardelli\r
* \r
Composite oldGrandparent = oldParent.getParent();\r
\r
if (super.setParent(parent)) {\r
- if (oldParent instanceof GroupComposite\r
+ if (oldParent instanceof EditorGroupComposite\r
&& oldParent.getChildren().length == 0) {\r
oldParent.dispose();\r
}\r
grandParent = parent.getParent();\r
}\r
super.dispose();\r
- if (parent instanceof GroupComposite\r
+ if (parent instanceof EditorGroupComposite\r
&& parent.getChildren().length == 0) {\r
parent.dispose();\r
}\r
\r
public LineWrapSupport(TextViewer viewer, IManagedForm form) {\r
\r
+ if (viewer == null) {\r
+ throw new IllegalArgumentException(\r
+ "The provided TextViewer object is null.");\r
+ }\r
+ \r
this.viewer = viewer;\r
\r
textWidget = viewer.getTextWidget();\r
import eu.etaxonomy.taxeditor.view.ContextMenu;\r
import eu.etaxonomy.taxeditor.view.NameViewer;\r
\r
-/** \r
+/**\r
* @author p.ciardelli\r
* @created 02.06.2008\r
* @version 1.0\r
*/\r
-public class NameComposite extends EditableGroupedComposite {\r
- private static final Logger logger = Logger\r
- .getLogger(NameComposite.class);\r
+public class NameComposite extends EditorGroupedComposite {\r
+ private static final Logger logger = Logger.getLogger(NameComposite.class);\r
\r
- /** \r
- * ************ COMPOSITE TYPES ************ \r
- */ \r
+ /**\r
+ * ************ COMPOSITE TYPES ************\r
+ */\r
public String compositeType;\r
public static final String ACCEPTED = "accepted_name_composite";\r
public static final String HOMOTYPIC = "homotypic_name_composite";\r
public static final String HETEROTYPIC = "heterotypic_name_composite";\r
public static final String MISAPPLIEDNAME = "misappliedname_name_composite";\r
\r
- /** \r
- * ************ INDENTATIONS ************ \r
- */ \r
+ /**\r
+ * ************ INDENTATIONS ************\r
+ */\r
// TODO is there any reason not to get these directly from Plugin\r
public static final int ACCEPTED_INDENT = 0;\r
public static final int SYNONYM_INDENT = 15;\r
public static final int MISAPPLIEDNAME_INDENT = 15;\r
\r
- /** \r
- * ************ FONTS ************ \r
- */ \r
+ /**\r
+ * ************ FONTS ************\r
+ */\r
public static final Font ACCEPTED_FONT = TaxEditorPlugin.getDefault()\r
.getFont(ITaxEditorConstants.ACCEPTED_TAXON_FONT);\r
public static final Font SYNONYM_FONT = TaxEditorPlugin.getDefault()\r
.getFont(ITaxEditorConstants.MISAPPLIEDNAME_FONT);\r
\r
/**\r
- * ************ ICONS ************ \r
+ * ************ ICONS ************\r
*/\r
public static final Image ACCEPTED_ICON = TaxEditorPlugin.getDefault()\r
.getImage(ITaxEditorConstants.ACCEPTED_TAXON_ICON);\r
ITaxEditorConstants.MOVE_ICON);\r
\r
/**\r
- * ************ TRANSFORMATIONS ************ \r
+ * ************ TRANSFORMATIONS ************\r
*/\r
public static final String ADD_GROUP_BASIONYM = "add_group_basionym";\r
public static final String REMOVE_GROUP_BASIONYM = "remove_group_basionym";\r
public static final String CHANGE_TO_ACCEPTED_TAXON = "change_to_accepted_taxon";\r
public static final String CHANGE_TO_MISAPPLIED_NAME = "change_to_misapplied_name";\r
\r
- /** \r
- * ************ MENU ACTIONS ************ \r
+ /**\r
+ * ************ MENU ACTIONS ************\r
*/\r
public Action CHANGE_TAXON_TO_SYNONYM_ACTION;\r
\r
- \r
/**\r
- * The constructor for a NameComposite. Takes a parent Composite on which to create itself,\r
- * and an IManagedForm for Composite life cycle methods, i.e. drawing borders, creating other\r
- * Composites, creating line wrap support, etc.\r
+ * The constructor for a NameComposite. Takes a parent Composite on which to\r
+ * create itself, and an IManagedForm for Composite life cycle methods, i.e.\r
+ * drawing borders, creating other Composites, creating line wrap support,\r
+ * etc.\r
* \r
* @param parent\r
* @param managedForm\r
*/\r
public NameComposite(Composite parent, IManagedForm managedForm) {\r
super(parent, managedForm);\r
- \r
+\r
createNameViewer();\r
createBorderSupport();\r
- \r
+ createLineWrapSupport();\r
+\r
setFocus();\r
}\r
\r
- private void createBorderSupport() {\r
- CompositeBorderDecorator borderDecorator = new CompositeBorderDecorator(\r
- this, managedForm);\r
- if (getTextViewer() == null) {\r
- logger.warn("Could not create border support - getTextViewer() returned null.");\r
- } else {\r
- borderDecorator.setBorderedComposite(getTextViewer().getTextWidget());\r
- }\r
+ private void createLineWrapSupport() {\r
+ new LineWrapSupport(getTextViewer(), managedForm);\r
}\r
- \r
+\r
/**\r
* All cosmetic - non-data-related, i.e. icons, fonts, etc. -\r
* transformations take place in this method.\r
* @param transformation\r
*/\r
public void transform(String transformation) {\r
- \r
+\r
if (transformation.equals(ADD_GROUP_BASIONYM)) {\r
if (compositeType.equals(HOMOTYPIC)) {\r
setIcon(HOMOTYPIC_SYNONYM_ORIGINAL_COMBINATION_ICON);\r
} else {\r
setIcon(HETEROTYPIC_SYNONYM_ORIGINAL_COMBINATION_ICON);\r
}\r
- }\r
+ }\r
\r
if (transformation.equals(REMOVE_GROUP_BASIONYM)) {\r
if (compositeType.equals(HOMOTYPIC)) {\r
setIcon(NameComposite.ACCEPTED_ICON);\r
setFont(NameComposite.ACCEPTED_FONT);\r
setIndent(NameComposite.ACCEPTED_INDENT);\r
- \r
+\r
createAcceptedMenu();\r
- \r
+\r
compositeType = ACCEPTED;\r
}\r
- \r
- if (transformation.equals(CHANGE_TO_HOMOTYPIC_SYNONYM) \r
+\r
+ if (transformation.equals(CHANGE_TO_HOMOTYPIC_SYNONYM)\r
|| transformation.equals(CHANGE_TO_HETEROTYPIC_SYNONYM)) {\r
setDraggable(true);\r
setFont(NameComposite.SYNONYM_FONT);\r
setIndent(NameComposite.SYNONYM_INDENT);\r
- \r
+\r
createSynonymMenu();\r
}\r
- \r
+\r
if (transformation.equals(CHANGE_TO_HOMOTYPIC_SYNONYM)) {\r
if (!(getData() instanceof Synonym)) {\r
return;\r
}\r
compositeType = HETEROTYPIC;\r
}\r
- \r
+\r
if (transformation.equals(CHANGE_TO_MISAPPLIED_NAME)) {\r
\r
setDraggable(true);\r
\r
compositeType = MISAPPLIEDNAME;\r
}\r
- \r
+\r
+ setDirty(true);\r
managedForm.getForm().layout();\r
}\r
- \r
+\r
/**\r
- * Override of Composite.setData() which passes data along to NameComposite's\r
- * TextViewer where appropriate.\r
- * \r
+ * Override of Composite.setData() which passes data along to\r
+ * NameComposite's TextViewer where appropriate.\r
+ * \r
* @see org.eclipse.swt.widgets.Widget#setData(java.lang.Object)\r
- **/\r
- public void setData (Object data) {\r
+ */\r
+ public void setData(Object data) {\r
super.setData(data);\r
if (data instanceof TaxonBase) {\r
- \r
+\r
String text = CdmUtil.getDisplayName((TaxonBase) data);\r
getTextViewer().getTextWidget().setText(text);\r
- \r
+\r
if (getTextViewer() instanceof NameViewer) {\r
((NameViewer) getTextViewer()).setCursorToEOL();\r
-// if ()\r
-// boolean hasProblem = ((TaxonBase) data).getName()\r
-// ((NameViewer) getTextViewer()).setShowError(hasProblem);\r
- \r
+\r
+ if (((TaxonBase) data).getName() != null) {\r
+ boolean hasProblem = ((TaxonBase) data).getName()\r
+ .getHasProblem();\r
+ ((NameViewer) getTextViewer()).setShowError(hasProblem);\r
+ }\r
}\r
}\r
}\r
- \r
+\r
private NameViewer createNameViewer() {\r
final NameViewer nameViewer = new NameViewer(this);\r
\r
\r
Composite parent = getParent();\r
final Composite grandParent = parent.getParent();\r
- \r
- new CreateNewHeterotypicCompositeAction(text, managedForm).run();\r
+\r
+ new CreateNewHeterotypicCompositeAction(text, managedForm)\r
+ .run();\r
+\r
+ // setDirty(true);\r
}\r
\r
});\r
CdmUtil.parseFullName(nonViralName, text, null, true);\r
nameViewer.setShowError(nonViralName.getHasProblem());\r
}\r
+\r
+ setDirty(true);\r
}\r
\r
});\r
}\r
});\r
\r
-// createLineWrapSupport(nameViewer);\r
+ // createLineWrapSupport(nameViewer);\r
\r
this.textViewer = nameViewer;\r
- \r
+\r
return nameViewer;\r
}\r
- \r
+\r
/**\r
* @param nameComposite\r
*/\r
Synonym synonym = (Synonym) getData();\r
ContextMenu contextMenu = new ContextMenu(getDraggableLabel());\r
\r
-// Action misappliedNameAction = new ChangeCompositeToMisappliedNameAction(this, managedForm);\r
- Action misappliedNameAction = new MoveCompositeToMisappliedCompositeAction(this, managedForm);\r
+ Action misappliedNameAction = new MoveCompositeToMisappliedCompositeAction(\r
+ this, managedForm);\r
contextMenu.addAction(misappliedNameAction);\r
\r
- Action deleteSynonymAction = new DeleteSynonymCompositeAction(\r
- this,getTaxon());\r
+ Action deleteSynonymAction = new DeleteSynonymCompositeAction(this,\r
+ getTaxon());\r
contextMenu.addAction(deleteSynonymAction);\r
\r
contextMenu.addSeparator();\r
final Action addBasionymAction = new AddBasionymCompositeAction(this);\r
contextMenu.addAction(addBasionymAction);\r
\r
- final Action removeBasionymAction = new RemoveBasionymCompositeAction(this);\r
+ final Action removeBasionymAction = new RemoveBasionymCompositeAction(\r
+ this);\r
contextMenu.addAction(removeBasionymAction);\r
\r
addBasionymAction\r
\r
contextMenu.addSeparator();\r
\r
- Action changeToThisTaxon = new ChangeSynonymToTaxonUiAction(synonym, getTaxon());\r
+ Action changeToThisTaxon = new ChangeSynonymToTaxonUiAction(synonym,\r
+ getTaxon());\r
contextMenu.addAction(changeToThisTaxon);\r
\r
- Action changeToNewAccepted = new ChangeCompositeToNewTaxonAction(this, getTaxon());\r
+ Action changeToNewAccepted = new ChangeCompositeToNewTaxonAction(this,\r
+ getTaxon());\r
contextMenu.addAction(changeToNewAccepted);\r
}\r
\r
ContextMenu contextMenu = new ContextMenu(this.getDraggableLabel());\r
\r
// TODO Make action "Create autonym and subspecies"\r
- \r
+\r
Action changeTaxonAction = new ChangeTaxonToSynonymAction(getTaxon());\r
contextMenu.addAction(changeTaxonAction);\r
\r
this, getTaxon());\r
contextMenu.addAction(deleteMisappliedNameAction);\r
}\r
- \r
\r
/**\r
* The hierarchy of the NameComposite should always be:\r
* <p>\r
* --------> NameComposite.getData() -> Taxon or Synonym\r
* <p>\r
- * --------> NameComposite.getParent().getData() -> HomotypicalGroup or\r
- * <br>\r
- * --------> NameComposite.getParent().getData(ITaxEditorConstants.MISAPPLIED_NAME) != null \r
+ * --------> NameComposite.getParent().getData() -> HomotypicalGroup or <br>\r
+ * -------->\r
+ * NameComposite.getParent().getData(ITaxEditorConstants.MISAPPLIED_NAME) !=\r
+ * null\r
* <p>\r
* --------> NameComposite.getParent().getParent().getData() -> Taxon\r
* <p>\r
}\r
}\r
throw new IllegalArgumentException(\r
- "The parent of the NameComposite's parent does not have a Taxon in its data field as required.");\r
+ "The parent of the NameComposite's parent does not have a Taxon in its data field as required.");\r
}\r
- \r
+\r
public boolean setParent(Composite parent) {\r
+\r
if (super.setParent(parent)) {\r
- \r
+\r
// Has this been moved to the misapplied names group?\r
if (parent.getData(ITaxEditorConstants.MISAPPLIED_NAME) != null) {\r
- new ChangeCompositeToMisappliedNameAction(this, \r
- managedForm).run();\r
+ new ChangeCompositeToMisappliedNameAction(this, managedForm)\r
+ .run();\r
}\r
- \r
+\r
// Has this been moved to a HomotypicalGroup?\r
if (parent.getData() instanceof HomotypicalGroup) {\r
- new AdaptCompositeToGroupAction(this, (GroupComposite) parent).run();\r
+ new AdaptCompositeToGroupAction(this,\r
+ (EditorGroupComposite) parent).run();\r
}\r
- return true; \r
- \r
+ return true;\r
+\r
}\r
return false;\r
}\r
+\r
}
\ No newline at end of file
import org.eclipse.swt.events.FocusAdapter;\r
import org.eclipse.swt.events.FocusEvent;\r
import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.ui.IEditorSite;\r
import org.eclipse.ui.forms.IManagedForm;\r
import org.eclipse.ui.views.properties.IPropertySource;\r
\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.taxeditor.UiUtil;\r
-import eu.etaxonomy.taxeditor.actions.cdm.TaxonActionFactory;\r
import eu.etaxonomy.taxeditor.actions.ui.CreateNewHeterotypicCompositeAction;\r
import eu.etaxonomy.taxeditor.model.CdmUtil;\r
import eu.etaxonomy.taxeditor.view.NameViewer;\r
* @param data\r
* @return\r
*/\r
- public GroupComposite createGroupComposite(Composite parent, Object data) {\r
+ public EditorGroupComposite createGroupComposite(Composite parent, Object data) {\r
\r
- final GroupComposite groupComposite = new GroupComposite(parent);\r
+ final EditorGroupComposite groupComposite = new EditorGroupComposite(parent, managedForm);\r
groupComposite.setData(data);\r
\r
createBorderSupport(groupComposite);\r
\r
- GroupComposite misappliedNameGroupComposite = UiUtil\r
+ EditorGroupComposite misappliedNameGroupComposite = UiUtil\r
.getMisappliedNameGroupComposite(managedForm);\r
if (misappliedNameGroupComposite != null) {\r
groupComposite.moveAbove(misappliedNameGroupComposite);\r
\r
nameComposite.setTextViewer(createNameViewer(nameComposite, data));\r
nameComposite.setFocus();\r
-\r
- // When name composite is moved to another group composite ...\r
-// nameComposite.setParentDataAdapter(new IParentDataAdapter() {\r
-// @Override\r
-// public void adaptParentData() {\r
-// TaxonBase data = (TaxonBase) nameComposite.getData();\r
-// Object parentData = nameComposite.getParent().getData();\r
-// \r
-// // NameComposite has been moved to the misapplied names group\r
-// if (nameComposite.getParent().getData(ITaxEditorConstants.MISAPPLIED_NAME) != null) {\r
-// nameComposite.transform(NameComposite.CHANGE_TO_MISAPPLIED_NAME);\r
-// }\r
-// \r
-// // NameComposite has been moved to a new homotypical group\r
-// if (parentData instanceof HomotypicalGroup) {\r
-// new AdaptCompositeToGroupAction(nameComposite,\r
-// (GroupComposite) nameComposite.getParent(), taxon)\r
-// .run();\r
-// }\r
-// }\r
-// });\r
\r
if (selectionProvider != null) {\r
nameComposite.setSelectionWrapper(new ISelectionWrapper() {\r
* @param data\r
* @return\r
*/\r
- public NameComposite createMisappliedNameComposite(GroupComposite parent,\r
+ public NameComposite createMisappliedNameComposite(EditorGroupComposite parent,\r
TaxonBase data) {\r
NameComposite nameComposite = new NameComposite(parent, managedForm);\r
nameComposite.setData(data);\r