JComponent configurableComponent = configurable.createComponent(); assert configurableComponent != null; JPanel hideablePanel = new JPanel(new BorderLayout());
/** * Removes existing (if any) and adds new (if available) panel for project sdk settings. E.g. Docker settings */ @Override public void selectionChanged(@Nullable Perl5SdkWrapper sdkWrapper) { Perl5SdkManipulator.super.selectionChanged(sdkWrapper); for (Component component : mySdkProjectSettingsPanel.getComponents()) { mySdkProjectSettingsPanel.remove(component); } if (sdkWrapper instanceof Perl5RealSdkWrapper) { PerlHostHandler<?, ?> perlHostHandler = PerlHostHandler.from(((Perl5RealSdkWrapper)sdkWrapper).getSdk()); if (perlHostHandler != null) { myHostProjectConfigurable = myHostConfigurablesMap.computeIfAbsent(perlHostHandler, it -> it.getSettingsConfigurable(myProject)); if (myHostProjectConfigurable != null) { mySdkProjectSettingsPanel.add(Objects.requireNonNull(myHostProjectConfigurable.createComponent()), BorderLayout.CENTER); myHostProjectConfigurable.reset(); } } } else { myHostProjectConfigurable = null; } mySdkProjectSettingsPanel.setVisible(myHostProjectConfigurable != null); }
@Override public void disposeUIResources() { myLibsList = null; myPerl5SdkConfigurable.disposeUIResources(); myHostProjectConfigurable = null; myHostConfigurablesMap.values().forEach(it -> { if (it != null) { it.disposeUIResources(); } }); myHostConfigurablesMap.clear(); }
@Override public boolean isModified() { return myPerl5SdkConfigurable.isModified() || isLibsModified() || mySharedSettings.SIMPLE_MAIN_RESOLUTION != simpleMainCheckbox.isSelected() || mySharedSettings.AUTOMATIC_HEREDOC_INJECTIONS != autoInjectionCheckbox.isSelected() || mySharedSettings.ALLOW_INJECTIONS_WITH_INTERPOLATION != allowInjectionWithInterpolation.isSelected() || myLocalSettings.ENABLE_REGEX_INJECTIONS != allowRegexpInjections.isSelected() || mySharedSettings.PERL_ANNOTATOR_ENABLED != perlAnnotatorCheckBox.isSelected() || mySharedSettings.PERL_CRITIC_ENABLED != perlCriticCheckBox.isSelected() || mySharedSettings.PERL_SWITCH_ENABLED != enablePerlSwitchCheckbox.isSelected() || !mySharedSettings.getTargetPerlVersion().equals(myTargetPerlVersionComboBox.getSelectedItem()) || !StringUtil.equals(mySharedSettings.PERL_DEPARSE_ARGUMENTS, deparseArgumentsTextField.getText()) || !StringUtil.equals(mySharedSettings.PERL_CRITIC_ARGS, perlCriticArgsInputField.getText()) || !StringUtil.equals(mySharedSettings.PERL_TIDY_ARGS, perlTidyArgsInputField.getText()) || !mySharedSettings.selfNames.equals(selfNamesModel.getItems()) || myHostProjectConfigurable != null && myHostProjectConfigurable.isModified(); }
@Override public void reset() { if (myHostProjectConfigurable != null) { myHostProjectConfigurable.reset(); } myPerl5SdkConfigurable.reset(); myLibsModel.removeAll(); myLibsModel.add(PerlProjectManager.getInstance(myProject).getExternalLibraryRoots()); selfNamesModel.removeAll(); selfNamesModel.add(mySharedSettings.selfNames); myTargetPerlVersionComboBox.setSelectedItem(mySharedSettings.getTargetPerlVersion()); simpleMainCheckbox.setSelected(mySharedSettings.SIMPLE_MAIN_RESOLUTION); autoInjectionCheckbox.setSelected(mySharedSettings.AUTOMATIC_HEREDOC_INJECTIONS); allowInjectionWithInterpolation.setSelected(mySharedSettings.ALLOW_INJECTIONS_WITH_INTERPOLATION); allowRegexpInjections.setSelected(myLocalSettings.ENABLE_REGEX_INJECTIONS); perlAnnotatorCheckBox.setSelected(mySharedSettings.PERL_ANNOTATOR_ENABLED); deparseArgumentsTextField.setText(mySharedSettings.PERL_DEPARSE_ARGUMENTS); enablePerlSwitchCheckbox.setSelected(mySharedSettings.PERL_SWITCH_ENABLED); perlCriticCheckBox.setSelected(mySharedSettings.PERL_CRITIC_ENABLED); perlCriticArgsInputField.setText(mySharedSettings.PERL_CRITIC_ARGS); perlTidyArgsInputField.setText(mySharedSettings.PERL_TIDY_ARGS); }
@Override public void apply() throws ConfigurationException { if (myHostProjectConfigurable != null) { myHostProjectConfigurable.apply();
@Override protected void dispose() { super.dispose(); ui = null; config.disposeUIResources(); } }
JComponent configurableComponent = configurable.createComponent(); assert configurableComponent != null; JPanel hideablePanel = new JPanel(new BorderLayout());
protected JComponent createCenterPanel() { if (ui == null) { ui = config.createComponent(); } return ui; }
JComponent component = configurable.createComponent(); if (component == null) { this.setupProblem = P4Bundle.getString("checkout.config.error.invalid-project");