/**************************************************************************** * Copyright (c) 2007 Remy Suen, Composent Inc., and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Remy Suen <remy.suen@gmail.com> - initial API and implementation *****************************************************************************/ package org.eclipse.ecf.internal.provider.xmpp.ui.wizards; import java.util.regex.Matcher; import org.eclipse.ecf.internal.provider.xmpp.ui.Messages; import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.*; final class XMPPSConnectWizardPage extends XMPPConnectWizardPage { private Text keystorePasswordText; XMPPSConnectWizardPage() { super(); setTitle(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_TITLE); setDescription(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION); setPageComplete(false); } XMPPSConnectWizardPage(String usernameAtHost) { this(); this.usernameAtHost = usernameAtHost; } private void verify() { final String text = connectText.getText(); if (text.equals("")) { //$NON-NLS-1$ updateStatus(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_STATUS); } else { final Matcher matcher = emailPattern.matcher(text); if (!matcher.matches()) { updateStatus(Messages.XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE); } else { restorePassword(text); updateStatus(null); } } } public void createControl(Composite parent) { parent = new Composite(parent, SWT.NONE); parent.setLayout(new GridLayout()); final GridData fillData = new GridData(SWT.FILL, SWT.CENTER, true, false); final GridData endData = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1); Label label = new Label(parent, SWT.LEFT); label.setText(Messages.XMPPConnectWizardPage_LABEL_USERID); connectText = new Combo(parent, SWT.SINGLE | SWT.BORDER | SWT.DROP_DOWN); connectText.setLayoutData(fillData); connectText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { verify(); } }); connectText.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { verify(); } public void widgetSelected(SelectionEvent e) { verify(); } }); label = new Label(parent, SWT.RIGHT); label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE); label.setLayoutData(endData); label = new Label(parent, SWT.LEFT); label.setText(Messages.XMPPConnectWizardPage_WIZARD_ALT_SERVER); serverText = new Text(parent, SWT.SINGLE | SWT.BORDER); serverText.setLayoutData(fillData); serverText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { verify(); } }); serverText.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { verify(); } public void widgetSelected(SelectionEvent e) { verify(); } }); label = new Label(parent, SWT.RIGHT); label.setText(Messages.XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT); label.setLayoutData(endData); label = new Label(parent, SWT.LEFT); label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD); passwordText = new Text(parent, SWT.SINGLE | SWT.PASSWORD | SWT.BORDER); passwordText.setLayoutData(fillData); restoreCombo(); label = new Label(parent, SWT.LEFT); label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD); keystorePasswordText = new Text(parent, SWT.SINGLE | SWT.PASSWORD | SWT.BORDER); keystorePasswordText.setLayoutData(fillData); if (usernameAtHost != null) { connectText.setText(usernameAtHost); restorePassword(usernameAtHost); passwordText.setFocus(); } verify(); if (connectText.getText().equals("")) { updateStatus(null); setPageComplete(false); } else if (isPageComplete()) passwordText.setFocus(); org.eclipse.jface.dialogs.Dialog.applyDialogFont(parent); setControl(parent); } String getKeystorePassword() { return keystorePasswordText.getText(); } }