protected Pane addMenuButtons() {

        GridPane mainPane = new GridPane();
        mainPane.setVgap(20);

        HBox chartGroupPane = new HBox();
        chartGroupPane.setAlignment(Pos.CENTER);

        //Stworzenie przycisków do wyboru typu wykresu (liniowy, świecowy)
        final ToggleGroup chartGroup = new ToggleGroup();

        Image image1 = new Image(getClass().getResourceAsStream("lineChartIcon.png"));
        Image image2 = new Image(getClass().getResourceAsStream("candleChartIcon.png"));

        ToggleButton line = new ToggleButton();
        line.setGraphic(new ImageView(image1));
        line.setUserData("line");

        candle = new ToggleButton();
        candle.setGraphic(new ImageView(image2));
        candle.setUserData("candle");

        line.setToggleGroup((chartGroup));
        candle.setToggleGroup((chartGroup));

        chartGroupPane.getChildren().addAll(line, candle);

        //Na wstepie wybrany zostaje wykres liniowy
        selectedChart = "line";
        chartGroup.selectToggle(line);
        ////////////////////

        //Stworzenie przycisków do wyboru zakresu dat
        final ToggleGroup rangeGroup = new ToggleGroup();
        List<DataRange> enumList = Arrays.asList(DataRange.values());

        FlowPane flowPane = new FlowPane();
        flowPane.setAlignment(Pos.CENTER);
        flowPane.setPrefWrapLength(70);

        Text rangesTitle = new Text("Zakresy dat");
        flowPane.getChildren().add((rangesTitle));

        //Przyciski tworze w pętli lecąc po wartośćiach enuma
        for (DataRange d : enumList) {
            ToggleButton button = new ToggleButton(getDataRangeShortName(d));
            button.setMinSize(48, 48);
            button.setUserData(d.toString());
            button.setToggleGroup(rangeGroup);
            flowPane.getChildren().add(button);
        }

        rangeGroup.selectToggle(rangeGroup.getToggles().get(4));

        //Obsługa przycisków do wyboru zakresu dat
        //W klasach dziedziczących po InvestorView wywoływana jest abstrakcyjna metoda OnDataRangeChanged
        rangeGroup.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
            public void changed(ObservableValue<? extends Toggle> ov, Toggle toggle, Toggle new_toggle) {
                if (new_toggle == null) {
                    toggle.setSelected(true);
                    return;
                }
                System.out.println(new_toggle.toString());

                selectedRange = DataRange.valueOf((String) new_toggle.getUserData());

                switch (selectedRange) {
                    case ONEDAY:
                        candle.setDisable(true);
                        break;
                    default:
                        candle.setDisable(false);
                        break;
                }
                OnDataRangeChanged();
            }
        });
        chartGroup.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
            public void changed(ObservableValue<? extends Toggle> ov, Toggle toggle, Toggle new_toggle) {

                if (new_toggle == null) {
                    toggle.setSelected(true);
                    return;
                }

                //System.out.println(DataRange.valueOf((String)new_toggle.getUserData()));
                //selectedRange = DataRange.valueOf((String)new_toggle.getUserData());
                selectedChart = new_toggle.getUserData().toString();
                ((ToggleButton)rangeGroup.getToggles().get(0)).setDisable(selectedChart.equals("candle"));
                //System.out.println("!!!!!!!!!!!!!!!"+selectedChart);
                OnChartTypeChanged(selectedChart);
            }
        });

        //----------------------------------------------------------------------
        //Buttony do wskaźników
        //----------------------------------------------------------------------
        FlowPane pointerGroupPane = new FlowPane();
        pointerGroupPane.setAlignment(Pos.CENTER);
        pointerGroupPane.setPrefWrapLength(70);

        //Stworzenie przycisków do wyboru wskaźników
        final ToggleGroup pointerGroup = new ToggleGroup();

        ToggleButton MA = new ToggleButton();
        MA.setMinSize(48, 48);
        MA.setText("MA");
        MA.setUserData("MA");

        ToggleButton SD = new ToggleButton();
        SD.setMinSize(48, 48);
        SD.setText("SD");
        SD.setUserData("SD");

        ToggleButton bollinger = new ToggleButton();
        bollinger.setMinSize(48, 48);
        bollinger.setText("Bollinger");
        bollinger.setUserData("bollinger");

        ToggleButton koperta = new ToggleButton();
        koperta.setMinSize(48, 48);
        koperta.setText("Koperta");
        koperta.setUserData("koperta");

        ToggleButton EMA = new ToggleButton();
        EMA.setMinSize(48, 48);
        EMA.setText("EMA");
        EMA.setUserData("EMA");

        ToggleButton hide = new ToggleButton();
        hide.setMinSize(48, 48);
        hide.setText("hide");
        hide.setUserData("hide");

        MA.setToggleGroup((pointerGroup));

        bollinger.setToggleGroup((pointerGroup));
        koperta.setToggleGroup((pointerGroup));
        EMA.setToggleGroup((pointerGroup));
        hide.setToggleGroup((pointerGroup));

        pointerGroup.selectToggle(hide);

        Text pointersTitle = new Text("Wskaźniki");

        pointerGroupPane.getChildren().addAll(pointersTitle, MA, SD, bollinger, koperta, EMA, hide);

        pointerGroup.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
            public void changed(ObservableValue<? extends Toggle> ov, Toggle toggle, Toggle new_toggle) {
                if (new_toggle != null) {
                    System.out.println(new_toggle.toString());
                    //selectedRange = DataRange.valueOf((String)new_toggle.getUserData());
                    lastPointerType = pointerType;
                    pointerType = (String) new_toggle.getUserData();
                } else {
                    lastPointerType = pointerType;
                    pointerType = "hide";
                }
                OnPointerChange();
            }
        });

        SD.selectedProperty().addListener(new ChangeListener<Boolean>() {
            @Override
            public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
                OnSDPointer(newValue);
            }
        });

        //----------------------------------------------------------------------
        mainPane.add(chartGroupPane, 0, 0);
        mainPane.add(flowPane, 0, 1);
        mainPane.add(pointerGroupPane, 0, 2);

        return mainPane;
    }