protected void hyperlinkActivated()

in src/org/jetbrains/plugins/ipnb/configuration/IpnbConnectionManager.java [401:441]


    protected void hyperlinkActivated(HyperlinkEvent e) {
      final List<RunnerAndConfigurationSettings> configurationsList =
        RunManager.getInstance(myProject).getConfigurationSettingsList(IpnbRunConfigurationType.getInstance());

      if (configurationsList.isEmpty()) {
        final RunnerAndConfigurationSettings configurationSettings = PyRunConfigurationFactory.getInstance()
          .createRunConfiguration(ModuleManager.getInstance(myProject).getModules()[0],
                                  IpnbRunConfigurationType.getInstance().getConfigurationFactories()[0]);
        final IpnbRunConfiguration configuration = (IpnbRunConfiguration)configurationSettings.getConfiguration();
        configuration.setHost(IpnbConfigurationEditor.DEFAULT_HOST);
        configuration.setPort(IpnbConfigurationEditor.DEFAULT_PORT);
        ExecutionUtil.runConfiguration(configurationSettings, DefaultRunExecutor.getRunExecutorInstance());
      }
      else {
        if (configurationsList.size() == 1) {
          ExecutionUtil.runConfiguration(configurationsList.get(0), DefaultRunExecutor.getRunExecutorInstance());
        }
        else {
          final JList<RunnerAndConfigurationSettings> list = new JBList<>(configurationsList);
          list.setCellRenderer(new ColoredListCellRenderer<RunnerAndConfigurationSettings>() {
            @Override
            protected void customizeCellRenderer(@NotNull JList<? extends RunnerAndConfigurationSettings> list,
                                                 RunnerAndConfigurationSettings value, int index,
                                                 boolean selected, boolean hasFocus) {
              append(value.getName());
            }
          });
          final PopupChooserBuilder builder = new PopupChooserBuilder(list);
          builder.setTitle("Choose Jupyter Notebook Server");
          builder.setItemChoosenCallback(() -> {
            final RunnerAndConfigurationSettings configuration = list.getSelectedValue();
            ExecutionUtil.runConfiguration(configuration, DefaultRunExecutor.getRunExecutorInstance());
          });
          final JBPopup popup = builder.createPopup();
          final PointerInfo pointerInfo = MouseInfo.getPointerInfo();
          if (pointerInfo == null) return;
          final Point point = pointerInfo.getLocation();
          popup.showInScreenCoordinates(WindowManagerEx.getInstanceEx().getMostRecentFocusedWindow(), point);
        }
      }
    }