public MainFrame() {
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		User user = Service.getCurrentUser();
		this.setTitle("Carletti Production Manager - " + user.getUsername()
				+ " (" + user.getGroup() + ")");
		this.setResizable(true);
		this.setSize(600, 500);
		this.setMinimumSize(new Dimension(500, 450));
		this.setLocationRelativeTo(this.getRootPane());

		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);

		mntmDashboard = new JMenuItem("Dashboard");
		mntmProducts = new JMenuItem("Products");
		JMenu mnStatistics = new JMenu("Statistics");
		mntmPercentageOfWaste = new JMenuItem("Percentage of Waste");
		mntmCreateTrays = new JMenuItem("Create Trays");
		mntmAveragePickingTimes = new JMenuItem("Average Picking Times");
		mntmLogout = new JMenuItem("Logout");

		if (user.canAccess("Dashboard")) {
			mntmDashboard.setMnemonic('D');
			mntmDashboard.addActionListener(controller);
			menuBar.add(mntmDashboard);
		}

		if (user.canAccess("Products")) {
			mntmProducts.setMnemonic('P');
			mntmProducts.addActionListener(controller);
			menuBar.add(mntmProducts);
		}

		if (user.canAccess("Statistics")) {
			mnStatistics.setMnemonic('S');
			// menuBar.add(mnStatistics);

			mntmPercentageOfWaste.setMnemonic('W');
			mntmPercentageOfWaste.addActionListener(controller);
			// mnStatistics.add(mntmPercentageOfWaste);

			mntmAveragePickingTimes.setMnemonic('A');
			mntmAveragePickingTimes.addActionListener(controller);
			// mnStatistics.add(mntmAveragePickingTimes);
		}

		if (user.canAccess("Create Trays")) {
			mntmCreateTrays.setMnemonic('T');
			mntmCreateTrays.addActionListener(controller);
			menuBar.add(mntmCreateTrays);
		}

		if (user.canAccess("Logout")) {
			mntmLogout.setMnemonic('L');
			mntmLogout.addActionListener(controller);
			menuBar.add(mntmLogout);
		}

		this.add(pnlNotifications, BorderLayout.NORTH);

		this.navigateTo(pnlDashboard);
	}