add nomenclatural author search for team members
authorKatja Luther <k.luther@bgbm.org>
Tue, 21 Jun 2016 11:00:04 +0000 (13:00 +0200)
committerKatja Luther <k.luther@bgbm.org>
Tue, 21 Jun 2016 11:00:48 +0000 (13:00 +0200)
13 files changed:
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTeamWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AgentSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CdmFilteredItemsSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorTeamSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EditFromSelectionWizard.java

index 5411fd268c714c63dde5af79e7d72d51cc68b63d..1d6e0ae74caef1110bd1c98da2027252b84ba0d1 100644 (file)
@@ -24,17 +24,18 @@ import eu.etaxonomy.taxeditor.ui.section.agent.TeamWizardPage;
  */
 public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
 
-       
+    private boolean isNomenclaturalTeam = false;
+
        public NewTeamWizard() {}
-               
+
        public NewTeamWizard(boolean b) {
-               //FIXME somethings needs to be done here
+               setNomenclaturalTeam(b);
        }
 
        /** {@inheritDoc} */
        @Override
        public void addPages() {
-               addPage(new TeamWizardPage(formFactory, getConversationHolder(), getEntity()));
+               addPage(new TeamWizardPage(formFactory, getConversationHolder(), getEntity(), isNomenclaturalTeam));
        }
 
        /* (non-Javadoc)
@@ -60,4 +61,18 @@ public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
        protected String getEntityName() {
                return "Team";
        }
+
+    /**
+     * @return the isNomenclaturalTeam
+     */
+    public boolean isNomenclaturalTeam() {
+        return isNomenclaturalTeam;
+    }
+
+    /**
+     * @param isNomenclaturalTeam the isNomenclaturalTeam to set
+     */
+    public void setNomenclaturalTeam(boolean isNomenclaturalTeam) {
+        this.isNomenclaturalTeam = isNomenclaturalTeam;
+    }
 }
index 5dd48275d61190d3399fa80d50df201d7cb70de8..748929b4d7cdbbd5ae18c128c2061fa8b07fef44 100644 (file)
@@ -41,11 +41,11 @@ public class AgentSelectionDialog extends
        /**
         *
         */
-       private static final String PERSON = "Person";
+       protected static final String PERSON = "Person";
        /**
         *
         */
-       private static final String TEAM = "Team";
+       protected static final String TEAM = "Team";
 
        /**
         * <p>select</p>
@@ -109,7 +109,7 @@ public class AgentSelectionDialog extends
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                if(TEAM.equals(parameter)){
-                       return new NewTeamWizard(false);
+                       return new NewTeamWizard();
                }
                else if(PERSON.equals(parameter)){
                        return new NewPersonWizard();
index da23062ff27ceb618ab739c263eb278e24c21cde..1180e7ce0179c8d90f97e3bdbbc30dd04529d19f 100644 (file)
@@ -131,6 +131,7 @@ import org.eclipse.ui.statushandlers.StatusManager;
  * dialog gets all items when opening the dialog and then apply the filter on all items.
  * In our case we need a possibility to filter the items already when getting them from the DB, so we adapt the
  * original class
+ * the abstract method initMOdel was added and the method applyFilter was modified
  * original description:
  * Shows a list of items to the user with a text entry field for a string
  * pattern used to filter the list of items.
@@ -3416,6 +3417,7 @@ public abstract class CdmFilteredItemsSelectionDialog extends SelectionStatusDia
         }
 
         /**
+         * CDM IMPLEMENTATION
          * we have to call the initModel() method in the applyFilter method, so we had to add this abstract method (moved from AbstractFilteredCdmResourceSelectionDialog)
          * <p>initModel</p>
          */
