package org.intellij.sonar.configuration.module;
import static org.intellij.sonar.persistence.SonarServers.NO_SONAR;
import static org.intellij.sonar.persistence.SonarServers.PROJECT;
import static org.intellij.sonar.util.UIUtil.makeObj;
import java.util.Collection;
import java.util.Optional;
import javax.swing.*;
import com.intellij.openapi.project.Project;
import org.intellij.sonar.configuration.partials.SonarServersView;
import org.intellij.sonar.persistence.ProjectSettings;
import org.intellij.sonar.persistence.Settings;
import org.intellij.sonar.persistence.SonarServerConfig;
import org.intellij.sonar.persistence.SonarServers;
public class ModuleSonarServersView extends SonarServersView {
public ModuleSonarServersView(
JComboBox mySonarServersComboBox,
JButton myAddSonarServerButton,
JButton myEditSonarServerButton,
JButton myRemoveSonarServerButton,
Project myProject
) {
super(mySonarServersComboBox,myAddSonarServerButton,myEditSonarServerButton,myRemoveSonarServerButton,myProject);
}
@Override
public String getSelectedItem() {
final String selectedItem = super.getSelectedItem();
if (SonarServers.PROJECT.equals(selectedItem)) {
final Settings settings = ProjectSettings.getInstance(myProject).getState();
return null != settings
? settings.getServerName()
: NO_SONAR;
}
return selectedItem;
}
@Override
protected boolean editAndRemoveButtonsCanBeEnabled() {
final boolean isNoSonarSelected = NO_SONAR.equals(mySonarServersComboBox.getSelectedItem().toString());
final boolean isProjectSonarSelected = PROJECT.equals(mySonarServersComboBox.getSelectedItem().toString());
return !isNoSonarSelected && !isProjectSonarSelected;
}
@Override
protected void initSonarServersComboBox() {
Optional<Collection<SonarServerConfig>> sonarServerConfigurationBeans = SonarServers.getAll();
if (sonarServerConfigurationBeans.isPresent()) {
mySonarServersComboBox.removeAllItems();
mySonarServersComboBox.addItem(makeObj(PROJECT));
mySonarServersComboBox.addItem(makeObj(NO_SONAR));
for (SonarServerConfig sonarServerConfigBean : sonarServerConfigurationBeans.get()) {
mySonarServersComboBox.addItem(makeObj(sonarServerConfigBean.getName()));
}
}
}
}