X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fwizards%2FRegisterRepoWizard.java;h=76df0627411671420af322b6930c134e4bd87c10;hb=5d3d00fff63d9744f0de1a5e4a3735fcb093d3be;hp=c38f42fb70fbb68504bff554804b4290e0b9a2f0;hpb=e2ad359a9b5d3822dcc2ad0576070fc46e2847d8;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/RegisterRepoWizard.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/RegisterRepoWizard.java index c38f42fb7..76df06274 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/RegisterRepoWizard.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/RegisterRepoWizard.java @@ -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();