ApplicationMenuItemFactoryImpl.java
- /*
- * Copyright 2010-2025 James Pether Sörling
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * $Id$
- * $HeadURL$
- */
- package com.hack23.cia.web.impl.ui.application.views.common.menufactory.impl;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.ApplicationMenuItemFactory;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.CommitteeRankingMenuItemFactory;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.CountryMenuItemFactory;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.GovernmentBodyRankingMenuItemFactory;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.MinistryRankingMenuItemFactory;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.ParliamentMenuItemFactory;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.PartyRankingMenuItemFactory;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.PoliticianRankingMenuItemFactory;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.pagecommands.PageCommandMainViewConstants;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.pagecommands.PageCommandPartyRankingConstants;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.pagecommands.PageCommandPoliticianRankingConstants;
- import com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.pagecommands.PageCommandUserConstants;
- import com.hack23.cia.web.impl.ui.application.views.common.rows.RowUtil;
- import com.jarektoro.responsivelayout.ResponsiveRow;
- import com.vaadin.icons.VaadinIcons;
- import com.vaadin.ui.MenuBar;
- import com.vaadin.ui.MenuBar.MenuItem;
- import com.vaadin.ui.VerticalLayout;
- /**
- * The Class ApplicationMenuItemFactoryImpl.
- */
- @Service
- public final class ApplicationMenuItemFactoryImpl extends AbstractMenuItemFactoryImpl
- implements ApplicationMenuItemFactory {
- /** The committee ranking menu item factory. */
- @Autowired
- private CommitteeRankingMenuItemFactory committeeRankingMenuItemFactory;
- /** The country menu item factory. */
- @Autowired
- private CountryMenuItemFactory countryMenuItemFactory;
- /** The government body ranking menu item factory. */
- @Autowired
- private GovernmentBodyRankingMenuItemFactory governmentBodyRankingMenuItemFactory;
- /** The ministry ranking menu item factory. */
- @Autowired
- private MinistryRankingMenuItemFactory ministryRankingMenuItemFactory;
- /** The parliament menu item factory. */
- @Autowired
- private ParliamentMenuItemFactory parliamentMenuItemFactory;
- /** The party ranking menu item factory. */
- @Autowired
- private PartyRankingMenuItemFactory partyRankingMenuItemFactory;
- /** The politician ranking menu item factory. */
- @Autowired
- private PoliticianRankingMenuItemFactory politicianRankingMenuItemFactory;
- /**
- * Instantiates a new application menu item factory impl.
- */
- public ApplicationMenuItemFactoryImpl() {
- super();
- }
- /**
- * Adds the ranking menu.
- *
- * @param menuBar the menu bar
- */
- @Override
- public void addRankingMenu(final MenuBar menuBar) {
- final MenuItem rankingsMenuItem = menuBar.addItem(RANKING_TEXT, VaadinIcons.LINE_CHART, null);
- final MenuItem swedenMenuItem = rankingsMenuItem.addItem(SWEDEN_DASHBOARD, VaadinIcons.FLAG,
- COMMAND_DASHBOARDVIEW_OVERVIEW);
- countryMenuItemFactory.createCountryTopicMenu(swedenMenuItem);
- rankingsMenuItem.addItem(MINISTRIES_LEADER_SCOREBOARD, VaadinIcons.TROPHY,
- PageCommandUserConstants.COMMAND_CHARTS_CURRENT_MINISTRIES_LEADER_SCOREBOARD);
- rankingsMenuItem.addItem(PART_LEADERS_SCOREBOARD, VaadinIcons.TROPHY, COMMAND_PARTY_LEADER_SCOREBOARD);
- final MenuItem countryMenuItem = rankingsMenuItem.addItem(COUNTRY_RANKING_LINK_TEXT, VaadinIcons.FLAG,
- COMMAND_COUNTRY_RANKING_OVERVIEW);
- countryMenuItemFactory.createCountryTopicMenu(countryMenuItem);
- final MenuItem ministryMenuItem = rankingsMenuItem.addItem(MINISTRY_RANKING_LINK_TEXT, VaadinIcons.OFFICE,
- COMMAND_MINISTRY_RANKING_OVERVIEW);
- ministryRankingMenuItemFactory.createMinistryRankingTopics(ministryMenuItem);
- final MenuItem govbodyMenuItem = rankingsMenuItem.addItem(GOVERNMENT_BODY_RANKING, VaadinIcons.BUILDING_O,
- COMMAND_GOVERNMENT_BODY_RANKING_OVERVIEW);
- governmentBodyRankingMenuItemFactory.createGovernmentBodyRankingTopics(govbodyMenuItem);
- final MenuItem parliamentMenuItem = rankingsMenuItem.addItem(PARLIAMENT_RANKING_LINK_TEXT,
- VaadinIcons.INSTITUTION, COMMAND_PARLIAMENT_RANKING_OVERVIEW);
- parliamentMenuItemFactory.createParliamentTopicMenu(parliamentMenuItem);
- final MenuItem committeeMenuItem = rankingsMenuItem.addItem(COMMITTEE_RANKING_LINK_TEXT, VaadinIcons.GROUP,
- COMMAND_COMMITTEE_RANKING_OVERVIEW);
- committeeRankingMenuItemFactory.createCommitteeRankingTopics(committeeMenuItem);
- final MenuItem partynMenuItem = rankingsMenuItem.addItem(PARTY_RANKING_LINK_TEXT, VaadinIcons.USERS,
- COMMAND_PARTY_RANKING_OVERVIEW);
- partyRankingMenuItemFactory.createPartyRankingTopics(partynMenuItem);
- final MenuItem politicianMenuItem = rankingsMenuItem.addItem(POLITICIAN_RANKING_LINK_TEXT, VaadinIcons.USER,
- POLITICIAN_RANKING_COMMAND_OVERVIEW);
- politicianRankingMenuItemFactory.createPoliticianRankingTopics(politicianMenuItem);
- final MenuItem documentsMenuItem = rankingsMenuItem.addItem(DOCUMENTS, VaadinIcons.FILE_TABLE, null);
- documentsMenuItem.addItem("List all", VaadinIcons.FILE_TABLE, COMMAND_DOCUMENTS_OVERVIEW);
- documentsMenuItem.addItem(SEARCH_DOCUMENTS, VaadinIcons.SEARCH, COMMAND_SEARCH_DOCUMENT);
- }
- /**
- * Creates the main page menu bar.
- *
- * @param menuBar the menu bar
- * @return the menu bar
- */
- @Override
- public MenuBar createMainPageMenuBar(final MenuBar menuBar) {
- initApplicationMenuBar(menuBar);
- addRankingMenu(menuBar);
- return menuBar;
- }
- /**
- * Creates the overview page.
- *
- * @param panelContent the panel content
- */
- @Override
- public void createOverviewPage(final VerticalLayout panelContent) {
- final ResponsiveRow grid = RowUtil.createGridLayout(panelContent);
- createButtonLink(grid, SWEDEN_DASHBOARD, VaadinIcons.FLAG, COMMAND_DASHBOARDVIEW_OVERVIEW,
- "Visualize political activity in Sweden, present key performance indicators and metadata");
- createButtonLink(grid, MINISTRIES_LEADER_SCOREBOARD, VaadinIcons.TROPHY,
- COMMAND_CHARTS_CURRENT_MINISTRIES_LEADER_SCOREBOARD, MINISTRIES_LEADER_SCOREBOARD_DESCRIPTION);
- createButtonLink(grid, PART_LEADERS_SCOREBOARD, VaadinIcons.TROPHY, COMMAND_PARTY_LEADER_SCOREBOARD,
- DESC_LEADERS_SCOREBOARD);
- createButtonLink(grid, COUNTRY_RANKING_LINK_TEXT, VaadinIcons.FLAG, COMMAND_COUNTRY_RANKING_OVERVIEW,
- COUNTRY_RANKING_DESCRIPTION);
- createButtonLink(grid, MINISTRY_RANKING_LINK_TEXT, VaadinIcons.OFFICE, COMMAND_MINISTRY_RANKING_OVERVIEW,
- MINISTRY_RANKING_DESCRIPTION);
- createButtonLink(grid, MINISTRIES_LINK_TEXT, VaadinIcons.OFFICE, COMMAND_MINISTRY_RANKING_DATAGRID,
- MINISTRIES_DESCRIPTION);
- createButtonLink(grid, GOVERNMENT_BODY_RANKING, VaadinIcons.BUILDING_O,
- COMMAND_GOVERNMENT_BODY_RANKING_OVERVIEW, GOVERNMENT_BODY_RANKING_DESCRIPTION);
- createButtonLink(grid, GOVERNMENT_BODIES, VaadinIcons.BUILDING_O, COMMAND_GOVERNMENT_BODY_RANKING_DATAGRID,
- GOVERNMENT_BODIES_DESCRIPTION);
- createButtonLink(grid, PARLIAMENT_RANKING_LINK_TEXT, VaadinIcons.INSTITUTION,
- COMMAND_PARLIAMENT_RANKING_OVERVIEW, PARLIAMENT_RANKING_DESCRIPTION);
- createButtonLink(grid, COMMITTEE_RANKING_LINK_TEXT, VaadinIcons.GROUP, COMMAND_COMMITTEE_RANKING_OVERVIEW,
- COMMITTEE_RANKING_DESCRIPTION);
- createButtonLink(grid, COMMITTEES_LINK_TEXT, VaadinIcons.GROUP, COMMAND_COMMITTEE_RANKING_DATAGRID,
- COMMITTEES_DESCRIPTION);
- createButtonLink(grid, PARTY_RANKING_LINK_TEXT, VaadinIcons.USERS, COMMAND_PARTY_RANKING_OVERVIEW,
- PARTY_RANKING_DESCRIPTION);
- createButtonLink(grid, PARTIES_LINK_TEXT, VaadinIcons.USERS,
- PageCommandPartyRankingConstants.COMMAND_PARTY_RANKING_DATAGRID, PARTIES_DESCRIPTION);
- createButtonLink(grid, POLITICIAN_RANKING_LINK_TEXT, VaadinIcons.USER, POLITICIAN_RANKING_COMMAND_DATAGRID,
- POLITICIAN_RANKING_DESCRIPTION);
- createButtonLink(grid, POLITICIANS_LINK_TEXT, VaadinIcons.USER,
- PageCommandPoliticianRankingConstants.COMMAND_POLITICIAN_RANKING_DATAGRID, POLITICIANS_DESCRIPTION);
- createButtonLink(grid, SEARCH_DOCUMENTS, VaadinIcons.SEARCH,
- PageCommandMainViewConstants.COMMAND_SEARCH_DOCUMENT, SEARCH_DOCUMENTS_DESCRIPTION);
- createButtonLink(grid, DOCUMENTS, VaadinIcons.FILE_TABLE, COMMAND_DOCUMENTS_OVERVIEW, DOCUMENTS_DESCRIPTION);
- }
- }