private void addDetailFields()

in src/main/java/org/apache/directory/fortress/web/panel/UserDetailPanel.java [192:324]


        private void addDetailFields( final IModel<User> model )
        {
            // Add the User page required attributes:
            userIdTF = new TextField( GlobalIds.USER_ID );
            add( userIdTF );
            PasswordTextField pw = new PasswordTextField( GlobalIds.PASSWORD );
            pw.setRequired( false );
            add( pw );
            TextField descriptionTF = new TextField( GlobalIds.DESCRIPTION );
            descriptionTF.setRequired( false );
            add( descriptionTF );
            ouTF = new TextField( OU );
            // making this required prevents the modals from opening:
            //ouTF.setRequired( true );
            ouTF.setOutputMarkupId( true );
            add( ouTF );
            CheckBox resetCB = new CheckBox( "reset" );
            resetCB.setEnabled( false );
            add( resetCB );
            CheckBox lockedCB = new CheckBox( "locked" );
            lockedCB.setEnabled( false );
            add( lockedCB );
            pwPolicyTF = new TextField( "pwPolicy" );
            pwPolicyTF.setRequired( false );
            pwPolicyTF.setOutputMarkupId( true );
            add( pwPolicyTF );

            // Add the role assignment values & temporal constraint panel:
            newUserRoleTF = new TextField( GlobalIds.NEW_USER_ROLE_FIELD, new PropertyModel<String>( this,
                GlobalIds.NEW_USER_ROLE_FIELD ) );
            newUserRoleTF.setRequired( false );
            newUserRoleTF.setOutputMarkupId( true );
            add( newUserRoleTF );

            rolesDD = new AjaxDropDownList<>(ROLES, new CompoundPropertyModel<>( new UserRole() ), Model.ofList(new ArrayList<UserRole>()));
            add( rolesDD );

            roleConstraintPanel = new ConstraintRolePanel( ROLECONSTRAINTPANEL, new PropertyModel<UserRole>( this,
                ROLE_CONSTRAINT ) );
            roleConstraintPanel.setOutputMarkupId( true );
            add( roleConstraintPanel );

            // Add the adminRole assignment values & temporal constraint panel:
            newUserAdminRoleTF = new TextField( GlobalIds.NEW_USER_ADMIN_ROLE_FIELD, new PropertyModel<String>( this,
                GlobalIds.NEW_USER_ADMIN_ROLE_FIELD ) );
            newUserAdminRoleTF.setRequired( false );
            newUserAdminRoleTF.setOutputMarkupId( true );
            add( newUserAdminRoleTF );

            adminRolesDD = new AjaxDropDownList<>(ADMIN_ROLES, new CompoundPropertyModel<>( new UserAdminRole() ), Model.ofList(new ArrayList<UserAdminRole>()));
            add( adminRolesDD );

            adminRoleConstraintPanel = new ConstraintAdminRolePanel( ADMINROLECONSTRAINTPANEL,
                new PropertyModel<UserAdminRole>( this, ADMIN_ROLE_CONSTRAINT ) );
            adminRoleConstraintPanel.setOutputMarkupId( true );
            add( adminRoleConstraintPanel );

            // Contact ComboBoxes and edit fields
            TextField employeeType = new TextField( GlobalIds.EMPLOYEE_TYPE );
            employeeType.setRequired( false );
            add( employeeType );
            TextField title = new TextField( GlobalIds.TITLE );
            title.setRequired( false );
            add( title );

            // TODO: add email validator:
            //add(new TextField("email").add( EmailAddressValidator.getInstance()));

            emailsCB = new ComboBox<>( GlobalIds.EMAILS, new PropertyModel<String>( this, EMAILS_SELECTION ),
                model.getObject().getEmails() );
            add( emailsCB );
            phonesCB = new ComboBox<>( GlobalIds.PHONES, new PropertyModel<String>( this, PHONES_SELECTION ),
                model.getObject().getPhones() );
            add( phonesCB );
            mobilesCB = new ComboBox<>( GlobalIds.MOBILES, new PropertyModel<String>( this, MOBILES_SELECTION ),
                model.getObject().getMobiles() );
            add( mobilesCB );

            // TODO: name not mapped correctly in fortress so can't be used here:
            TextField name = new TextField( "displayName" );
            name.setRequired( false );
            add( name );

            // Address ComboBoxes and edit fields
            addressCB = new ComboBox<>( GlobalIds.ADDRESSES,
                new PropertyModel<String>( this, ADDRESS_SELECTION ),
                model.getObject().getAddress().getAddresses() );
            add( addressCB );
            TextField city = new TextField( GlobalIds.ADDRESS_CITY );
            city.setRequired( false );
            add( city );
            TextField state = new TextField( GlobalIds.ADDRESS_STATE );
            state.setRequired( false );
            add( state );
            TextField country = new TextField( GlobalIds.ADDRESS_COUNTRY );
            country.setRequired( false );
            add( country );
            TextField postalCode = new TextField( GlobalIds.ADDRESS_POSTAL_CODE );
            postalCode.setRequired( false );
            add( postalCode );
            TextField postOfficeBox = new TextField( GlobalIds.ADDRESS_POST_OFFICE_BOX );
            postOfficeBox.setRequired( false );
            add( postOfficeBox );
            TextField building = new TextField( GlobalIds.ADDRESS_BUILDING );
            building.setRequired( false );
            add( building );
            TextField departmentNumber = new TextField( GlobalIds.ADDRESS_DEPARTMENT_NUMBER );
            departmentNumber.setRequired( false );
            add( departmentNumber );
            TextField roomNumber = new TextField( GlobalIds.ADDRESS_ROOM_NUMBER );
            roomNumber.setRequired( false );
            add( roomNumber );

            // Add System fields:
            CheckBox system = new CheckBox( "system" );
            system.setRequired( false );
            add( system );
            Label internalid = new Label( "internalId" );
            add( internalid );
            TextField cn = new TextField( "cn" );
            cn.setRequired( false );
            add( cn );
            Label dn = new Label( "dn" );
            add( dn );
            TextField sn = new TextField( "sn" );
            sn.setRequired( false );
            add( sn );

            // Add the temporal constraint panel:
            constraintPanel = new ConstraintPanel( "constraintpanel", model );
            add( constraintPanel );

        }