@Override
  protected Widget createGalleryContentWidget(final HttpServletRequest request)
      throws IOException, PermissionDeniedException, RedirectException, LoginRequiredException {
    try {
      final ListWidget widgets = new ListWidget();
      widgets.add(new H1Widget(getTitle()));
      final String id = request.getParameter(GalleryGuiConstants.PARAMETER_COLLECTION_ID);
      final String name = request.getParameter(GalleryGuiConstants.PARAMETER_COLLECTION_NAME);
      final String referer = request.getParameter(GalleryGuiConstants.PARAMETER_REFERER);
      final String prio = request.getParameter(GalleryGuiConstants.PARAMETER_COLLECTION_PRIO);
      final String shared = request.getParameter(GalleryGuiConstants.PARAMETER_COLLECTION_SHARED);
      final String groupId = request.getParameter(GalleryGuiConstants.PARAMETER_GROUP_ID);

      final SessionIdentifier sessionIdentifier =
          authenticationService.createSessionIdentifier(request);
      final GalleryCollectionIdentifier galleryCollectionIdentifier =
          galleryService.createCollectionIdentifier(id);
      final GalleryCollection galleryCollection =
          galleryService.getCollection(sessionIdentifier, galleryCollectionIdentifier);

      if (name != null && prio != null && groupId != null && shared != null) {
        try {

          final GalleryGroupIdentifier galleryGroupIdentifier =
              galleryService.createGroupIdentifier(groupId);
          updateCollection(
              sessionIdentifier,
              galleryCollectionIdentifier,
              galleryGroupIdentifier,
              name,
              prio,
              shared);

          if (referer != null && referer.length() > 0) {
            throw new RedirectException(referer);
          } else {
            throw new RedirectException(
                galleryGuiLinkFactory.entryListUrl(request, galleryCollectionIdentifier));
          }
        } catch (final ValidationException e) {
          widgets.add("create collection => failed");
          widgets.add(new ValidationExceptionWidget(e));
        }
      }
      final FormWidget formWidget = new FormWidget();
      formWidget.addFormInputWidget(
          new FormInputHiddenWidget(GalleryGuiConstants.PARAMETER_REFERER)
              .addDefaultValue(buildRefererUrl(request)));
      formWidget.addFormInputWidget(
          new FormInputHiddenWidget(GalleryGuiConstants.PARAMETER_COLLECTION_ID)
              .addValue(galleryCollection.getId()));
      formWidget.addFormInputWidget(
          new FormInputHiddenWidget(GalleryGuiConstants.PARAMETER_GROUP_ID)
              .addValue(galleryCollection.getGroupId()));
      formWidget.addFormInputWidget(
          new FormInputTextWidget(GalleryGuiConstants.PARAMETER_COLLECTION_NAME)
              .addLabel("Name...")
              .addDefaultValue(galleryCollection.getName()));
      formWidget.addFormInputWidget(
          new FormInputTextWidget(GalleryGuiConstants.PARAMETER_COLLECTION_PRIO)
              .addLabel("Prio...")
              .addDefaultValue(galleryCollection.getPriority()));
      formWidget.addFormInputWidget(
          new FormInputTextWidget(GalleryGuiConstants.PARAMETER_COLLECTION_SHARED)
              .addLabel("Shared")
              .addPlaceholder("shared...")
              .addDefaultValue(galleryCollection.getShared()));
      formWidget.addFormInputWidget(new FormInputSubmitWidget("update"));
      widgets.add(formWidget);
      return widgets;
    } catch (final GalleryServiceException e) {
      logger.debug(e.getClass().getName(), e);
      return new ExceptionWidget(e);
    } catch (final AuthenticationServiceException e) {
      logger.debug(e.getClass().getName(), e);
      return new ExceptionWidget(e);
    }
  }