package pl.net.bluesoft.rnd.pt.ext.bpmnotifications.portlet.components; import com.vaadin.ui.CheckBox; import com.vaadin.ui.Component; import com.vaadin.ui.FormLayout; import com.vaadin.ui.PasswordField; import com.vaadin.ui.TextField; import pl.net.bluesoft.rnd.processtool.plugins.ProcessToolRegistry; import pl.net.bluesoft.rnd.pt.ext.bpmnotifications.dao.BpmNotificationMailPropertiesDAO; import pl.net.bluesoft.rnd.pt.ext.bpmnotifications.model.BpmNotificationMailProperties; import pl.net.bluesoft.rnd.util.i18n.I18NSource; import java.util.List; /** * User: POlszewski * Date: 2012-10-12 * Time: 21:22 */ public class MailPropertiesPanel extends ItemEditorLayout<BpmNotificationMailProperties> { private TextField profileName; private TextField smtpHost; private TextField smtpPort; private TextField smtpUser; private PasswordField smtpPassword; private CheckBox smtpAuth; private TextField smtpSocketFactoryPort; private TextField smtpSocketFactoryClass; private TextField sslSocketFactoryClass; private CheckBox disablePlainAuth; private TextField transportProtocol; private CheckBox startTls; private CheckBox debug; public MailPropertiesPanel(I18NSource i18NSource, ProcessToolRegistry registry) { super(BpmNotificationMailProperties.class, i18NSource, registry); buildLayout(); } @Override protected Component createItemDetailsLayout() { FormLayout formLayout = new FormLayout(); formLayout.addComponent(profileName = textField("bpmnot.profile", 400)); formLayout.addComponent(smtpHost = textField("SMTP Host", 400)); formLayout.addComponent(smtpPort = textField("SMTP Port", 400)); formLayout.addComponent(smtpUser = textField("SMTP User", 400)); formLayout.addComponent(smtpPassword = passwordField("SMTP Password", 400)); formLayout.addComponent(smtpAuth = checkBox("SMTP Auth")); formLayout.addComponent(smtpSocketFactoryPort = textField("SMTP Socket Factory Port", 400)); formLayout.addComponent(smtpSocketFactoryClass = textField("SMTP Socket Factory Class", -1)); formLayout.addComponent(sslSocketFactoryClass = textField("SSL Socket Factory Class", -1)); formLayout.addComponent(disablePlainAuth = checkBox("Disable Plain Auth")); formLayout.addComponent(transportProtocol = textField("Transport Protocol", 400)); formLayout.addComponent(startTls = checkBox("Start TLS")); formLayout.addComponent(debug = checkBox("Debug")); return formLayout; } @Override protected void clearDetails() { profileName.setReadOnly(false); profileName.setValue(null); smtpHost.setValue(null); smtpPort.setValue(null); smtpUser.setValue(null); smtpPassword.setValue(null); smtpAuth.setValue(null); smtpSocketFactoryPort.setValue(null); smtpSocketFactoryClass.setValue(null); sslSocketFactoryClass.setValue(null); disablePlainAuth.setValue(null); transportProtocol.setValue(null); startTls.setValue(null); debug.setValue(null); } @Override protected void loadDetails(BpmNotificationMailProperties item) { profileName.setReadOnly(false); profileName.setValue(item.getProfileName()); profileName.setReadOnly(item.getId() != null); smtpHost.setValue(item.getSmtpHost()); smtpPort.setValue(item.getSmtpPort()); smtpUser.setValue(item.getSmtpUser()); smtpPassword.setValue(item.getSmtpPassword()); smtpAuth.setValue(item.isSmtpAuth()); smtpSocketFactoryPort.setValue(item.getSmtpSocketFactoryPort()); smtpSocketFactoryClass.setValue(item.getSmtpSocketFactoryClass()); sslSocketFactoryClass.setValue(item.getSslSocketFactoryClass()); disablePlainAuth.setValue(item.isDisablePlainAuth()); transportProtocol.setValue(item.getTransportProtocol()); startTls.setValue(item.isStarttls()); debug.setValue(item.isDebug()); } @Override protected void saveDetails(BpmNotificationMailProperties item) { if (item.getId() == null) { item.setProfileName(getString(profileName)); } item.setSmtpHost(getString(smtpHost)); item.setSmtpPort(getString(smtpPort)); item.setSmtpUser(getString(smtpUser)); item.setSmtpPassword(getString(smtpPassword)); item.setSmtpAuth(getBoolean(smtpAuth)); item.setSmtpSocketFactoryPort(getString(smtpSocketFactoryPort)); item.setSmtpSocketFactoryClass(getString(smtpSocketFactoryClass)); item.setSslSocketFactoryClass(getString(sslSocketFactoryClass)); item.setDisablePlainAuth(getBoolean(disablePlainAuth)); item.setTransportProtocol(getString(transportProtocol)); item.setStarttls(getBoolean(startTls)); item.setDebug(getBoolean(debug)); } @Override protected List<BpmNotificationMailProperties> getAllItems() { return new BpmNotificationMailPropertiesDAO().findAll(); } @Override protected String getItemCaption(BpmNotificationMailProperties item) { return item.getProfileName(); } @Override protected BpmNotificationMailProperties createItem() { return new BpmNotificationMailProperties(); } @Override protected BpmNotificationMailProperties refreshItem(Long id) { return new BpmNotificationMailPropertiesDAO().loadById(id); } @Override protected void saveItem(BpmNotificationMailProperties item) { new BpmNotificationMailPropertiesDAO().saveOrUpdate(item); } }