List of usage examples for com.intellij.openapi.fileChooser FileChooserDescriptorFactory createSingleFileDescriptor
public static FileChooserDescriptor createSingleFileDescriptor()
From source file:com.android.tools.idea.apk.viewer.AnalyzeApkAction.java
License:Apache License
@Nullable private static VirtualFile promptUserForApk(Project project) { FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileDescriptor() .withDescription("Select APK to analyze") .withFileFilter(file -> ApkFileSystem.EXTENSIONS.contains(file.getExtension())); VirtualFile apk = FileChooser.chooseFile(descriptor, project, getLastSelectedApk(project)); if (apk != null) { saveLastSelectedApk(project, apk); }//w w w. java 2 s . c o m return apk; }
From source file:com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor.java
License:Apache License
/** * Initializes the UI components.//w ww . j a v a 2 s . c o m */ public AppEngineDeploymentRunConfigurationEditor(final Project project, final AppEngineDeployable deploymentSource, final AppEngineHelper appEngineHelper) { this.project = project; this.deploymentSource = deploymentSource; versionIdField.setPlaceholderText(GctBundle.message("appengine.flex.version.placeholder.text")); promoteCheckbox.setSelected(PROMOTE_DEFAULT); stopPreviousVersionCheckbox.setSelected(STOP_PREVIOUS_VERSION_DEFAULT); resetOverridableFields(versionOverrideCheckBox, versionIdField); updateJarWarSelector(); userSpecifiedArtifactFileSelector.setVisible(true); environment = deploymentSource.getEnvironment(); promoteInfoLabel.setText(GctBundle.message("appengine.promote.info.label", LABEL_OPEN_TAG, PROMOTE_INFO_HREF_OPEN_TAG, LABEL_HREF_CLOSE_TAG, LABEL_CLOSE_TAG)); promoteInfoLabel.addHyperlinkListener(new BrowserOpeningHyperLinkListener()); if (environment.isFlexible()) { appEngineCostWarningLabel.setText(GctBundle.message("appengine.flex.deployment.cost.warning", LABEL_OPEN_TAG, COST_WARNING_HREF_OPEN_TAG, LABEL_HREF_CLOSE_TAG, LABEL_CLOSE_TAG)); appEngineCostWarningLabel.addHyperlinkListener(new BrowserOpeningHyperLinkListener()); appEngineCostWarningLabel.setBackground(editorPanel.getBackground()); environmentLabel.setText(getEnvironmentDisplayableLabel()); } else { appEngineCostWarningLabel.setVisible(false); environmentLabel.setText(environment.localizedLabel()); stopPreviousVersionLabel.setVisible(false); stopPreviousVersionCheckbox.setVisible(false); } configTypeComboBox.setModel(new DefaultComboBoxModel(ConfigType.values())); configTypeComboBox.setSelectedItem(ConfigType.AUTO); appEngineConfigFilesPanel.setVisible(false); configTypeComboBox.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { if (getConfigType() == ConfigType.CUSTOM) { appEngineConfigFilesPanel.setVisible(true); // For user convenience, pre-fill the path fields for app.yaml and Dockerfile // if they already exist in their usual directories in the current project. if (project != null && project.getBasePath() != null) { if (StringUtil.isEmpty(appYamlPathField.getText())) { Path defaultAppYamlPath = Paths .get(project.getBasePath() + DEFAULT_APP_YAML_DIR + "/app.yaml"); if (Files.exists(defaultAppYamlPath)) { appYamlPathField.setText(defaultAppYamlPath.toString()); } } if (StringUtil.isEmpty(dockerFilePathField.getText())) { Path defaultDockerfilePath = Paths .get(project.getBasePath() + DEFAULT_DOCKERFILE_DIR + "/Dockerfile"); if (Files.exists(defaultDockerfilePath)) { dockerFilePathField.setText(defaultDockerfilePath.toString()); } } } } else { appEngineConfigFilesPanel.setVisible(false); } } }); userSpecifiedArtifactFileSelector.addBrowseFolderListener( GctBundle.message("appengine.flex.config.user.specified.artifact.title"), null, project, FileChooserDescriptorFactory.createSingleFileDescriptor() .withFileFilter(new Condition<VirtualFile>() { @Override public boolean value(VirtualFile file) { return Comparing.equal(file.getExtension(), "jar", SystemInfo.isFileSystemCaseSensitive) || Comparing.equal(file.getExtension(), "war", SystemInfo.isFileSystemCaseSensitive); } })); userSpecifiedArtifactFileSelector.getTextField().getDocument() .addDocumentListener(getUserSpecifiedArtifactFileListener()); dockerFilePathField.addBrowseFolderListener( GctBundle.message("appengine.dockerfile.location.browse.button"), null, project, FileChooserDescriptorFactory.createSingleFileDescriptor()); appYamlPathField.addBrowseFolderListener( GctBundle.message("appengine.appyaml.location.browse.window.title"), null, project, FileChooserDescriptorFactory.createSingleFileDescriptor()); generateAppYamlButton.addActionListener(new GenerateConfigActionListener(project, "app.yaml", ConfigFileType.APP_YAML, new Supplier<Path>() { @Override public Path get() { return appEngineHelper.defaultAppYaml(); } }, appYamlPathField, userSpecifiedArtifactFileSelector)); generateDockerfileButton.addActionListener(new GenerateConfigActionListener(project, "Dockerfile", ConfigFileType.DOCKERFILE, new Supplier<Path>() { @Override public Path get() { return appEngineHelper.defaultDockerfile(AppEngineFlexDeploymentArtifactType .typeForPath(Paths.get(deploymentSource.getFilePath()))); } }, dockerFilePathField, userSpecifiedArtifactFileSelector)); versionOverrideCheckBox .addItemListener(new CustomFieldOverrideListener(versionOverrideCheckBox, versionIdField)); promoteCheckbox.addItemListener(new PromoteListener()); appEngineFlexConfigPanel.setVisible(environment == AppEngineEnvironment.APP_ENGINE_FLEX && !AppEngineProjectService.getInstance().isFlexCompat(project, deploymentSource)); }
From source file:com.google.cloud.tools.intellij.appengine.cloud.flexible.AppEngineFlexibleDeploymentEditor.java
License:Open Source License
public AppEngineFlexibleDeploymentEditor(Project project, AppEngineDeployable deploymentSource) { this.deploymentSource = deploymentSource; version.getEmptyText().setText(GctBundle.getString("appengine.flex.version.placeholder.text")); appYamlTextField.addBrowseFolderListener(GctBundle.message("appengine.flex.config.browse.app.yaml"), null /* description */, project, FileChooserDescriptorFactory.createSingleFileDescriptor() .withFileFilter(virtualFile -> Comparing.equal(virtualFile.getExtension(), "yaml") || Comparing.equal(virtualFile.getExtension(), "yml"))); dockerfileTextField.addBrowseFolderListener(GctBundle.message("appengine.flex.config.browse.dockerfile"), null /* description */, project, FileChooserDescriptorFactory.createSingleFileDescriptor()); archiveSelector.addBrowseFolderListener( GctBundle.message("appengine.flex.config.user.specified.artifact.title"), null /* description */, project,//from ww w . ja v a 2 s . c o m FileChooserDescriptorFactory.createSingleFileDescriptor() .withFileFilter(virtualFile -> Comparing.equal(virtualFile.getExtension(), "jar", SystemInfo.isFileSystemCaseSensitive) || Comparing.equal(virtualFile.getExtension(), "war", SystemInfo.isFileSystemCaseSensitive))); archiveSelector.getTextField().getDocument().addDocumentListener(new DocumentAdapter() { @Override protected void textChanged(DocumentEvent event) { if (deploymentSource instanceof UserSpecifiedPathDeploymentSource) { ((UserSpecifiedPathDeploymentSource) deploymentSource).setFilePath(archiveSelector.getText()); } } }); appYamlOverrideCheckBox.addActionListener(event -> { boolean isAppYamlOverrideSelected = ((JCheckBox) event.getSource()).isSelected(); appYamlTextField.setVisible(isAppYamlOverrideSelected); toggleDockerfileSection(); }); dockerfileOverrideCheckBox.addActionListener(event -> { boolean isDockerfileOverrideSelected = ((JCheckBox) event.getSource()).isSelected(); dockerfileTextField.setEnabled(isDockerfileOverrideSelected); if (isDockerfileOverrideSelected) { if (dockerfileOverride.isEmpty()) { dockerfileOverride = dockerfileTextField.getText(); } dockerfileTextField.setText(dockerfileOverride); } else { dockerfileOverride = dockerfileTextField.getText(); dockerfileTextField.setText(getDockerfilePath()); } }); appYamlTextField.getTextField().getDocument().addDocumentListener(new DocumentAdapter() { @Override protected void textChanged(DocumentEvent event) { updateServiceName(); toggleDockerfileSection(); } }); appEngineCostWarningLabel.setHyperlinkText( GctBundle.getString("appengine.flex.deployment.cost.warning.beforeLink"), GctBundle.getString("appengine.flex.deployment.cost.warning.link"), " " + GctBundle.getString("appengine.flex.deployment.cost.warning.afterLink")); appEngineCostWarningLabel.addHyperlinkListener(new BrowserOpeningHyperLinkListener()); appEngineCostWarningLabel.setHyperlinkTarget(CloudSdkAppEngineHelper.APP_ENGINE_BILLING_URL); gcpProjectSelector.addProjectSelectionListener(appInfoPanel::refresh); gcpProjectSelector.addModelListener(new TreeModelAdapter() { @Override public void treeStructureChanged(TreeModelEvent event) { // projects have finished loading refreshApplicationInfoPanel(); } }); promoteInfoLabel.setHyperlinkText(GctBundle.getString("appengine.promote.info.label.beforeLink") + " ", GctBundle.getString("appengine.promote.info.label.link"), ""); promoteInfoLabel.addHyperlinkListener(new BrowserOpeningHyperLinkListener()); promoteInfoLabel.setHyperlinkTarget(GctBundle.getString("appengine.promoteinfo.url")); promoteVersionCheckBox.addItemListener(event -> { boolean isPromoteSelected = ((JCheckBox) event.getItem()).isSelected(); stopPreviousVersionCheckBox.setEnabled(isPromoteSelected); stopPreviousVersionCheckBox.setSelected(isPromoteSelected); }); promoteVersionCheckBox.setSelected(PROMOTE_DEFAULT); stopPreviousVersionCheckBox.setEnabled(STOP_PREVIOUS_VERSION_DEFAULT); modulesWithFlexFacetComboBox.setModel(new DefaultComboBoxModel<>(Arrays .stream(ModuleManager.getInstance(project).getModules()).filter(module -> FacetManager .getInstance(module).getFacetByType(AppEngineFlexibleFacetType.ID) != null) .toArray(Module[]::new))); modulesWithFlexFacetComboBox.addItemListener(event -> toggleDockerfileSection()); modulesWithFlexFacetComboBox.setRenderer(new ListCellRendererWrapper<Module>() { @Override public void customize(JList list, Module value, int index, boolean selected, boolean hasFocus) { if (value != null) { setText(value.getName()); } } }); // For the case Flex isn't enabled for any modules, the user can still deploy filesystem // jars/wars. if (modulesWithFlexFacetComboBox.getItemCount() == 0) { modulesWithFlexFacetComboBox.setVisible(false); moduleSettingsButton.setVisible(false); appYamlOverrideCheckBox.setVisible(false); dockerfileOverrideCheckBox.setVisible(false); noSupportedModulesWarning.setVisible(true); appYamlTextField.setVisible(true); dockerfileTextField.setVisible(true); // These checks are important so getAppYamlPath() and getDockerfilePath() work correctly. appYamlOverrideCheckBox.setSelected(true); dockerfileOverrideCheckBox.setSelected(true); } appYamlTextField.setText(getAppYamlPath()); moduleSettingsButton.addActionListener(event -> { AppEngineFlexibleFacet flexFacet = FacetManager .getInstance(((Module) modulesWithFlexFacetComboBox.getSelectedItem())) .getFacetByType(AppEngineFlexibleFacetType.ID); ModulesConfigurator.showFacetSettingsDialog(flexFacet, null /* tabNameToSelect */); // When we get out of the dialog window, we want to re-eval the configuration. // validateConfiguration() can't be used here because the ConfigurationException isn't caught // anywhere, and fireEditorStateChanged() doesn't trigger any listeners called from here. // Emulating a user action triggers apply(), so that's what we're doing here. hiddenValidationTrigger.doClick(); toggleDockerfileSection(); }); updateSelectors(); toggleDockerfileSection(); }
From source file:com.google.cloud.tools.intellij.appengine.facet.flexible.FlexibleFacetEditor.java
License:Open Source License
FlexibleFacetEditor(@Nullable AppEngineDeploymentConfiguration deploymentConfiguration, @NotNull Project project) {/* w w w . j a v a 2s .c o m*/ this.appEngineHelper = new CloudSdkAppEngineHelper(project); this.deploymentConfiguration = deploymentConfiguration; appYaml.addBrowseFolderListener(GctBundle.message("appengine.flex.config.browse.app.yaml"), null /* description */, project, FileChooserDescriptorFactory.createSingleFileDescriptor() .withFileFilter(virtualFile -> Comparing.equal(virtualFile.getExtension(), "yaml") || Comparing.equal(virtualFile.getExtension(), "yml"))); appYaml.getTextField().getDocument().addDocumentListener(new DocumentAdapter() { @Override protected void textChanged(DocumentEvent event) { toggleDockerfileSection(); validateConfiguration(); } }); dockerfile.getTextField().getDocument().addDocumentListener(new DocumentAdapter() { @Override protected void textChanged(DocumentEvent event) { validateConfiguration(); } }); dockerfile.addBrowseFolderListener(GctBundle.message("appengine.flex.config.browse.dockerfile"), null /* description */, project, FileChooserDescriptorFactory.createSingleFileDescriptor()); genAppYamlButton.addActionListener(new GenerateConfigActionListener(project, "app.yaml", appEngineHelper::defaultAppYaml, appYaml, this::validateConfiguration)); genDockerfileButton.addActionListener(new GenerateConfigActionListener(project, "Dockerfile", () -> appEngineHelper.defaultDockerfile(AppEngineFlexibleDeploymentArtifactType.WAR), dockerfile, this::validateConfiguration)); appYaml.setText(deploymentConfiguration.getAppYamlPath()); dockerfile.setText(deploymentConfiguration.getDockerFilePath()); errorIcon.setIcon(Ide.Error); errorIcon.setVisible(false); errorMessage.setVisible(false); validateConfiguration(); toggleDockerfileSection(); }
From source file:com.oracle.plugin.jtreg.configuration.ui.JTRegConfigurable.java
License:Open Source License
private void createUIComponents() { jrePathEditor = new JrePathEditor(DefaultJreSelector.projectSdk(project)); jtregDir = new TextFieldWithBrowseButton(); jtregDir.addBrowseFolderListener("Directory with Strategies", null, project, FileChooserDescriptorFactory.createSingleFolderDescriptor()); workDirectory = new TextFieldWithBrowseButton(); workDirectory.addBrowseFolderListener("Directory with Strategies", null, project, FileChooserDescriptorFactory.createSingleFolderDescriptor()); file = new TextFieldWithBrowseButton(); file.addBrowseFolderListener("File with Strategies", null, project, FileChooserDescriptorFactory.createSingleFileDescriptor()); directory = new TextFieldWithBrowseButton(); directory.addBrowseFolderListener("Directory with Strategies", null, project, FileChooserDescriptorFactory.createSingleFolderDescriptor()); }
From source file:io.flutter.run.bazel.FlutterBazelConfigurationEditorForm.java
License:Open Source License
public FlutterBazelConfigurationEditorForm(final Project project) { final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileDescriptor(); myLaunchingScript.addBrowseFolderListener("Select Launching Script", "Choose launching script", project, descriptor);/* ww w . j a v a 2 s . c o m*/ //noinspection DialogTitleCapitalization this.myWorkingDirectory.addBrowseFolderListener(ExecutionBundle.message("select.working.directory.message"), null, project, FileChooserDescriptorFactory.createSingleFolderDescriptor()); }
From source file:io.flutter.run.bazelTest.FlutterBazelTestConfigurationEditorForm.java
License:Open Source License
public FlutterBazelTestConfigurationEditorForm(final Project project) { final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileDescriptor(); myLaunchingScript.addBrowseFolderListener("Select Launching Script", "Choose launching script", project, descriptor);/*from ww w .jav a2 s . c o m*/ DartCommandLineConfigurationEditorForm.initDartFileTextWithBrowse(project, myEntryFile); }
From source file:mobi.hsz.idea.latex.ui.ImageEditorActionDialog.java
License:Open Source License
public ImageEditorActionDialog(@NotNull Project project) { super(project); path.addBrowseFolderListener(LatexBundle.message("editor.image.dialog.browse"), null, project, FileChooserDescriptorFactory.createSingleFileDescriptor()); setTitle(LatexBundle.message("editor.image.dialog.title")); init();/*from w ww . j a va 2s . c o m*/ }
From source file:net.happybrackets.intellij_plugin.IntelliJPluginGUIManager.java
License:Apache License
/** * Make Configuration/Known devices pane. * @param fileType 0 == configuration, 1 == known devices. *///w w w. ja va 2s . c o m private Pane makeConfigurationPane(final int fileType) { final TextArea configField = new TextArea(); final String label = fileType == 0 ? "Configuration" : "Known Devices"; final String setting = fileType == 0 ? "controllerConfigPath" : "knownDevicesPath"; //configField.setPrefSize(400, 250); configField.setMinHeight(minTextAreaHeight); // Load initial config into text field. if (fileType == 0) { configField.setText(HappyBracketsToolWindow.getCurrentConfigString()); } else { StringBuilder map = new StringBuilder(); deviceConnection.getKnownDevices().forEach((hostname, id) -> map.append(hostname + " " + id + "\n")); configField.setText(map.toString()); } configField.textProperty().addListener((observable, oldValue, newValue) -> { configApplyButton[fileType].setDisable(false); }); Button loadButton = new Button("Load"); loadButton.setTooltip(new Tooltip("Load a new " + label.toLowerCase() + " file.")); loadButton.setOnMouseClicked(event -> { //select a file final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileDescriptor() .withShowHiddenFiles(true); descriptor.setTitle("Select " + label.toLowerCase() + " file"); String currentFile = HappyBracketsToolWindow.getSettings().getString(setting); VirtualFile vfile = currentFile == null ? null : LocalFileSystem.getInstance().findFileByPath(currentFile.replace(File.separatorChar, '/')); //needs to run in Swing event dispatch thread, and then back again to JFX thread!! SwingUtilities.invokeLater(() -> { VirtualFile[] virtualFile = FileChooser.chooseFiles(descriptor, null, vfile); if (virtualFile != null && virtualFile.length > 0 && virtualFile[0] != null) { Platform.runLater(() -> { loadConfigFile(virtualFile[0].getCanonicalPath(), label, configField, setting, loadButton, event); }); } }); }); Button saveButton = new Button("Save"); saveButton.setTooltip(new Tooltip("Save these " + label.toLowerCase() + " settings to a file.")); saveButton.setOnMouseClicked(event -> { //select a file FileSaverDescriptor fsd = new FileSaverDescriptor("Select " + label.toLowerCase() + " file to save to.", "Select " + label.toLowerCase() + " file to save to."); fsd.withShowHiddenFiles(true); final FileSaverDialog dialog = FileChooserFactory.getInstance().createSaveFileDialog(fsd, project); String currentFilePath = HappyBracketsToolWindow.getSettings().getString(setting); File currentFile = currentFilePath != null ? new File(HappyBracketsToolWindow.getSettings().getString(setting)) : null; VirtualFile baseDir = null; String currentName = null; if (currentFile != null && currentFile.exists()) { baseDir = LocalFileSystem.getInstance().findFileByPath( currentFile.getParentFile().getAbsolutePath().replace(File.separatorChar, '/')); currentName = currentFile.getName(); } else { baseDir = LocalFileSystem.getInstance().findFileByPath(HappyBracketsToolWindow.getPluginLocation()); currentName = fileType == 0 ? "controller-config.json" : "known_devices"; } final VirtualFile baseDirFinal = baseDir; final String currentNameFinal = currentName; //needs to run in Swing event dispatch thread, and then back again to JFX thread!! SwingUtilities.invokeLater(() -> { final VirtualFileWrapper wrapper = dialog.save(baseDirFinal, currentNameFinal); if (wrapper != null) { Platform.runLater(() -> { File configFile = wrapper.getFile(); // Check for overwrite of default config files (this doesn't apply to deployed plugin so disabling for now.) //if ((new File(HappyBracketsToolWindow.getDefaultControllerConfigPath())).getAbsolutePath().equals(configFile.getAbsolutePath()) || // (new File(HappyBracketsToolWindow.getDefaultKnownDevicesPath())).getAbsolutePath().equals(configFile.getAbsolutePath())) { // showPopup("Error saving " + label.toLowerCase() + ": cannot overwrite default configuration files.", saveButton, 5, event); //} try (PrintWriter out = new PrintWriter(configFile.getAbsolutePath())) { out.print(configField.getText()); HappyBracketsToolWindow.getSettings().set(setting, configFile.getAbsolutePath()); } catch (Exception ex) { showPopup("Error saving " + label.toLowerCase() + ": " + ex.getMessage(), saveButton, 5, event); } }); } }); }); Button resetButton = new Button("Reset"); resetButton.setTooltip(new Tooltip("Reset these " + label.toLowerCase() + " settings to their defaults.")); resetButton.setOnMouseClicked(event -> { HappyBracketsToolWindow.getSettings().clear(setting); if (fileType == 0) { loadConfigFile(HappyBracketsToolWindow.getDefaultControllerConfigPath(), label, configField, setting, resetButton, event); applyConfig(configField.getText()); } else { loadConfigFile(HappyBracketsToolWindow.getDefaultKnownDevicesPath(), label, configField, setting, resetButton, event); applyKnownDevices(configField.getText()); } }); configApplyButton[fileType] = new Button("Apply"); configApplyButton[fileType].setTooltip(new Tooltip("Apply these " + label.toLowerCase() + " settings.")); configApplyButton[fileType].setDisable(true); configApplyButton[fileType].setOnMouseClicked(event -> { configApplyButton[fileType].setDisable(true); if (fileType == 0) { applyConfig(configField.getText()); } else { applyKnownDevices(configField.getText()); } }); FlowPane buttons = new FlowPane(defaultElementSpacing, defaultElementSpacing); buttons.setAlignment(Pos.TOP_LEFT); buttons.getChildren().addAll(loadButton, saveButton, resetButton, configApplyButton[fileType]); // If this is the main configuration pane, include buttons to set preferred IP version. FlowPane ipvButtons = null; if (fileType == 0) { // Set IP version buttons. ipvButtons = new FlowPane(defaultElementSpacing, defaultElementSpacing); ipvButtons.setAlignment(Pos.TOP_LEFT); for (int ipv = 4; ipv <= 6; ipv += 2) { final int ipvFinal = ipv; Button setIPv = new Button("Set IntelliJ to prefer IPv" + ipv); String currentSetting = System.getProperty("java.net.preferIPv" + ipv + "Addresses"); if (currentSetting != null && currentSetting.toLowerCase().equals("true")) { setIPv.setDisable(true); } setIPv.setTooltip(new Tooltip("Set the JVM used by IntelliJ to prefer IPv" + ipv + " addresses by default.\nThis can help resolve IPv4/Ipv6 incompatibility issues in some cases.")); setIPv.setOnMouseClicked(event -> { // for the 32 and 64 bit versions of the options files. for (String postfix : new String[] { "", "64" }) { String postfix2 = ""; String filename = "/idea" + postfix + postfix2 + ".vmoptions"; // If this (Linux (and Mac?)) version of the file doesn't exist, try the Windows version. if (!Paths.get(PathManager.getBinPath() + filename).toFile().exists()) { postfix2 = ".exe"; filename = "/idea" + postfix + postfix2 + ".vmoptions"; if (!Paths.get(PathManager.getBinPath() + filename).toFile().exists()) { showPopup("An error occurred: could not find default configuration file.", setIPv, 5, event); return; } } // Create custom options files if they don't already exist. File custOptsFile = new File(PathManager.getCustomOptionsDirectory() + "/idea" + postfix + postfix2 + ".vmoptions"); if (!custOptsFile.exists()) { // Create copy of default. try { Files.copy(Paths.get(PathManager.getBinPath() + filename), custOptsFile.toPath()); } catch (IOException e) { logger.error("Error creating custom options file.", e); showPopup("Error creating custom options file: " + e.getMessage(), setIPv, 5, event); return; } } if (custOptsFile.exists()) { StringBuilder newOpts = new StringBuilder(); try (Stream<String> stream = Files.lines(custOptsFile.toPath())) { stream.forEach((line) -> { // Remove any existing preferences. if (!line.contains("java.net.preferIPv")) { newOpts.append(line + "\n"); } }); // Add new preference to end. newOpts.append("-Djava.net.preferIPv" + ipvFinal + "Addresses=true"); } catch (IOException e) { logger.error("Error creating custom options file.", e); showPopup("Error creating custom options file: " + e.getMessage(), setIPv, 5, event); return; } // Write new options to file. try (PrintWriter out = new PrintWriter(custOptsFile.getAbsolutePath())) { out.println(newOpts); } catch (FileNotFoundException e) { // This totally shouldn't happen. } } } showPopup("You must restart IntelliJ for the changes to take effect.", setIPv, 5, event); }); ipvButtons.getChildren().add(setIPv); } } VBox configPane = new VBox(defaultElementSpacing); configPane.setAlignment(Pos.TOP_LEFT); configPane.getChildren().addAll(makeTitle(label), configField, buttons); if (ipvButtons != null) { configPane.getChildren().add(ipvButtons); } return configPane; }
From source file:org.moe.idea.runconfig.configuration.MOERunConfigurationEditor.java
License:Apache License
private void showPropertiesChoicerDialog() { final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileDescriptor(); descriptor.setTitle("Select remote build properties file"); descriptor.setHideIgnored(true);//from ww w . j ava 2 s. c o m VirtualFile selected = FileChooser.chooseFile(descriptor, myProject, null); if (selected != null) { try { Properties property = RemoteSettings.readProperties(selected.getCanonicalPath()); String remoteHost = property.getProperty("host"); String port = property.getProperty("port"); port = port == null || port.isEmpty() ? "0" : port; int remotePort = Integer.parseInt(port); String remoteUser = property.getProperty("user"); String remoteKnownhosts = property.getProperty("knownhosts"); String remoteIdentity = property.getProperty("identity"); String remoteKeychainName = property.getProperty("keychain.name"); String remoteKeychainPass = property.getProperty("keychain.pass"); String timeout = property.getProperty("keychain.locktimeout"); timeout = timeout == null || timeout.isEmpty() ? "0" : timeout; int remoteKeychainLocktimeout = Integer.parseInt(timeout); String remoteGradleRepositories = property.getProperty("gradle.repositories"); updateRemoteBuildSettings(remoteHost, remotePort, remoteUser, remoteKnownhosts, remoteIdentity, remoteKeychainName, remoteKeychainPass, remoteKeychainLocktimeout, remoteGradleRepositories); } catch (Exception e) { showMessage("Unable load properties file"); } } }