index 5a9e10a1d50d20b02f0074ec594df69286d508e4..255f8022724734be2741a2e058926a8fda703cfe 100644 (file)
@@ -9,12 +9,19 @@
 */
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
+
+
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+import eu.etaxonomy.taxeditor.newWizard.NewPersonWizard;
+import eu.etaxonomy.taxeditor.newWizard.NewTeamWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -41,9 +48,30 @@ public class NomenclaturalAuthorSelectionDialog extends AgentSelectionDialog {
 
     @Override
     protected void initModel() {
-        model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(null, null, null);
+        Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
+        model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(limitOfInitialElements, pattern, null);
     }
 
+    /** {@inheritDoc} */
+    @Override
+    protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
+        if(TEAM.equals(parameter)){
+            return new NewTeamWizard(true);
+        }
+        else if(PERSON.equals(parameter)){
+            return new NewPersonWizard();
+        }
+        else{
+            throw new IllegalArgumentException("Could not determine the desired wizard.");
+        }
+    }
+
+
     /**
      * <p>select</p>
      *
index ee313e85806b57bd7d272a944c525a8599dc89c3..caa1e4cc6ff2f282e7722d7ca390d1f8d1135810 100644 (file)
@@ -12,10 +12,13 @@ package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
 import java.util.UUID;
 
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
@@ -30,7 +33,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class NomenclaturalAuthorTeamSelectionDialog extends
-       AbstractFilteredCdmResourceSelectionDialog<Team> {
+       AbstractFilteredCdmResourceSelectionDialog<AgentBase> {
 
        /**
         * <p>select</p>
@@ -43,7 +46,7 @@ public class NomenclaturalAuthorTeamSelectionDialog extends
        public static Team select(Shell shell, ConversationHolder conversation, Team team){
                NomenclaturalAuthorTeamSelectionDialog dialog = new NomenclaturalAuthorTeamSelectionDialog(shell, conversation,
                                "Choose Author Team", false, NomenclaturalAuthorTeamSelectionDialog.class.getCanonicalName(), team);
-               return getSelectionFromDialog(dialog);
+               return (Team)getSelectionFromDialog(dialog);
        }
 
        /**
@@ -76,7 +79,13 @@ public class NomenclaturalAuthorTeamSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getService(IAgentService.class).getTeamUuidAndNomenclaturalTitle();
+           Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
+               model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(limitOfInitialElements, pattern, Team.class);
        }
 
        /** {@inheritDoc} */
index 7f38851d4e78383ef4898fe6f0058fade0cc3300..36792fe6357799c1dc67b2036b520bf20181e039 100644 (file)
@@ -21,7 +21,6 @@ import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
@@ -43,7 +42,6 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
 import eu.etaxonomy.taxeditor.ui.section.agent.TeamMemberElement;
