MinistryMenuItemFactoryImpl.java

  1. /*
  2.  * Copyright 2010-2025 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.common.menufactory.impl;

  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;

  22. import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.ApplicationMenuItemFactory;
  23. import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.MinistryMenuItemFactory;
  24. import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.MinistryRankingMenuItemFactory;
  25. import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.pagecommands.PageCommandMinistryConstants;
  26. import com.hack23.cia.web.impl.ui.application.views.common.rows.RowUtil;
  27. import com.jarektoro.responsivelayout.ResponsiveRow;
  28. import com.vaadin.icons.VaadinIcons;
  29. import com.vaadin.ui.MenuBar;
  30. import com.vaadin.ui.MenuBar.MenuItem;
  31. import com.vaadin.ui.VerticalLayout;

  32. /**
  33.  * The Class MenuItemFactoryImpl.
  34.  */
  35. @Service
  36. public final class MinistryMenuItemFactoryImpl extends AbstractMenuItemFactoryImpl implements MinistryMenuItemFactory {
  37.     /** The application menu item factory. */

  38.     /** The application menu item factory. */
  39.     @Autowired
  40.     private ApplicationMenuItemFactory applicationMenuItemFactory;

  41.     /** The ministry ranking menu item factory. */
  42.     @Autowired
  43.     private MinistryRankingMenuItemFactory ministryRankingMenuItemFactory;

  44.     /**
  45.      * Instantiates a new ministry menu item factory impl.
  46.      */
  47.     public MinistryMenuItemFactoryImpl() {
  48.         super();
  49.     }

  50.     @Override
  51.     public void createMinistryMenuBar(final MenuBar menuBar, final String pageId) {
  52.         initApplicationMenuBar(menuBar);

  53.         applicationMenuItemFactory.addRankingMenu(menuBar);

  54.         ministryRankingMenuItemFactory
  55.                 .createMinistryRankingTopics(menuBar.addItem(MINISTRY_RANKING, VaadinIcons.GROUP, null));

  56.         final MenuItem ministryItem = menuBar.addItem("Ministry " + pageId, VaadinIcons.GROUP, null);

  57.         ministryItem.addItem(OVERVIEW_TEXT, VaadinIcons.GROUP,
  58.                 PageCommandMinistryConstants.COMMAND_MINISTRY_OVERVIEW.createItemPageCommand(pageId));
  59.         final MenuItem rolesItem = ministryItem.addItem(ROLES_TEXT, VaadinIcons.GROUP, null);

  60.         rolesItem.addItem(CURRENT_MEMBERS_TEXT, VaadinIcons.GROUP,
  61.                 PageCommandMinistryConstants.COMMAND_MINISTRY_CURRENT_MEMBERS.createItemPageCommand(pageId));

  62.         rolesItem.addItem(MEMBER_HISTORY_TEXT, VaadinIcons.GROUP,
  63.                 PageCommandMinistryConstants.COMMAND_MINISTRY_MEMBER_HISTORY.createItemPageCommand(pageId));

  64.         rolesItem.addItem(ROLE_GHANT_TEXT, VaadinIcons.GROUP,
  65.                 PageCommandMinistryConstants.COMMAND_MINISTRY_ROLE_GHANT.createItemPageCommand(pageId));

  66.         rolesItem.addItem(GOVERNMENT_BODIES_HEADCOUNT, VaadinIcons.GROUP,
  67.                 PageCommandMinistryConstants.COMMAND_MINISTRY_GOVERNMENT_BODIES_HEADCOUNT.createItemPageCommand(pageId));

  68.         rolesItem.addItem(GOVERNMENT_BODIES_INCOME, VaadinIcons.GROUP,
  69.                 PageCommandMinistryConstants.COMMAND_MINISTRY_GOVERNMENT_BODIES_INCOME.createItemPageCommand(pageId));

  70.         rolesItem.addItem(GOVERNMENT_BODIES_EXPENDITURE, VaadinIcons.GROUP,
  71.                 PageCommandMinistryConstants.COMMAND_MINISTRY_GOVERNMENT_BODIES_EXPENDITURE.createItemPageCommand(pageId));

  72.         final MenuItem documentItem = ministryItem.addItem(DOCUMENTS_TEXT, VaadinIcons.GROUP, null);

  73.         documentItem.addItem(DOCUMENT_ACTIVITY_TEXT, VaadinIcons.GROUP,
  74.                 PageCommandMinistryConstants.COMMAND_MINISTRY_DOCUMENT_ACTIVITY.createItemPageCommand(pageId));

  75.         documentItem.addItem(DOCUMENT_HISTORY_TEXT, VaadinIcons.GROUP,
  76.                 PageCommandMinistryConstants.COMMAND_MINISTRY_DOCUMENT_HISTORY.createItemPageCommand(pageId));

  77.         ministryItem.addItem(RANKING_PAGE_VISIT_TEXT, VaadinIcons.GROUP,
  78.                 MINISTRY_RANKING_COMMAND_PAGEVISIT_HISTORY);

  79.     }

  80.     @Override
  81.     public void createOverviewPage(final VerticalLayout panelContent, final String pageId) {
  82.         final ResponsiveRow grid = RowUtil.createGridLayout(panelContent);

  83.         createButtonLink(grid, CURRENT_MEMBERS_TEXT, VaadinIcons.GROUP,
  84.                 PageCommandMinistryConstants.COMMAND_MINISTRY_CURRENT_MEMBERS.createItemPageCommand(pageId),
  85.                 CURRENT_MEMBERS_DESCRIPTION);

  86.         createButtonLink(grid, MEMBER_HISTORY_TEXT, VaadinIcons.GROUP,
  87.                 PageCommandMinistryConstants.COMMAND_MINISTRY_MEMBER_HISTORY.createItemPageCommand(pageId),
  88.                 MEMBER_HISTORY_DESCRIPTION);

  89.         createButtonLink(grid, ROLE_GHANT_TEXT, VaadinIcons.GROUP,
  90.                 PageCommandMinistryConstants.COMMAND_MINISTRY_ROLE_GHANT.createItemPageCommand(pageId),
  91.                 ROLE_GHANT_DESCRIPTION);

  92.         createButtonLink(grid, GOVERNMENT_BODIES_HEADCOUNT, VaadinIcons.GROUP,
  93.                 PageCommandMinistryConstants.COMMAND_MINISTRY_GOVERNMENT_BODIES_HEADCOUNT.createItemPageCommand(pageId),
  94.                 GOVERNMENT_BODIES_HEADCOUNT_DESCRIPTION);

  95.         createButtonLink(grid, GOVERNMENT_BODIES_INCOME, VaadinIcons.GROUP,
  96.                 PageCommandMinistryConstants.COMMAND_MINISTRY_GOVERNMENT_BODIES_INCOME.createItemPageCommand(pageId),
  97.                 GOVERNMENT_BODIES_INCOME_DESCRIPTION);

  98.         createButtonLink(grid, GOVERNMENT_BODIES_EXPENDITURE, VaadinIcons.GROUP,
  99.                 PageCommandMinistryConstants.COMMAND_MINISTRY_GOVERNMENT_BODIES_EXPENDITURE.createItemPageCommand(pageId),
  100.                 GOVERNMENT_BODIES_EXPENDITURE_DESCRIPTION);

  101.         createButtonLink(grid, DOCUMENT_ACTIVITY_TEXT, VaadinIcons.GROUP,
  102.                 PageCommandMinistryConstants.COMMAND_MINISTRY_DOCUMENT_ACTIVITY.createItemPageCommand(pageId),
  103.                 DOCUMENT_ACTIVITY_DESCRIPTION);

  104.         createButtonLink(grid, DOCUMENT_HISTORY_TEXT, VaadinIcons.GROUP,
  105.                 PageCommandMinistryConstants.COMMAND_MINISTRY_DOCUMENT_HISTORY.createItemPageCommand(pageId),
  106.                 DOCUMENT_HISTORY_DESCRIPTION);

  107.         createButtonLink(grid, RANKING_PAGE_VISIT_TEXT, VaadinIcons.GROUP,
  108.                 PageCommandMinistryConstants.COMMAND_MINISTRY_PAGEVISIT_HISTORY.createItemPageCommand(pageId),
  109.                 RANKING_PAGE_VISIT_DESC);

  110.     }
  111. }