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%2Fcommands%2FDisplayRepoInformation.java;h=6ccd8d8eb3e196c6bb302a39108bc1b46cf853d5;hb=abc9e68ee9afc994feb923b40388aca83bdb050f;hp=e5c733dfa9d863c0610c326fa7cbc0e97bdbd772;hpb=79a75d7f11406a6e219447bfcab4caf3290cb7f5;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DisplayRepoInformation.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DisplayRepoInformation.java index e5c733dfa..6ccd8d8eb 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DisplayRepoInformation.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DisplayRepoInformation.java @@ -15,13 +15,14 @@ */ package org.argeo.slc.client.ui.dist.commands; -import javax.jcr.RepositoryException; +import javax.jcr.RepositoryFactory; import javax.jcr.Session; import org.argeo.jcr.JcrUtils; -import org.argeo.slc.SlcException; import org.argeo.slc.client.ui.dist.DistPlugin; import org.argeo.slc.client.ui.dist.model.RepoElem; +import org.argeo.slc.repo.RepoUtils; +import org.argeo.util.security.Keyring; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; @@ -42,36 +43,44 @@ import org.eclipse.swt.widgets.Text; import org.eclipse.ui.handlers.HandlerUtil; /** - * Opens a popup that displays various information on the current reppository. + * Open a dialog that displays various information on the current repository. */ public class DisplayRepoInformation extends AbstractHandler { public final static String ID = DistPlugin.ID + ".displayRepoInformation"; - public final static String DEFAULT_LABEL = "Repository infos"; + public final static String DEFAULT_LABEL = "Information"; public final static ImageDescriptor DEFAULT_ICON = DistPlugin .getImageDescriptor("icons/help.gif"); - + + /* DEPENDENCY INJECTION */ + private RepositoryFactory repositoryFactory; + private Keyring keyring; + public Object execute(ExecutionEvent event) throws ExecutionException { IStructuredSelection iss = (IStructuredSelection) HandlerUtil .getActiveSite(event).getSelectionProvider().getSelection(); if (iss.getFirstElement() instanceof RepoElem) { RepoElem re = (RepoElem) iss.getFirstElement(); + + Session defaultSession = null; + try{ + defaultSession = RepoUtils.getCorrespondingSession(repositoryFactory, keyring, re.getRepoNode(), re.getUri(), null); + + InformationDialog inputDialog = new InformationDialog(HandlerUtil .getActiveSite(event).getShell()); inputDialog.create(); - Session session = null; - try { - session = re.getRepository().login(re.getCredentials()); - inputDialog.loginTxt.setText(session.getUserID()); - inputDialog.nameTxt.setText(re.getLabel()); - inputDialog.uriTxt.setText(re.getUri()); - inputDialog.readOnlyBtn.setSelection(re.isReadOnly()); - } catch (RepositoryException e) { - throw new SlcException("Unexpected error while " - + "getting repository information.", e); + inputDialog.loginTxt.setText(defaultSession.getUserID()); + inputDialog.nameTxt.setText(re.getLabel()); + inputDialog.uriTxt.setText(re.getUri()); + inputDialog.readOnlyBtn.setSelection(re.isReadOnly()); + + inputDialog.open(); + // } catch (RepositoryException e) { + // throw new SlcException("Unexpected error while " + // + "getting repository information.", e); } finally { - JcrUtils.logoutQuietly(session); + JcrUtils.logoutQuietly(defaultSession); } - inputDialog.open(); } return null; } @@ -117,7 +126,7 @@ public class DisplayRepoInformation extends AbstractHandler { /** Creates label and text. */ protected Text createLT(Composite parent, String label) { - new Label(parent, SWT.NONE).setText(label); + new Label(parent, SWT.RIGHT).setText(label); Text text = new Text(parent, SWT.SINGLE | SWT.LEAD | SWT.NONE); text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); text.setEditable(false); @@ -126,7 +135,7 @@ public class DisplayRepoInformation extends AbstractHandler { /** Creates label and check. */ protected Button createLC(Composite parent, String label) { - new Label(parent, SWT.NONE).setText(label); + new Label(parent, SWT.RIGHT).setText(label); Button check = new Button(parent, SWT.CHECK); check.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); check.setEnabled(false); @@ -138,4 +147,14 @@ public class DisplayRepoInformation extends AbstractHandler { shell.setText("Repository information"); } } + + /* DEPENDENCY INJECTION */ + public void setRepositoryFactory(RepositoryFactory repositoryFactory) { + this.repositoryFactory = repositoryFactory; + } + + public void setKeyring(Keyring keyring) { + this.keyring = keyring; + } + } \ No newline at end of file