@@ -94,7 +92,7 @@ public class SelectionDialogFactory {
                    return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
                }
                if(clazz.equals(Person.class) && parentElement instanceof TeamMemberElement){
-                   return (T) NomenclaturalAuthorSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
+                   return (T) NomenclaturalPersonAuthorSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
         }
                if(clazz.equals(AgentBase.class)){
                        return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
index 205eca3f20bbac4745277b761b059bd9b04526ed..57b6b6214976376bd5e25e51ba15fbd408ef66e3 100644 (file)
@@ -1967,8 +1967,8 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public TeamDetailElement createTeamDetailElement(ICdmFormElement parentElement, int style){
-        TeamDetailElement element = new TeamDetailElement(this, parentElement, style);
+    public TeamDetailElement createTeamDetailElement(ICdmFormElement parentElement, int style, boolean isNomenclatural){
+        TeamDetailElement element = new TeamDetailElement(this, parentElement, style, isNomenclatural);
         addAndAdaptElement(parentElement, element);
         return element;
     }
@@ -2164,8 +2164,8 @@ public class CdmFormFactory extends FormToolkit {
     }
 
     //--------EntityCollectionSection----------
-    public TeamMemberSection createTeamMemberSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        TeamMemberSection section = new TeamMemberSection(this, conversation, parentElement, style);
+    public TeamMemberSection createTeamMemberSection(ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural){
+        TeamMemberSection section = new TeamMemberSection(this, conversation, parentElement, style, isNomenclatural);
         addAndAdaptSection(parentElement, section);
         return section;
     }
@@ -2443,8 +2443,12 @@ public class CdmFormFactory extends FormToolkit {
 
         if (entity instanceof Annotation) {
             element = new AnnotationElement(this, parentElement, (Annotation) entity, removeListener, style);
-        }else if (entity instanceof Person) {
-            element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style);
+        }else if (entity instanceof Person ) {
+            boolean isNomenclatural = false;
+            if (parentElement instanceof TeamMemberSection){
+                isNomenclatural = ((TeamMemberSection) parentElement).isNomenclaturalTeam();
+            }
+            element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style, isNomenclatural);
         } else if (entity instanceof Credit) {
             element = new CreditElement(this, parentElement, (Credit) entity, removeListener, style);
         } else if (entity instanceof Extension) {
@@ -2703,15 +2707,15 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public NomenclaturalAuthorTeamSelectionElement createNomenclaturalAuthorTeamSelectionElement(
-            ConversationHolder conversation, ICdmFormElement parentElement, String labelString, Team selection,
-            int mode, int style) {
-        NomenclaturalAuthorTeamSelectionElement element = new NomenclaturalAuthorTeamSelectionElement(this,
-                conversation, parentElement, labelString, selection, mode, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
+//    public NomenclaturalAuthorTeamSelectionElement createNomenclaturalAuthorTeamSelectionElement(
+//            ConversationHolder conversation, ICdmFormElement parentElement, String labelString, Team selection,
+//            int mode, int style) {
+//        NomenclaturalAuthorTeamSelectionElement element = new NomenclaturalAuthorTeamSelectionElement(this,
+//                conversation, parentElement, labelString, selection, mode, style);
+//        adapt(element);
+//        parentElement.addElement(element);
+//        return element;
+//    }
 
     /** {@inheritDoc} */
     public LabelElement createLabel(ICdmFormElement parentElement, String text) {
index 84222634f1d281aa083e249ca9fe300782a64836..a8252731aba45854850a33789eba4c4a513e6dc7 100644 (file)
@@ -38,6 +38,7 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
        private CheckboxElement hasAdditionalMembers;
 
        private TeamMemberSection section_teamMembers;
+       private final boolean isNomenclaturalTeam;
 
        /**
         * <p>
@@ -54,8 +55,9 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
         *            a int.
         */
        public TeamDetailElement(CdmFormFactory cdmFormFactory,
-                       ICdmFormElement formElement, int style) {
+                       ICdmFormElement formElement, int style, boolean isNomenclatural) {
                super(cdmFormFactory, formElement);
+               this.isNomenclaturalTeam = isNomenclatural;
        }
 
        /** {@inheritDoc} */
@@ -65,7 +67,7 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
         toggleable_cache = formFactory.createToggleableTextField(formElement, "Title Cache", entity.getTitleCache(), entity.isProtectedTitleCache(), style);
         toggleable_nomenclaturalTitleCache = formFactory.createToggleableTextField(formElement, "Abbrev. Title", entity.getNomenclaturalTitle(), entity.isProtectedNomenclaturalTitleCache(), style);
         hasAdditionalMembers = formFactory.createCheckbox(formElement, "Additional Members", entity.isHasMoreMembers(), style);
-        section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED);
+        section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED, isNomenclaturalTeam);
         section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
     }
 
@@ -116,7 +118,7 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
 
                getEntity().setNomenclaturalTitle(toggleable_nomenclaturalTitleCache.getText(), pushedState);
                setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
-               
+
         if (!getEntity().isProtectedNomenclaturalTitleCache()) {
             toggleable_nomenclaturalTitleCache.setText(getEntity().getNomenclaturalTitle());
         }
index bacd6b548cd6c0302b89f23d542d7cb7710aab4b..47db225a5212ff623c52d44ab72330a9cfa0d6f4 100644 (file)
@@ -28,6 +28,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  */
 public class TeamDetailSection extends AbstractCdmDetailSection<Team>{
 
+    private boolean isNomenclaturalTeam;
+
        /**
         * <p>Constructor for TeamDetailSection.</p>
         *
@@ -53,6 +55,14 @@ public class TeamDetailSection extends AbstractCdmDetailSection<Team>{
         */
        @Override
        protected AbstractCdmDetailElement<Team> createCdmDetailElement(AbstractCdmDetailSection<Team> parentElement, int style) {
-           return formFactory.createTeamDetailElement(parentElement, style);
+           return formFactory.createTeamDetailElement(parentElement, style, isNomenclaturalTeam);
+       }
+
+       public boolean isNomenclaturalTeam(){
+           return isNomenclaturalTeam;
+       }
+
+       public void setIsNomenclaturalTeam(boolean isNomenclaturalTeam){
+           this.isNomenclaturalTeam = isNomenclaturalTeam;
        }
 }
index 8e8e1e64489eff3f9b82ab21e0e48c068161b667..1d504a70857ac846483d8d3e9bc9a852d16a2c8c 100644 (file)
@@ -29,11 +29,14 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 public class TeamMemberElement extends AbstractEntityCollectionElement<Person> {
 
        private EntitySelectionElement<Person> selection_person;
+       private final boolean isNomenclatural;
 
        public TeamMemberElement(CdmFormFactory cdmFormFactory,
                        AbstractFormSection section, Person entity,
-                       SelectionListener removeListener, int style) {
+                       SelectionListener removeListener, int style, boolean isNomenclatural) {
                super(cdmFormFactory, section, entity, removeListener, null, style);
+               this.isNomenclatural =isNomenclatural;
+
        }
 
        /** {@inheritDoc} */
index b1acd195bbbc6bede58d77e4912b557a624491e3..014baf862e4bd3cf26d308ef700b5a87bba3ca4c 100644 (file)
@@ -28,6 +28,8 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCol
  */
 public class TeamMemberSection extends AbstractUnboundEntityCollectionSection<Team, Person> {
 
+    private boolean isNomenclaturalTeam = false;
+
        /**
         * <p>Constructor for TeamMemberSection.</p>
         *
@@ -36,8 +38,9 @@ public class TeamMemberSection extends AbstractUnboundEntityCollectionSection<Te
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param style a int.
         */
-       public TeamMemberSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
+       public TeamMemberSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural) {
                super(cdmFormFactory, conversation, parentElement, null, style);
+               isNomenclaturalTeam = isNomenclatural;
        }
 
        /** {@inheritDoc} */
@@ -81,5 +84,12 @@ public class TeamMemberSection extends AbstractUnboundEntityCollectionSection<Te
         return getEntity().getTeamMembers();
     }
 
+    /**
+     * @return
+     */
+    public boolean isNomenclaturalTeam() {
+       return isNomenclaturalTeam;
+    }
+
 
 }
index 9016f92c6e2a4a41dba32c84e313d2fd2e35ac00..047c58af3e2b05bf31d486f1319e5f5e96d8c76a 100644 (file)
@@ -30,6 +30,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  */
 public class TeamWizardPage extends AbstractCdmEntityWizardPage<Team> {
 
+    private boolean isNomenclaturalTeam = false;
+
        /**
         * <p>
         * Constructor for TeamWizardPage.
@@ -45,17 +47,29 @@ public class TeamWizardPage extends AbstractCdmEntityWizardPage<Team> {
         *            a {@link eu.etaxonomy.cdm.model.agent.Team} object.
         */
        public TeamWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, Team entity) {
+                       ConversationHolder conversation, Team entity, boolean isNomenclaturalTeam) {
                super(formFactory, conversation, entity);
                setTitle("Team");
+               setIsNomenclaturalTeam(isNomenclaturalTeam);
        }
 
        /** {@inheritDoc} */
        @Override
        public AbstractCdmDetailElement<Team> createElement(
                        ICdmFormElement rootElement) {
-               TeamDetailElement teamElement = formFactory.createTeamDetailElement(rootElement, SWT.NULL);
+               TeamDetailElement teamElement = formFactory.createTeamDetailElement(rootElement, SWT.NULL, isNomenclaturalTeam);
                teamElement.setEntity(entity);
                return teamElement;
        }
+
+    /**
+     * @return the isNomenclaturalTeam
+     */
+    public boolean isNomenclaturalTeam() {
+        return isNomenclaturalTeam;
+    }
+
+    public void setIsNomenclaturalTeam(boolean isNomenclaturalTeam){
+        this.isNomenclaturalTeam = isNomenclaturalTeam;
+    }
 }
index 5e76e56c6c80f7441b4e98e71e1a5341a838ebfd..5e10262a70108e5e0b32c39543347cab6096b242 100644 (file)
@@ -103,10 +103,13 @@ public class EditFromSelectionWizard extends Wizard implements
                        addPage(new ReferenceWizardPage(formFactory,
                                        selectionElement.getConversationHolder(),
                                        (HibernateProxyHelper.deproxy(rootElement, Reference.class))));
-               } else if (rootElement.isInstanceOf(Team.class)) {
+               } else if (rootElement.isInstanceOf(Team.class) && selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?>) {
                        addPage(new TeamWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class)));
-               } else if (rootElement.isInstanceOf(Person.class)) {
+                                       selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), true));
+               } else if (rootElement.isInstanceOf(Team.class) && !(selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?>)) {
+            addPage(new TeamWizardPage(formFactory,
+                    selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), false));
+        } else if (rootElement.isInstanceOf(Person.class)) {
                        addPage(new PersonWizardPage(formFactory,
                                        selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Person.class)));
                } else if (rootElement.isInstanceOf(NonViralName.class)) {