public void init() {
        BmTestManager bmTestManager = BmTestManager.getInstance();

        if (!JMeterUtils.getPropDefault(Constants.BLAZEMETER_TESTPANELGUI_INITIALIZED, false)) {
            JMeterUtils.setProperty(Constants.BLAZEMETER_TESTPANELGUI_INITIALIZED, "true");

            final IRunModeChangedNotification runModeChanged = new RunModeChangedNotification(runLocal,
                    runRemote,
                    cloudPanel,
                    advancedPropertiesPane);
            BmTestManager.getInstance().runModeChangedNotificationListeners.add(runModeChanged);

            RunModeListener runModeListener = new RunModeListener(runModeChanged);

            runLocal.addActionListener(runModeListener);
            runRemote.addActionListener(runModeListener);


            signUpButton.setEnabled(bmTestManager.getUserKey() == null || bmTestManager.
                    getUserKey().
                    isEmpty());



            TestIdComboBoxListener comboBoxListener = new TestIdComboBoxListener(testIdComboBox, cloudPanel);
            testIdComboBox.addItemListener(comboBoxListener);

            // init userKey
            if (bmTestManager.isUserKeyFromProp()) {
                String key = bmTestManager.getUserKey();
                setUserKey(key);
                userKeyTextField.setEnabled(false);
                userKeyTextField.setToolTipText("User key found in jmeter.properties file");
                signUpButton.setVisible(false);
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        GuiUtils.getUserTests(testIdComboBox, mainPanel, cloudPanel, userKeyTextField.getText());


                    }
                }).start();
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        BmTestManager.getInstance().getUsers(true);
                    }
                }).start();
            } else {
                String userKey = BmTestManager.getInstance().getUserKey();
                if (!userKey.isEmpty()) {
                    signUpButton.setVisible(false);
                    userKeyTextField.setText(userKey);
                    GuiUtils.getUserTests(testIdComboBox, mainPanel, cloudPanel, userKeyTextField.getText());
                }
                UserKeyListener userKeyListener = new UserKeyListener(userKeyTextField,
                        signUpButton, testIdComboBox, mainPanel, cloudPanel);
                userKeyTextField.getDocument().addDocumentListener(userKeyListener);

            }
            // init userKey

            //Here should be all changes of TestInfo processed
            ITestInfoNotification testInfoNotification = new TestInfoNotificationTP(runLocal, runRemote,
                    advancedPropertiesPane.getjMeterPropertyPanel());
            bmTestManager.testInfoNotificationListeners.add(testInfoNotification);

            //Processing serverStatusChangedNotification
            ServerStatusController serverStatusController = ServerStatusController.getServerStatusController();
            IServerStatusChangedNotification serverStatusChangedNotification = new ServerStatusChangedNotificationTP(this, cloudPanel,
                    (PropertyPanel) advancedPropertiesPane.getjMeterPropertyPanel());
            serverStatusController.serverStatusChangedNotificationListeners.add(serverStatusChangedNotification);


        }
    }