/** * (C) Copyright 2013 Jabylon (http://www.jabylon.org) 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 */ /** * */ package org.jabylon.team.git.config; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.PasswordTextField; import org.apache.wicket.markup.html.form.TextArea; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.model.IModel; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.validation.validator.EmailAddressValidator; import org.eclipse.emf.common.util.URI; import org.jabylon.properties.Project; import org.jabylon.properties.PropertiesPackage; import org.jabylon.rest.ui.model.BooleanPreferencesPropertyModel; import org.jabylon.rest.ui.model.EObjectPropertyModel; import org.jabylon.rest.ui.model.PreferencesPropertyModel; import org.jabylon.rest.ui.wicket.BasicPanel; import org.jabylon.rest.ui.wicket.components.ControlGroup; import org.jabylon.rest.ui.wicket.validators.UriValidator; import org.jabylon.team.git.GitConstants; import org.osgi.service.prefs.Preferences; /** * @author Johannes Utzig (jutzig.dev@googlemail.com) * */ public class GitConfigPanel extends BasicPanel<Project> { private static final long serialVersionUID = 1L; private Preferences config; public GitConfigPanel(String id, IModel<Project> model, Preferences config) { super(id, model, new PageParameters()); this.config = config; } @Override protected void construct() { super.construct(); EObjectPropertyModel<URI, Project> repositoryURI = new EObjectPropertyModel<URI, Project>(getModel(), PropertiesPackage.Literals.PROJECT__REPOSITORY_URI); ControlGroup uriGroup = new ControlGroup("uri-group", nls("repository.uri.label"), nls("repository.uri.help")); TextField<URI> uriField = new TextField<URI>("gitURI", repositoryURI); uriField.setType(URI.class); uriField.add(new UriValidator()); uriField.setConvertEmptyInputStringToNull(true); uriField.setRequired(true); uriGroup.add(uriField); add(uriGroup); PreferencesPropertyModel usernameModel = new PreferencesPropertyModel(config, GitConstants.KEY_USERNAME, ""); ControlGroup usernameGroup = new ControlGroup("username-group", nls("username.label")); usernameGroup.add(new TextField<String>("gitUsername",usernameModel)); add(usernameGroup); PreferencesPropertyModel passwordModel = new PreferencesPropertyModel(config, GitConstants.KEY_PASSWORD, ""); ControlGroup passwordGroup = new ControlGroup("password-group", nls("password.label")); PasswordTextField passwordTextField = new PasswordTextField("gitPassword",passwordModel); passwordTextField.setResetPassword(false); passwordTextField.setRequired(false); passwordGroup.add(passwordTextField); add(passwordGroup); PreferencesPropertyModel emailModel = new PreferencesPropertyModel(config, GitConstants.KEY_EMAIL, "jabylon@example.org"); ControlGroup emailGroup = new ControlGroup("email-group", nls("email.label"), nls("email.help")); TextField<String> emailField = new TextField<String>("gitEmail", emailModel); emailField.setRequired(true); emailField.add(EmailAddressValidator.getInstance()); emailGroup.add(emailField); add(emailGroup); PreferencesPropertyModel messageModel = new PreferencesPropertyModel(config, GitConstants.KEY_MESSAGE, ""); ControlGroup messageGroup = new ControlGroup("message-group", nls("message.label"), nls("message.help")); TextArea<String> messageField = new TextArea<String>("gitCommitMessage", messageModel); messageField.setRequired(false); messageGroup.add(messageField); add(messageGroup); BooleanPreferencesPropertyModel changeIdModel = new BooleanPreferencesPropertyModel(config, GitConstants.KEY_INSERT_CHANGE_ID, false); ControlGroup changeIdGroup = new ControlGroup("changeId-group", nls("changeId.label"), nls("changeId.help")); CheckBox changeIdCheckbox = new CheckBox("changeId", changeIdModel); changeIdGroup.add(changeIdCheckbox); add(changeIdGroup); PreferencesPropertyModel privateKeyModel = new PreferencesPropertyModel(config, GitConstants.KEY_PRIVATE_KEY, ""); ControlGroup privateKeyGroup = new ControlGroup("private-key-group", nls("private.key.label"), nls("private.key.help")); TextArea<String> privateKeyField = new TextArea<String>("private-key", privateKeyModel); privateKeyField.setRequired(false); privateKeyGroup.add(privateKeyField); add(privateKeyGroup); } }