package org.netbeans.gradle.project.properties.global;
import java.beans.PropertyChangeListener;
import javax.swing.JComponent;
import org.netbeans.gradle.project.NbStrings;
import org.netbeans.gradle.project.api.config.ActiveSettingsQuery;
import org.netbeans.gradle.project.api.config.ProfileKey;
import org.netbeans.gradle.project.api.config.ui.ProfileEditor;
import org.netbeans.gradle.project.api.config.ui.ProfileInfo;
import org.netbeans.gradle.project.properties.ui.GlobalGradleSettingsPanel;
import org.netbeans.spi.options.OptionsPanelController;
import org.openide.util.HelpCtx;
import org.openide.util.Lookup;
@OptionsPanelController.SubRegistration(
location = "Advanced",
displayName = "#AdvancedOption_DisplayName_Gradle",
keywords = "#AdvancedOption_Keywords_Gradle",
keywordsCategory = "Advanced/Gradle")
public final class GradleOptionsPanelController extends OptionsPanelController {
private GlobalGradleSettingsPanel settingsPanel;
private ProfileEditor profileEditor;
private GlobalGradleSettingsPanel getPanel() {
if (settingsPanel == null) {
settingsPanel = new GlobalGradleSettingsPanel();
update();
}
return settingsPanel;
}
private static ActiveSettingsQuery getSettings() {
return CommonGlobalSettings.getDefaultActiveSettingsQuery();
}
private ProfileEditor getEditor() {
ProfileEditor result = profileEditor;
if (result == null) {
ProfileInfo profileInfo = new ProfileInfo(ProfileKey.GLOBAL_PROFILE, NbStrings.getGlobalProfileName());
result = getPanel().startEditingProfile(profileInfo, getSettings());
}
return result;
}
@Override
public void update() {
ProfileEditor editor = getEditor();
editor.readFromSettings().displaySettings();
}
@Override
public void applyChanges() {
ProfileEditor editor = getEditor();
editor.readFromGui().saveSettings();
}
@Override
public void cancel() {
}
@Override
public boolean isValid() {
return true;
}
@Override
public boolean isChanged() {
return true;
}
@Override
public HelpCtx getHelpCtx() {
return null;
}
@Override
public JComponent getComponent(Lookup masterLookup) {
return getPanel();
}
@Override
public void addPropertyChangeListener(PropertyChangeListener l) {
}
@Override
public void removePropertyChangeListener(PropertyChangeListener l) {
}
}