]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/RegisterRepoWizard.java
Fix bug to enable html link to be correctly displayed in single sourced code
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui.dist / src / main / java / org / argeo / slc / client / ui / dist / wizards / RegisterRepoWizard.java
index c38f42fb70fbb68504bff554804b4290e0b9a2f0..76df0627411671420af322b6930c134e4bd87c10 100644 (file)
@@ -19,6 +19,7 @@ import java.net.URI;
 import java.util.Hashtable;
 
 import javax.jcr.Node;
+import javax.jcr.NodeIterator;
 import javax.jcr.Property;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryFactory;
@@ -26,7 +27,6 @@ import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.ErrorFeedback;
 import org.argeo.jcr.ArgeoJcrConstants;
 import org.argeo.jcr.ArgeoJcrUtils;
@@ -75,8 +75,8 @@ public class RegisterRepoWizard extends Wizard {
        private Button saveInKeyring;
 
        // Default values
-       private final static String DEFAULT_NAME = "Argeo public Repository";
-       private final static String DEFAULT_URI = "https://repo.argeo.org/data/pub/java";
+       private final static String DEFAULT_NAME = "Argeo Public Repository";
+       private final static String DEFAULT_URI = "http://repo.argeo.org/data/pub/java";
        private final static String DEFAULT_USER_NAME = "anonymous";
        private final static boolean DEFAULT_ANONYMOUS = true;
 
@@ -113,9 +113,26 @@ public class RegisterRepoWizard extends Wizard {
                        Node repos = nodeSession.getNode(reposPath);
                        String repoNodeName = JcrUtils.replaceInvalidChars(name.getText());
                        if (repos.hasNode(repoNodeName))
-                               throw new ArgeoException(
+                               throw new SlcException(
                                                "There is already a remote repository named "
                                                                + repoNodeName);
+
+                       // check if the same URI has already been registered
+                       NodeIterator ni = repos.getNodes();
+                       while (ni.hasNext()) {
+                               Node node = ni.nextNode();
+                               if (node.isNodeType(ArgeoTypes.ARGEO_REMOTE_REPOSITORY)
+                                               && node.hasProperty(ArgeoNames.ARGEO_URI)
+                                               && node.getProperty(ArgeoNames.ARGEO_URI).getString()
+                                                               .equals(uri.getText()))
+                                       throw new SlcException(
+                                                       "This URI "
+                                                                       + uri.getText()
+                                                                       + " is already registered, "
+                                                                       + "for the time being, only one instance of a single "
+                                                                       + "repository at a time is implemented.");
+                       }
+
                        Node repoNode = repos.addNode(repoNodeName,
                                        ArgeoTypes.ARGEO_REMOTE_REPOSITORY);
                        repoNode.setProperty(ArgeoNames.ARGEO_URI, uri.getText());
@@ -160,7 +177,7 @@ public class RegisterRepoWizard extends Wizard {
                        uri = createLT(composite, "URI", DEFAULT_URI);
 
                        final Button anonymousLogin = createLC(composite,
-                                       "log as anonymous", true);
+                                       "Log as anonymous", true);
                        anonymousLogin.addSelectionListener(new SelectionListener() {
                                public void widgetSelected(SelectionEvent e) {
                                        if (anonymousLogin.getSelection()) {
@@ -189,7 +206,12 @@ public class RegisterRepoWizard extends Wizard {
                                password.setEnabled(false);
                        }
 
-                       Button test = createButton(parent, "Test");
+                       Button test = createButton(composite, "Test");
+                       GridData gd = new GridData(SWT.CENTER, SWT.CENTER, false, false, 2,
+                                       1);
+                       gd.widthHint = 140;
+                       test.setLayoutData(gd);
+
                        test.addSelectionListener(new SelectionAdapter() {
                                public void widgetSelected(SelectionEvent arg0) {
                                        testConnection();