package com.demandware.studio.facet;
import com.demandware.studio.settings.DWSettingsProvider;
import com.intellij.facet.ui.FacetEditorContext;
import com.intellij.facet.ui.FacetEditorTab;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
public class DWFacetEditorTab extends FacetEditorTab {
private final DWSettingsProvider mySettingsProvider;
public DWFacetEditorTab(FacetEditorContext editorContext) {
mySettingsProvider = DWSettingsProvider.getInstance(editorContext.getModule());
}
private JTextField hostnameField;
private JTextField usernameField;
private JTextField versionField;
private JPasswordField passwordField;
private JPanel dwFacetEditorTab;
private JCheckBox autoUploadEnabledField;
public String getHostname() {
return hostnameField.getText();
}
public String getUsername() {
return usernameField.getText();
}
public String getVersion() {
return versionField.getText();
}
public String getPassword() {
return String.valueOf(passwordField.getPassword());
}
public boolean getAutoUploadEnabled() {
return autoUploadEnabledField.isSelected();
}
public void setHostname(String hostname) {
hostnameField.setText(hostname);
}
public void setUsername(String username) {
usernameField.setText(username);
}
public void setVersion(String version) {
versionField.setText(version);
}
public void setPassword(String password) {
passwordField.setText(password);
}
public void setAutoUploadEnabled(boolean checked) {
autoUploadEnabledField.setSelected(checked);
}
private void createUIComponents() {
// TODO: place custom component creation code here
}
@NotNull
@Override
public JComponent createComponent() {
return dwFacetEditorTab;
}
@Override
public void apply() {
mySettingsProvider.setHostname(getHostname());
mySettingsProvider.setUsername(getUsername());
mySettingsProvider.setPassword(getPassword());
mySettingsProvider.setVersion(getVersion());
mySettingsProvider.setAutoUploadEnabled(getAutoUploadEnabled());
}
@Override
public void reset() {
setHostname(mySettingsProvider.getHostname());
setUsername(mySettingsProvider.getUsername());
setPassword(mySettingsProvider.getPassword());
setVersion(mySettingsProvider.getVersion());
setAutoUploadEnabled(mySettingsProvider.getAutoUploadEnabled());
}
@Override
public boolean isModified() {
return !getHostname().equals(mySettingsProvider.getHostname()) ||
!getUsername().equals(mySettingsProvider.getUsername()) ||
!getPassword().equals(mySettingsProvider.getPassword()) ||
!getVersion().equals(mySettingsProvider.getVersion()) ||
!getAutoUploadEnabled() == mySettingsProvider.getAutoUploadEnabled();
}
@Override
public void disposeUIResources() {
}
@Nls
@Override
public String getDisplayName() {
return "Demandware";
}
}