AdminLanguagePageModContentFactoryImpl.java

  1. /*
  2.  * Copyright 2014 James Pether Sörling
  3.  *
  4.  * Licensed under the Apache License, Version 2.0 (the "License");
  5.  * you may not use this file except in compliance with the License.
  6.  * You may obtain a copy of the License at
  7.  *
  8.  *   http://www.apache.org/licenses/LICENSE-2.0
  9.  *
  10.  * Unless required by applicable law or agreed to in writing, software
  11.  * distributed under the License is distributed on an "AS IS" BASIS,
  12.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13.  * See the License for the specific language governing permissions and
  14.  * limitations under the License.
  15.  *
  16.  *  $Id$
  17.  *  $HeadURL$
  18. */
  19. package com.hack23.cia.web.impl.ui.application.views.admin.system.pagemode;

  20. import java.util.Arrays;

  21. import org.springframework.security.access.annotation.Secured;
  22. import org.springframework.stereotype.Component;

  23. import com.hack23.cia.model.internal.application.system.impl.ApplicationEventGroup;
  24. import com.hack23.cia.model.internal.application.system.impl.LanguageData;
  25. import com.hack23.cia.model.internal.application.system.impl.LanguageData_;
  26. import com.hack23.cia.service.api.DataContainer;
  27. import com.hack23.cia.web.impl.ui.application.action.ViewAction;
  28. import com.hack23.cia.web.impl.ui.application.views.common.labelfactory.LabelFactory;
  29. import com.hack23.cia.web.impl.ui.application.views.common.viewnames.AdminViews;
  30. import com.hack23.cia.web.impl.ui.application.views.pageclicklistener.PageItemPropertyClickListener;
  31. import com.vaadin.data.util.BeanItem;
  32. import com.vaadin.data.util.BeanItemContainer;
  33. import com.vaadin.ui.Layout;
  34. import com.vaadin.ui.MenuBar;
  35. import com.vaadin.ui.Panel;
  36. import com.vaadin.ui.VerticalLayout;

  37. /**
  38.  * The Class AdminLanguagePageModContentFactoryImpl.
  39.  */
  40. @Component
  41. public final class AdminLanguagePageModContentFactoryImpl extends AbstractAdminSystemPageModContentFactoryImpl {

  42.     /** The Constant ADMIN_LANGUAGE. */
  43.     private static final String ADMIN_LANGUAGE = "Admin Language";

  44.     /** The Constant NAME. */
  45.     public static final String NAME = AdminViews.ADMIN_LANGUAGE_VIEW_NAME;

  46.     /**
  47.      * Instantiates a new admin language page mod content factory impl.
  48.      */
  49.     public AdminLanguagePageModContentFactoryImpl() {
  50.         super();
  51.     }

  52.     @Override
  53.     public boolean matches(final String page, final String parameters) {
  54.         return NAME.equals(page);
  55.     }

  56.     @Secured({ "ROLE_ADMIN" })
  57.     @Override
  58.     public Layout createContent(final String parameters, final MenuBar menuBar, final Panel panel) {
  59.         final VerticalLayout content = createPanelContent();

  60.         final String pageId = getPageId(parameters);
  61.         final int pageNr= getPageNr(parameters);


  62.         getMenuItemFactory().createMainPageMenuBar(menuBar);

  63.         LabelFactory.createHeader2Label(content,ADMIN_LANGUAGE);

  64.         final DataContainer<LanguageData, Long> dataContainer = getApplicationManager()
  65.                 .getDataContainer(LanguageData.class);

  66.         final BeanItemContainer<LanguageData> politicianDocumentDataSource = new BeanItemContainer<>(LanguageData.class,
  67.                 dataContainer.getPageOrderBy(pageNr,DEFAULT_RESULTS_PER_PAGE,LanguageData_.languageName));

  68.         createPagingControls(content,NAME,pageId, dataContainer.getSize(), pageNr, DEFAULT_RESULTS_PER_PAGE);

  69.         getGridFactory().createBasicBeanItemGrid(content,
  70.                 politicianDocumentDataSource, "LanguageData",
  71.                 new String[] { "hjid", "languageName", "modelObjectVersion" }, new String[] { "hjid", "modelObjectId","modelObjectVersion", "createdDate","lastModifiedDate" },
  72.                 new PageItemPropertyClickListener(AdminViews.ADMIN_LANGUAGE_VIEW_NAME, "hjid"), null, null);

  73.         if (pageId != null && !pageId.isEmpty()) {

  74.             final LanguageData languageData = dataContainer.load(Long.valueOf(pageId));

  75.             if (languageData != null) {

  76.                 getFormFactory().addFormPanelTextFields(content, new BeanItem<>(languageData), LanguageData.class,
  77.                         Arrays.asList(new String[] { "languageName", "createdDate","lastModifiedDate" ,"languageEnabled" }));
  78.             }
  79.         }

  80.         getPageActionEventHelper().createPageEvent(ViewAction.VISIT_ADMIN_LANGUAGE_VIEW, ApplicationEventGroup.ADMIN,
  81.                 NAME, null, pageId);

  82.         return content;

  83.     }

  84. }