@Override
  public Layout getLayout() {
    if (userAvatarIcon == null) {
      userAvatarIcon = MyCollabResource.newResource("icons/22/user/user.png");
    }
    final ReadViewLayout userAddLayout = new ReadViewLayout(this.title, userAvatarIcon);

    final Layout topPanel = this.createTopPanel();
    if (topPanel != null) {
      userAddLayout.addTopControls(topPanel);
    }

    this.userInformationLayout = new UserInformationLayout();
    this.userInformationLayout.getLayout().setWidth("100%");
    userAddLayout.addBody(this.userInformationLayout.getLayout());

    final Layout bottomPanel = this.createBottomPanel();
    if (bottomPanel != null) {
      userAddLayout.addBottomControls(bottomPanel);
    }

    return userAddLayout;
  }
      @Override
      public Layout getLayout() {
        final ReadViewLayout accountAddLayout =
            new ReadViewLayout(
                "User Information", MyCollabResource.newResource("icons/22/user/menu_profile.png"));
        accountAddLayout.setWidth("100%");
        final VerticalLayout layout = new VerticalLayout();

        layout.addComponent(userAvatar);

        final CssLayout basicInformationHeader = new CssLayout();
        basicInformationHeader.setWidth("100%");
        basicInformationHeader.addStyleName("info-block-header");
        final Label basicInformationHeaderLbl = new Label("Basic Information");
        basicInformationHeaderLbl.setStyleName("h2");
        basicInformationHeaderLbl.setWidth(Sizeable.SIZE_UNDEFINED, Sizeable.Unit.PIXELS);
        basicInformationHeader.addComponent(basicInformationHeaderLbl);

        final CssLayout contactInformationHeader = new CssLayout();
        contactInformationHeader.setWidth("100%");
        contactInformationHeader.addStyleName("info-block-header");
        final Label contactInformationHeaderLbl = new Label("Contact Information");
        contactInformationHeaderLbl.setStyleName("h2");
        contactInformationHeaderLbl.setWidth(Sizeable.SIZE_UNDEFINED, Sizeable.Unit.PIXELS);
        contactInformationHeader.addComponent(contactInformationHeaderLbl);

        final CssLayout advanceInfoHeader = new CssLayout();
        advanceInfoHeader.setWidth("100%");
        advanceInfoHeader.addStyleName("info-block-header");
        final Label advanceInfoHeaderLbl = new Label("Advanced Information");
        advanceInfoHeaderLbl.setStyleName("h2");
        advanceInfoHeaderLbl.setWidth(Sizeable.SIZE_UNDEFINED, Sizeable.Unit.PIXELS);
        advanceInfoHeader.addComponent(advanceInfoHeaderLbl);

        this.basicInformation =
            new GridFormLayoutHelper(1, 6, "100%", "167px", Alignment.MIDDLE_LEFT);
        this.basicInformation.getLayout().setMargin(false);
        this.basicInformation.getLayout().setWidth("100%");
        this.basicInformation.getLayout().addStyleName("colored-gridlayout");

        this.contactInformation =
            new GridFormLayoutHelper(1, 5, "100%", "167px", Alignment.MIDDLE_LEFT);
        this.contactInformation.getLayout().setMargin(false);
        this.contactInformation.getLayout().setWidth("100%");
        this.contactInformation.getLayout().addStyleName("colored-gridlayout");

        this.advanceInformation =
            new GridFormLayoutHelper(1, 3, "100%", "167px", Alignment.MIDDLE_LEFT);
        this.advanceInformation.getLayout().setMargin(false);
        this.advanceInformation.getLayout().setWidth("100%");
        this.advanceInformation.getLayout().addStyleName("colored-gridlayout");

        layout.addComponent(basicInformationHeader);
        layout.addComponent(this.basicInformation.getLayout());
        final Button btnChangeBasicInfo =
            new Button(
                LocalizationHelper.getMessage(GenericI18Enum.BUTTON_EDIT_LABEL),
                new Button.ClickListener() {
                  private static final long serialVersionUID = 1L;

                  @Override
                  public void buttonClick(final ClickEvent event) {
                    UI.getCurrent().addWindow(new BasicInfoChangeWindow(PreviewForm.this.user));
                  }
                });
        btnChangeBasicInfo.addStyleName("link");
        basicInformationHeader.addComponent(btnChangeBasicInfo);

        layout.addComponent(contactInformationHeader);
        layout.addComponent(this.contactInformation.getLayout());
        final Button btnChangeContactInfo =
            new Button(
                LocalizationHelper.getMessage(GenericI18Enum.BUTTON_EDIT_LABEL),
                new Button.ClickListener() {
                  private static final long serialVersionUID = 1L;

                  @Override
                  public void buttonClick(final ClickEvent event) {
                    UI.getCurrent().addWindow(new ContactInfoChangeWindow(PreviewForm.this.user));
                  }
                });
        btnChangeContactInfo.addStyleName("link");
        contactInformationHeader.addComponent(btnChangeContactInfo);

        layout.addComponent(advanceInfoHeader);
        layout.addComponent(this.advanceInformation.getLayout());
        final Button btnChangeAdvanceInfo =
            new Button(
                LocalizationHelper.getMessage(GenericI18Enum.BUTTON_EDIT_LABEL),
                new Button.ClickListener() {
                  private static final long serialVersionUID = 1L;

                  @Override
                  public void buttonClick(final ClickEvent event) {
                    UI.getCurrent().addWindow(new AdvancedInfoChangeWindow(PreviewForm.this.user));
                  }
                });
        btnChangeAdvanceInfo.addStyleName("link");
        advanceInfoHeader.addComponent(btnChangeAdvanceInfo);

        accountAddLayout.addBody(layout);
        return accountAddLayout;
      }