package ar.com.easytech.fwk.sec.view;

import net.databinder.valid.hib.ValidDataForm;

import org.apache.wicket.authorization.strategies.role.Roles;
import org.apache.wicket.authorization.strategies.role.annotations.AuthorizeInstantiation;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.PropertyModel;

import ar.com.easytech.consAdmin.view.Home;
import ar.com.easytech.fwk.sec.model.SecUsers;
import ar.com.easytech.fwk.util.model.mvDropDownChoice;

@AuthorizeInstantiation(Roles.USER)
public class updateUserProfile extends Panel{

	private static final long serialVersionUID = 2834437668800017171L;
	EditForm form;
	
	public updateUserProfile(String id) {
		super(id);
		
	}
	
	@Override
	protected void onModelChanged() {
		form.modelChanged();
	}
	
	public updateUserProfile(String id, String userId) {
		super(id);
		final Integer userIdInt = Integer.parseInt(userId);
		add(form = new EditForm("userProfileForm", Long.parseLong(userId.trim())));
		
	}
	
	protected class EditForm extends ValidDataForm {
		@SuppressWarnings({ "serial", "unchecked" })
		public EditForm(String id, Long userId) {
			super(id, SecUsers.class,userId);
			add(new TextField("userName").setRequired(true));
			//add(new PasswordTextField("password"));
			/* Password fields...
			FormComponent password = new PasswordTextField("userPassword").setRequired(true);
	        FormComponent verify = new PasswordTextField("verifyPassword").setRequired(true);
	        verify.setModel(password.getModel());
	        
	         add(password);
	         add(verify);
	         add(new EqualPasswordInputValidator(password, verify));
	         */
			add(new TextField("description"));
			add(new TextField("status"));
			add(new TextField("endDateActive"));
			// Datos del perfil..
			add(new TextField("userProfile.firstName"));
			add(new TextField("userProfile.lastName").setRequired(true));
			add(new TextField("userProfile.emailAddress").setRequired(true));
			add(new TextField("userProfile.mobilePhone"));
			add(new TextField("userProfile.workPhone"));
			// Datos del domicilio
			add(new TextField("userProfile.address1"));
			add(new TextField("userProfile.address2"));
			
			add(new mvDropDownChoice("userProfile.city","CITY"));
			
			add(new TextField("userProfile.postalCode"));
			
			//add(new TextField("userProfile.country"));
			
			add(new mvDropDownChoice("userProfile.country","COUNTRY", this.getModel()));
			Button cancel = new Button("cancelButton"){
	            public void onSubmit() {
	            	getHibernateSession().getTransaction().rollback();
	    			setResponsePage(Home.class);
	            }
	        };
	        cancel.setDefaultFormProcessing(false);
	        add(cancel);
	        add(new Button("submit"));
		}
		
		public void onSubmit() {
			getHibernateSession().getTransaction().commit();
			setResponsePage(Home.class);
		}
	}

}
