/**
   * Implementation of AbstractController.handleRequestInternal
   *
   * @param HttpServletRequest request
   * @param HttpServletResponse response
   * @return ModelAndView
   * @throws Exception
   */
  @Override
  protected ModelAndView handleRequestInternal(
      HttpServletRequest request, HttpServletResponse response) throws Exception {

    readRequest(request);

    Owner owner = myshowcaseService.getOwnerById(new Long(ownerId));

    Showcase showcase = myshowcaseService.obtainCurrentShowcase(owner);

    List<String> messages = new ArrayList<String>();

    String showcaseArtefactCount = "" + showcase.getArtefacts().size();

    messages.add(showcaseArtefactCount);

    response.setContentType("application/json");

    response.setCharacterEncoding("UTF-8");

    PrintWriter out = response.getWriter();

    out.write(new Gson().toJson(messages));

    out.flush();

    out.close();

    return null;
  }
  public Widget getWidget() {
    VerticalPanel result = new VerticalPanel();

    /* create a datatable */
    DataTable data = Showcase.getDailyActivities();

    /* create pie chart */
    PieChart.PieOptions options = PieChart.createPieOptions();
    options.setWidth(400);
    options.setHeight(240);
    options.set3D(true);
    options.setTitle("My Daily Activities");
    options.setLegend(LegendPosition.LEFT);

    PieChart viz = new PieChart(data, options);
    Label status = new Label();
    Label onMouseOverAndOutStatus = new Label();
    viz.addSelectHandler(new SelectionDemo(viz, status));
    viz.addReadyHandler(new ReadyDemo(status));
    viz.addOnMouseOverHandler(new OnMouseOverDemo(onMouseOverAndOutStatus));
    viz.addOnMouseOutHandler(new OnMouseOutDemo(onMouseOverAndOutStatus));
    result.add(status);
    result.add(viz);
    result.add(onMouseOverAndOutStatus);
    return result;
  }
 public static String getShowcaseTitle(Class<?> activityClass) {
   return Showcase.getTitle(activityClass, mShowcases);
 }