package org.codefaces.ui.internal.wizard.svn; import org.apache.commons.lang.StringUtils; import org.codefaces.core.models.Repo; import org.codefaces.ui.wizards.RepoSettings; import org.codefaces.ui.wizards.RepositorySettingsSection; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; public class SVNSettingsSection extends RepositorySettingsSection { private Text usernameText; public void handleConnection(IProgressMonitor monitor) { Object typePara = getSettings().get(RepoSettings.REPO_KIND); Assert.isTrue(typePara instanceof String); String type = (String) typePara; String location = locationText.getText(); String username = usernameText.getText(); monitor.beginTask("Connecting to " + type + " repository " + location, 100); Repo repo = Repo.create(type, location, username, null); getSettings().put(RepoSettings.REPO, repo); monitor.done(); } public boolean isSettingsValid() { return !StringUtils.isEmpty(locationText.getText()); } @Override protected void createAdditionalControls(Composite parentComposite) { Label usernameLabel = new Label(parentComposite, SWT.NONE); usernameLabel.setText("Username: "); createUsernameText(parentComposite); bindUsernameText(); } private void bindUsernameText() { usernameText.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent event) { getSettings().put(RepoSettings.REPO_USER, usernameText.getText()); } }); } private void createUsernameText(Composite parent) { usernameText = new Text(parent, SWT.BORDER); usernameText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); } @Override public void setFocus() { locationText.setFocus(); } }