blob: 4536fc8fe92c67a7d31ac6b68bb2a4bfc3b72be8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.netbeans.modules.gradle.options;
import org.netbeans.modules.gradle.GradleDistributionManager;
import org.netbeans.modules.gradle.spi.GradleSettings;
import java.awt.CardLayout;
import java.io.File;
import javax.swing.JFileChooser;
import org.netbeans.spi.options.OptionsPanelController;
import org.netbeans.modules.gradle.GradleDistributionManager.NbGradleVersion;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.util.List;
import java.util.concurrent.ExecutionException;
import javax.swing.ButtonModel;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.SwingWorker;
import org.netbeans.api.annotations.common.StaticResource;
import org.openide.LifecycleManager;
import org.openide.awt.NotificationDisplayer;
import org.openide.util.Exceptions;
import org.openide.util.ImageUtilities;
import org.openide.util.NbBundle;
import org.openide.util.NbBundle.Messages;
/**
*
* @author Laszlo Kishalmi
*/
@OptionsPanelController.Keywords(keywords = {"gradle"}, location = "Java", tabTitle = "Gradle")
public class SettingsPanel extends javax.swing.JPanel {
@StaticResource
private static final String RESTART_ICON = "org/netbeans/modules/gradle/resources/restart.png"; //NOI18
private final static String[] CARDS = {"Execution", "Appearance", "Dependencies", "Experimental"}; //NOI18N
private GradleDistributionManager gdm = GradleDistributionManager.get(GradleSettings.getDefault().getGradleUserHome());
/**
* Creates new form SettingsPanel
*/
public SettingsPanel() {
initComponents();
cbGradleVersion.setRenderer(new VersionCellRenderer(cbGradleVersion.getRenderer()));
lstCategories.setSelectedIndex(0);
cbDownloadLibs.setModel(new DefaultComboBoxModel<>(GradleSettings.DownloadLibsRule.values()));
cbDownloadSources.setModel(new DefaultComboBoxModel<>(GradleSettings.DownloadMiscRule.values()));
cbDownloadJavadoc.setModel(new DefaultComboBoxModel<>(GradleSettings.DownloadMiscRule.values()));
cbAllowExecution.setModel(new DefaultComboBoxModel<>(GradleSettings.GradleExecutionRule.values()));
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings({"unchecked", "rawtypes"})
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
bgUsedDistribution = new javax.swing.ButtonGroup();
jPanel3 = new javax.swing.JPanel();
lblCategories = new javax.swing.JLabel();
lstCategories = new javax.swing.JList<>();
pnlCards = new javax.swing.JPanel();
pnlExecution = new javax.swing.JPanel();
jPanel1 = new javax.swing.JPanel();
lblGradleUserHome = new javax.swing.JLabel();
tfGradleUserHome = new javax.swing.JTextField();
btGradleUserHome = new javax.swing.JButton();
lblGradleDistribution = new javax.swing.JLabel();
cbGradleVersion = new javax.swing.JComboBox<>();
rbUseStandardGradle = new javax.swing.JRadioButton();
rbUseCustomGradle = new javax.swing.JRadioButton();
tfUseCustomGradle = new javax.swing.JTextField();
btUseCustomGradle = new javax.swing.JButton();
cbStartDaemonOnStart = new javax.swing.JCheckBox();
cbPreferWrapper = new javax.swing.JCheckBox();
lbVersionInfo = new javax.swing.JLabel();
cbSilentInstall = new javax.swing.JCheckBox();
btDefaultHome = new javax.swing.JButton();
jPanel6 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
cbOffline = new javax.swing.JCheckBox();
cbSkipTest = new javax.swing.JCheckBox();
cbSkipCheck = new javax.swing.JCheckBox();
cbNoRebuild = new javax.swing.JCheckBox();
cbConfigureOnDemand = new javax.swing.JCheckBox();
lbAllowExecution = new javax.swing.JLabel();
cbAllowExecution = new javax.swing.JComboBox<>();
cbPreferMaven = new javax.swing.JCheckBox();
pnlAppearance = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
cbDisplayDescription = new javax.swing.JCheckBox();
cbHideEmptyConfig = new javax.swing.JCheckBox();
jPanel5 = new javax.swing.JPanel();
cbAlwaysShowOutput = new javax.swing.JCheckBox();
cbReuseOutputTabs = new javax.swing.JCheckBox();
cbReuseEditorOnStackTrace = new javax.swing.JCheckBox();
pnlDependencies = new javax.swing.JPanel();
lbDownloadLibs = new javax.swing.JLabel();
lbDownloadSources = new javax.swing.JLabel();
lbDownloadJavadoc = new javax.swing.JLabel();
cbDownloadJavadoc = new javax.swing.JComboBox<>();
cbDownloadSources = new javax.swing.JComboBox<>();
cbDownloadLibs = new javax.swing.JComboBox<>();
pnlExperimental = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
cbEnableCache = new javax.swing.JCheckBox();
cbOpenLazy = new javax.swing.JCheckBox();
setPreferredSize(new java.awt.Dimension(723, 417));
setLayout(new java.awt.BorderLayout());
org.openide.awt.Mnemonics.setLocalizedText(lblCategories, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.lblCategories.text")); // NOI18N
lstCategories.setModel(new javax.swing.AbstractListModel<String>() {
String[] strings = { "Execution", "Appearance", "Dependencies", "Experimental" };
public int getSize() { return strings.length; }
public String getElementAt(int i) { return strings[i]; }
});
lstCategories.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
lstCategories.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
lstCategoriesValueChanged(evt);
}
});
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(lstCategories, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblCategories, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(lblCategories)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lstCategories, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
add(jPanel3, java.awt.BorderLayout.WEST);
pnlCards.setPreferredSize(new java.awt.Dimension(800, 415));
pnlCards.setLayout(new java.awt.CardLayout());
pnlExecution.setPreferredSize(new java.awt.Dimension(800, 415));
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.jPanel1.border.title"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(lblGradleUserHome, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.lblGradleUserHome.text")); // NOI18N
tfGradleUserHome.setEditable(false);
org.openide.awt.Mnemonics.setLocalizedText(btGradleUserHome, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.btGradleUserHome.text")); // NOI18N
btGradleUserHome.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btGradleUserHomeActionPerformed(evt);
}
});
org.openide.awt.Mnemonics.setLocalizedText(lblGradleDistribution, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.lblGradleDistribution.text")); // NOI18N
cbGradleVersion.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
cbGradleVersionItemStateChanged(evt);
}
});
bgUsedDistribution.add(rbUseStandardGradle);
org.openide.awt.Mnemonics.setLocalizedText(rbUseStandardGradle, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.rbUseStandardGradle.text")); // NOI18N
rbUseStandardGradle.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
rbUseStandardGradleStateChanged(evt);
}
});
bgUsedDistribution.add(rbUseCustomGradle);
org.openide.awt.Mnemonics.setLocalizedText(rbUseCustomGradle, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.rbUseCustomGradle.text")); // NOI18N
rbUseCustomGradle.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
rbUseCustomGradleStateChanged(evt);
}
});
tfUseCustomGradle.setEditable(false);
tfUseCustomGradle.setText(org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.tfUseCustomGradle.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(btUseCustomGradle, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.btUseCustomGradle.text")); // NOI18N
btUseCustomGradle.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btUseCustomGradleActionPerformed(evt);
}
});
org.openide.awt.Mnemonics.setLocalizedText(cbStartDaemonOnStart, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbStartDaemonOnStart.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbPreferWrapper, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbPreferWrapper.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(lbVersionInfo, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.lbVersionInfo.text")); // NOI18N
lbVersionInfo.setEnabled(false);
org.openide.awt.Mnemonics.setLocalizedText(cbSilentInstall, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbSilentInstall.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(btDefaultHome, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.btDefaultHome.text")); // NOI18N
btDefaultHome.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btDefaultHomeActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
jPanel6.setLayout(jPanel6Layout);
jPanel6Layout.setHorizontalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblGradleUserHome)
.addComponent(lblGradleDistribution))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(231, 231, 231)
.addComponent(lbVersionInfo, javax.swing.GroupLayout.DEFAULT_SIZE, 59, Short.MAX_VALUE))
.addComponent(rbUseStandardGradle, javax.swing.GroupLayout.PREFERRED_SIZE, 235, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbGradleVersion, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(rbUseCustomGradle)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tfUseCustomGradle))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addComponent(tfGradleUserHome)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btGradleUserHome, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btUseCustomGradle, javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE)
.addComponent(btDefaultHome, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cbStartDaemonOnStart)
.addComponent(cbPreferWrapper))
.addGap(0, 140, Short.MAX_VALUE))))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(cbSilentInstall)))
.addContainerGap())
);
jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btGradleUserHome, btUseCustomGradle});
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblGradleUserHome)
.addComponent(tfGradleUserHome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btGradleUserHome)
.addComponent(btDefaultHome))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblGradleDistribution)
.addComponent(cbGradleVersion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(rbUseStandardGradle)
.addComponent(lbVersionInfo))
.addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(rbUseCustomGradle)
.addComponent(tfUseCustomGradle, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btUseCustomGradle))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbPreferWrapper)
.addGap(44, 44, 44)
.addComponent(cbStartDaemonOnStart)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(cbSilentInstall))
);
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.jPanel2.border.title"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbOffline, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbOffline.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbSkipTest, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbSkipTest.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbSkipCheck, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbSkipCheck.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbNoRebuild, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbNoRebuild.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbConfigureOnDemand, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbConfigureOnDemand.text")); // NOI18N
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(cbConfigureOnDemand)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cbOffline)
.addComponent(cbNoRebuild))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 82, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(cbSkipCheck, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(cbSkipTest, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cbOffline)
.addComponent(cbSkipCheck))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cbSkipTest)
.addComponent(cbNoRebuild))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbConfigureOnDemand)
.addGap(72, 72, 72))
);
lbAllowExecution.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
org.openide.awt.Mnemonics.setLocalizedText(lbAllowExecution, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.lbAllowExecution.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbPreferMaven, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbPreferMaven.text")); // NOI18N
javax.swing.GroupLayout pnlExecutionLayout = new javax.swing.GroupLayout(pnlExecution);
pnlExecution.setLayout(pnlExecutionLayout);
pnlExecutionLayout.setHorizontalGroup(
pnlExecutionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(pnlExecutionLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnlExecutionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlExecutionLayout.createSequentialGroup()
.addComponent(cbPreferMaven)
.addGap(0, 346, Short.MAX_VALUE))
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlExecutionLayout.createSequentialGroup()
.addComponent(lbAllowExecution, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbAllowExecution, javax.swing.GroupLayout.PREFERRED_SIZE, 280, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
pnlExecutionLayout.setVerticalGroup(
pnlExecutionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlExecutionLayout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnlExecutionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cbAllowExecution, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbAllowExecution))
.addGap(11, 11, 11)
.addComponent(cbPreferMaven)
.addContainerGap())
);
pnlCards.add(pnlExecution, "Execution");
pnlAppearance.setPreferredSize(new java.awt.Dimension(800, 415));
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.jPanel4.border.title"))); // NOI18N
cbDisplayDescription.setSelected(true);
org.openide.awt.Mnemonics.setLocalizedText(cbDisplayDescription, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbDisplayDescription.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbHideEmptyConfig, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbHideEmptyConfig.text")); // NOI18N
javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cbDisplayDescription, javax.swing.GroupLayout.DEFAULT_SIZE, 691, Short.MAX_VALUE)
.addComponent(cbHideEmptyConfig, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(cbDisplayDescription)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbHideEmptyConfig)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.jPanel5.border.title"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbAlwaysShowOutput, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbAlwaysShowOutput.text")); // NOI18N
cbReuseOutputTabs.setSelected(true);
org.openide.awt.Mnemonics.setLocalizedText(cbReuseOutputTabs, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbReuseOutputTabs.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbReuseEditorOnStackTrace, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbReuseEditorOnStackTrace.text")); // NOI18N
javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
jPanel5.setLayout(jPanel5Layout);
jPanel5Layout.setHorizontalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cbAlwaysShowOutput, javax.swing.GroupLayout.DEFAULT_SIZE, 697, Short.MAX_VALUE)
.addComponent(cbReuseOutputTabs, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(cbReuseEditorOnStackTrace, javax.swing.GroupLayout.DEFAULT_SIZE, 697, Short.MAX_VALUE))
.addContainerGap())
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addComponent(cbAlwaysShowOutput)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbReuseOutputTabs)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbReuseEditorOnStackTrace)
.addContainerGap(36, Short.MAX_VALUE))
);
javax.swing.GroupLayout pnlAppearanceLayout = new javax.swing.GroupLayout(pnlAppearance);
pnlAppearance.setLayout(pnlAppearanceLayout);
pnlAppearanceLayout.setHorizontalGroup(
pnlAppearanceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlAppearanceLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnlAppearanceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
pnlAppearanceLayout.setVerticalGroup(
pnlAppearanceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlAppearanceLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(204, Short.MAX_VALUE))
);
pnlCards.add(pnlAppearance, "Appearance");
pnlDependencies.setPreferredSize(new java.awt.Dimension(800, 415));
lbDownloadLibs.setLabelFor(cbDownloadLibs);
org.openide.awt.Mnemonics.setLocalizedText(lbDownloadLibs, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.lbDownloadLibs.text")); // NOI18N
lbDownloadSources.setLabelFor(cbDownloadSources);
org.openide.awt.Mnemonics.setLocalizedText(lbDownloadSources, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.lbDownloadSources.text")); // NOI18N
lbDownloadJavadoc.setLabelFor(cbDownloadJavadoc);
org.openide.awt.Mnemonics.setLocalizedText(lbDownloadJavadoc, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.lbDownloadJavadoc.text")); // NOI18N
cbDownloadJavadoc.setToolTipText(org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbDownloadJavadoc.toolTipText")); // NOI18N
cbDownloadJavadoc.setEnabled(false);
cbDownloadSources.setToolTipText(org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbDownloadSources.toolTipText")); // NOI18N
cbDownloadSources.setEnabled(false);
javax.swing.GroupLayout pnlDependenciesLayout = new javax.swing.GroupLayout(pnlDependencies);
pnlDependencies.setLayout(pnlDependenciesLayout);
pnlDependenciesLayout.setHorizontalGroup(
pnlDependenciesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlDependenciesLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnlDependenciesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlDependenciesLayout.createSequentialGroup()
.addComponent(lbDownloadLibs)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbDownloadLibs, 0, 347, Short.MAX_VALUE))
.addGroup(pnlDependenciesLayout.createSequentialGroup()
.addComponent(lbDownloadJavadoc)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbDownloadJavadoc, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(pnlDependenciesLayout.createSequentialGroup()
.addComponent(lbDownloadSources, javax.swing.GroupLayout.PREFERRED_SIZE, 360, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbDownloadSources, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addContainerGap())
);
pnlDependenciesLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {lbDownloadJavadoc, lbDownloadLibs, lbDownloadSources});
pnlDependenciesLayout.setVerticalGroup(
pnlDependenciesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlDependenciesLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnlDependenciesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbDownloadLibs)
.addComponent(cbDownloadLibs, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnlDependenciesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbDownloadSources)
.addComponent(cbDownloadSources, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnlDependenciesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbDownloadJavadoc)
.addComponent(cbDownloadJavadoc, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(352, Short.MAX_VALUE))
);
pnlCards.add(pnlDependencies, "Dependencies");
org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.jLabel1.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbEnableCache, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbEnableCache.text")); // NOI18N
cbEnableCache.setToolTipText(org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbEnableCache.toolTipText")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbOpenLazy, org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbOpenLazy.text")); // NOI18N
cbOpenLazy.setToolTipText(org.openide.util.NbBundle.getMessage(SettingsPanel.class, "SettingsPanel.cbOpenLazy.toolTipText")); // NOI18N
javax.swing.GroupLayout pnlExperimentalLayout = new javax.swing.GroupLayout(pnlExperimental);
pnlExperimental.setLayout(pnlExperimentalLayout);
pnlExperimentalLayout.setHorizontalGroup(
pnlExperimentalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlExperimentalLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnlExperimentalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addGroup(pnlExperimentalLayout.createSequentialGroup()
.addGap(6, 6, 6)
.addGroup(pnlExperimentalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cbOpenLazy)
.addComponent(cbEnableCache))))
.addContainerGap(423, Short.MAX_VALUE))
);
pnlExperimentalLayout.setVerticalGroup(
pnlExperimentalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlExperimentalLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbEnableCache)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbOpenLazy)
.addContainerGap(362, Short.MAX_VALUE))
);
pnlCards.add(pnlExperimental, "Experimental");
add(pnlCards, java.awt.BorderLayout.CENTER);
}// </editor-fold>//GEN-END:initComponents
@Messages("TIT_CustomGradle=Select Gradle Distribution")
private void btUseCustomGradleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btUseCustomGradleActionPerformed
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle(Bundle.TIT_CustomGradle());
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setFileHidingEnabled(false);
String path = tfUseCustomGradle.getText();
if (path == null || path.trim().length() == 0) {
path = GradleSettings.getDefault().getGradleUserHome().getAbsolutePath();
}
if (path.length() > 0) {
File f = new File(path);
if (f.exists()) {
chooser.setSelectedFile(f);
}
}
if (JFileChooser.APPROVE_OPTION == chooser.showOpenDialog(this)) {
File distDir = chooser.getSelectedFile();
tfUseCustomGradle.setText(distDir.getAbsolutePath());
}
}//GEN-LAST:event_btUseCustomGradleActionPerformed
private void lstCategoriesValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstCategoriesValueChanged
int idx = lstCategories.getSelectedIndex();
CardLayout cardLayout = (CardLayout) pnlCards.getLayout();
if ((idx >= 0) && (idx < CARDS.length)) {
cardLayout.show(pnlCards, CARDS[idx]);
}
}//GEN-LAST:event_lstCategoriesValueChanged
@Messages("LBL_IncompatibleGradle=This version does not work with NetBeans!")
private void cbGradleVersionItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cbGradleVersionItemStateChanged
NbGradleVersion v = gdm.createVersion(evt.getItem().toString());
if ((v != null) && (evt.getStateChange() == ItemEvent.SELECTED)) {
if (v.isBlackListed()) {
lbVersionInfo.setText(Bundle.LBL_IncompatibleGradle());
} else {
lbVersionInfo.setText(null);
}
}
}//GEN-LAST:event_cbGradleVersionItemStateChanged
private void rbUseStandardGradleStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_rbUseStandardGradleStateChanged
boolean selected = rbUseStandardGradle.isSelected();
cbGradleVersion.setEnabled(selected);
}//GEN-LAST:event_rbUseStandardGradleStateChanged
private void rbUseCustomGradleStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_rbUseCustomGradleStateChanged
boolean selected = rbUseCustomGradle.isSelected();
tfUseCustomGradle.setEnabled(selected);
btUseCustomGradle.setEnabled(selected);
}//GEN-LAST:event_rbUseCustomGradleStateChanged
@Messages("TIT_GradleUserHome=Select Gradle User Home")
private void btGradleUserHomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btGradleUserHomeActionPerformed
final GradleSettings settings = GradleSettings.getDefault();
settings.getGradleUserHome();
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle(Bundle.TIT_GradleUserHome());
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setFileHidingEnabled(false);
String path = tfGradleUserHome.getText();
if (path.length() > 0) {
File f = new File(path);
if (f.exists()) {
chooser.setSelectedFile(f);
}
}
if (JFileChooser.APPROVE_OPTION == chooser.showOpenDialog(this)) {
File home = chooser.getSelectedFile();
tfGradleUserHome.setText(home.getAbsolutePath());
gdm = GradleDistributionManager.get(home);
cbGradleVersion.repaint();
}
}//GEN-LAST:event_btGradleUserHomeActionPerformed
private void btDefaultHomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btDefaultHomeActionPerformed
tfGradleUserHome.setText(getDefaultGradleUserHome());
}//GEN-LAST:event_btDefaultHomeActionPerformed
public void setValues() {
final GradleSettings settings = GradleSettings.getDefault();
tfGradleUserHome.setText(settings.getGradleUserHome().getAbsolutePath());
tfUseCustomGradle.setText(settings.getDistributionHome());
cbPreferWrapper.setSelected(settings.isWrapperPreferred());
ButtonModel bm = settings.useCustomGradle()
? rbUseCustomGradle.getModel() : rbUseStandardGradle.getModel();
bgUsedDistribution.setSelected(bm, true);
cbStartDaemonOnStart.setSelected(settings.isStartDaemonOnStart());
cbSilentInstall.setSelected(settings.isSilentInstall());
cbOffline.setSelected(settings.isOffline());
cbConfigureOnDemand.setSelected(settings.isConfigureOnDemand());
cbNoRebuild.setSelected(settings.getNoRebuild());
cbSkipCheck.setSelected(settings.skipCheck());
cbSkipTest.setSelected(settings.skipTest());
cbHideEmptyConfig.setSelected(settings.isHideEmptyConfigurations());
cbAlwaysShowOutput.setSelected(settings.isAlwaysShowOutput());
cbReuseOutputTabs.setSelected(settings.isReuseOutputTabs());
cbDisplayDescription.setSelected(settings.isDisplayDesctiption());
cbReuseEditorOnStackTrace.setSelected(settings.isReuseEditorOnStackTace());
cbEnableCache.setSelected(!settings.isCacheDisabled());
cbOpenLazy.setSelected(settings.isOpenLazy());
cbPreferMaven.setSelected(settings.isPreferMaven());
cbDownloadLibs.setSelectedItem(settings.getDownloadLibs());
cbDownloadSources.setSelectedItem(settings.getDownloadSources());
cbDownloadJavadoc.setSelectedItem(settings.getDownloadJavadoc());
cbAllowExecution.setSelectedItem(settings.getGradleExecutionRule());
new SwingWorker<List<NbGradleVersion>, Void>() {
@Override
protected List<NbGradleVersion> doInBackground() throws Exception {
return gdm.availableVersions(true);
}
@Override
protected void done() {
try {
NbGradleVersion[] items = get().toArray(new NbGradleVersion[0]);
ComboBoxModel<NbGradleVersion> model = new DefaultComboBoxModel<>(items);
cbGradleVersion.setModel(model);
model.setSelectedItem(settings.getGradleVersion());
} catch (InterruptedException | ExecutionException ex) {
Exceptions.printStackTrace(ex);
}
}
}.execute();
}
@Messages({
"TIT_RestartIDE=Restart IDE",
"HINT_RestartIDE=Click here to restart IDE and apply new settings."
})
public void applyValues() {
GradleSettings settings = GradleSettings.getDefault();
if (getDefaultGradleUserHome().equals(tfGradleUserHome.getText())) {
settings.setGradleUserHome(null);
} else {
settings.setGradleUserHome(new File(tfGradleUserHome.getText()));
}
settings.setGradleVersion(cbGradleVersion.getSelectedItem().toString());
settings.setDistributionHome(tfUseCustomGradle.getText());
settings.setWrapperPreferred(cbPreferWrapper.isSelected());
boolean useCustomGradle = bgUsedDistribution.getSelection() == rbUseCustomGradle.getModel();
settings.setUseCustomGradle(useCustomGradle);
settings.setStartDaemonOnStart(cbStartDaemonOnStart.isSelected());
settings.setSilentInstall(cbSilentInstall.isSelected());
settings.setOffline(cbOffline.isSelected());
settings.setConfigureOnDemand(cbConfigureOnDemand.isSelected());
settings.setNoRebuild(cbNoRebuild.isSelected());
settings.setSkipCheck(cbSkipCheck.isSelected());
settings.setSkipTest(cbSkipTest.isSelected());
settings.setHideEmptyConfigurations(cbHideEmptyConfig.isSelected());
settings.setAlwaysShowOutput(cbAlwaysShowOutput.isSelected());
settings.setReuseOutputTabs(cbReuseOutputTabs.isSelected());
settings.setDisplayDescription(cbDisplayDescription.isSelected());
settings.setReuseEditorOnStackTrace(cbReuseEditorOnStackTrace.isSelected());
settings.setCacheDisabled(!cbEnableCache.isSelected());
settings.setOpenLazy(cbOpenLazy.isSelected());
settings.setDownloadLibs((GradleSettings.DownloadLibsRule) cbDownloadLibs.getSelectedItem());
settings.setDownloadSources((GradleSettings.DownloadMiscRule) cbDownloadSources.getSelectedItem());
settings.setDownloadJavadoc((GradleSettings.DownloadMiscRule) cbDownloadJavadoc.getSelectedItem());
settings.setGradleExecutionRule((GradleSettings.GradleExecutionRule) cbAllowExecution.getSelectedItem());
if (settings.isPreferMaven() != cbPreferMaven.isSelected()) {
settings.setPreferMaven(cbPreferMaven.isSelected());
NotificationDisplayer.getDefault().notify(Bundle.TIT_RestartIDE(),
ImageUtilities.loadImageIcon(RESTART_ICON, true),
Bundle.HINT_RestartIDE(), (ActionEvent e) -> {
LifecycleManager.getDefault().markForRestart();
LifecycleManager.getDefault().exit();
});
}
}
public boolean hasChanges() {
GradleSettings settings = GradleSettings.getDefault();
boolean isChanged = !settings.getDistributionHome().equals(tfUseCustomGradle.getText());
isChanged |= settings.isWrapperPreferred() != cbPreferWrapper.isSelected();
isChanged |= !settings.getGradleVersion().equals(String.valueOf(cbGradleVersion.getSelectedItem()));
boolean useCustomGradle = bgUsedDistribution.getSelection() == rbUseCustomGradle.getModel();
isChanged |= settings.useCustomGradle() != useCustomGradle;
isChanged |= settings.isStartDaemonOnStart() != cbStartDaemonOnStart.isSelected();
isChanged |= settings.isSilentInstall() != cbSilentInstall.isSelected();
isChanged |= settings.isOffline() != cbOffline.isSelected();
isChanged |= settings.isConfigureOnDemand() != cbConfigureOnDemand.isSelected();
isChanged |= settings.getNoRebuild() != cbNoRebuild.isSelected();
isChanged |= settings.skipCheck() != cbSkipCheck.isSelected();
isChanged |= settings.skipTest() != cbSkipTest.isSelected();
isChanged |= settings.isDisplayDesctiption() != cbDisplayDescription.isSelected();
isChanged |= settings.isHideEmptyConfigurations() != cbHideEmptyConfig.isSelected();
isChanged |= settings.isAlwaysShowOutput() != cbAlwaysShowOutput.isSelected();
isChanged |= settings.isReuseOutputTabs() != cbReuseOutputTabs.isSelected();
isChanged |= settings.isReuseEditorOnStackTace() != cbReuseEditorOnStackTrace.isSelected();
isChanged |= settings.isCacheDisabled() == cbEnableCache.isSelected();
isChanged |= settings.isOpenLazy() != cbOpenLazy.isSelected();
isChanged |= settings.isPreferMaven() != cbPreferMaven.isSelected();
isChanged |= settings.getDownloadLibs() != cbDownloadLibs.getSelectedItem();
isChanged |= settings.getDownloadSources() != cbDownloadSources.getSelectedItem();
isChanged |= settings.getDownloadJavadoc() != cbDownloadJavadoc.getSelectedItem();
isChanged |= settings.getGradleExecutionRule() != cbAllowExecution.getSelectedItem();
return isChanged;
}
private class VersionCellRenderer extends DefaultListCellRenderer {
@SuppressWarnings("rawtypes")
final ListCellRenderer delegate;
@SuppressWarnings("rawtypes")
public VersionCellRenderer(ListCellRenderer delegate) {
this.delegate = delegate;
}
@Override
@NbBundle.Messages (value = {
"NbGradleVersion.autoInstall_TXT=<html>This version is not available on this system<br/>It is going to be installed automatically.",
"NbGradleVersion.blacklist_TXT=<html>This version is known to have issues with NetBeans, hence usage is not recommended."
})
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
@SuppressWarnings("unchecked")
Component cmp = delegate.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (cmp instanceof JLabel) {
JLabel label = (JLabel) cmp;
label.setHorizontalAlignment(RIGHT);
if (value != null) {
NbGradleVersion version = gdm.createVersion(value.toString());
if (!version.isAvailable()) {
label.setToolTipText(Bundle.NbGradleVersion_autoInstall_TXT());
label.setForeground(Color.gray);
}
if (version.isBlackListed()) {
label.setToolTipText(Bundle.NbGradleVersion_blacklist_TXT());
label.setForeground(Color.red);
}
}
}
return cmp;
}
}
private static String getRawGradleUserHome() {
return GradleSettings.getDefault().getPreferences().get(GradleSettings.PROP_GRADLE_USER_HOME, null);
}
private static String getDefaultGradleUserHome() {
String dir = System.getenv("GRADLE_USER_HOME"); //NOI18N
return dir != null ? dir : new File(System.getProperty("user.home"), ".gradle").getAbsolutePath(); //NOI18N
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.ButtonGroup bgUsedDistribution;
private javax.swing.JButton btDefaultHome;
private javax.swing.JButton btGradleUserHome;
private javax.swing.JButton btUseCustomGradle;
private javax.swing.JComboBox<GradleSettings.GradleExecutionRule> cbAllowExecution;
private javax.swing.JCheckBox cbAlwaysShowOutput;
private javax.swing.JCheckBox cbConfigureOnDemand;
private javax.swing.JCheckBox cbDisplayDescription;
private javax.swing.JComboBox<GradleSettings.DownloadMiscRule> cbDownloadJavadoc;
private javax.swing.JComboBox<GradleSettings.DownloadLibsRule> cbDownloadLibs;
private javax.swing.JComboBox<GradleSettings.DownloadMiscRule> cbDownloadSources;
private javax.swing.JCheckBox cbEnableCache;
private javax.swing.JComboBox<NbGradleVersion> cbGradleVersion;
private javax.swing.JCheckBox cbHideEmptyConfig;
private javax.swing.JCheckBox cbNoRebuild;
private javax.swing.JCheckBox cbOffline;
private javax.swing.JCheckBox cbOpenLazy;
private javax.swing.JCheckBox cbPreferMaven;
private javax.swing.JCheckBox cbPreferWrapper;
private javax.swing.JCheckBox cbReuseEditorOnStackTrace;
private javax.swing.JCheckBox cbReuseOutputTabs;
private javax.swing.JCheckBox cbSilentInstall;
private javax.swing.JCheckBox cbSkipCheck;
private javax.swing.JCheckBox cbSkipTest;
private javax.swing.JCheckBox cbStartDaemonOnStart;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JLabel lbAllowExecution;
private javax.swing.JLabel lbDownloadJavadoc;
private javax.swing.JLabel lbDownloadLibs;
private javax.swing.JLabel lbDownloadSources;
private javax.swing.JLabel lbVersionInfo;
private javax.swing.JLabel lblCategories;
private javax.swing.JLabel lblGradleDistribution;
private javax.swing.JLabel lblGradleUserHome;
private javax.swing.JList<String> lstCategories;
private javax.swing.JPanel pnlAppearance;
private javax.swing.JPanel pnlCards;
private javax.swing.JPanel pnlDependencies;
private javax.swing.JPanel pnlExecution;
private javax.swing.JPanel pnlExperimental;
private javax.swing.JRadioButton rbUseCustomGradle;
private javax.swing.JRadioButton rbUseStandardGradle;
private javax.swing.JTextField tfGradleUserHome;
private javax.swing.JTextField tfUseCustomGradle;
// End of variables declaration//GEN-END:variables
}