X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcommands%2FDisplayRepoInformation.java;h=7cf3d1a1acfb60074f2a60f0a68beafb7d2f6795;hb=70eec596149a6344d93bdc90877787cbd19ab626;hp=7bc06084feaf6071e64a62fc5376b3490020679d;hpb=3e2293b11242a1960217a278cfb3409508eb5a5d;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 7bc06084f..7cf3d1a1a 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,20 +15,20 @@ */ package org.argeo.slc.client.ui.dist.commands; -import javax.jcr.RepositoryException; +import javax.jcr.Repository; import javax.jcr.Session; -import org.argeo.jcr.ArgeoNames; 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.views.DistributionsView; -import org.argeo.slc.client.ui.dist.views.DistributionsView.DistributionViewSelectedElement; +import org.argeo.slc.client.ui.dist.model.RepoElem; +import org.argeo.slc.repo.RepoService; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; @@ -39,52 +39,53 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.handlers.HandlerUtil; /** - * Create a new empty workspace in the current repository. + * 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_ICON_PATH = "icons/help.gif"; + public final static String DEFAULT_LABEL = "Information"; + public final static ImageDescriptor DEFAULT_ICON = DistPlugin + .getImageDescriptor("icons/help.gif"); + + /* DEPENDENCY INJECTION */ + private RepoService repoService; + private Repository nodeRepository; public Object execute(ExecutionEvent event) throws ExecutionException { - IWorkbenchWindow iww = DistPlugin.getDefault().getWorkbench() - .getActiveWorkbenchWindow(); - IWorkbenchPart view = iww.getActivePage().getActivePart(); - if (view instanceof DistributionsView) { - DistributionViewSelectedElement dvse = ((DistributionsView) view) - .getSelectedElement(); - if (dvse != null && (dvse.isRepository)) { + IStructuredSelection iss = (IStructuredSelection) HandlerUtil + .getActiveSite(event).getSelectionProvider().getSelection(); + if (iss.getFirstElement() instanceof RepoElem) { + RepoElem re = (RepoElem) iss.getFirstElement(); + + Session defaultSession = null; + try { + defaultSession = repoService.getRemoteSession(re.getRepoNodePath(), + re.getUri(), null); + InformationDialog inputDialog = new InformationDialog( - iww.getShell()); + HandlerUtil.getActiveSite(event).getShell()); inputDialog.create(); - Session session = null; - try { - session = dvse.repository.login(dvse.credentials); - inputDialog.loginTxt.setText(session.getUserID()); - - inputDialog.nameTxt.setText(dvse.repoNode.getName()); - inputDialog.uriTxt.setText(JcrUtils.get(dvse.repoNode, - ArgeoNames.ARGEO_URI)); - inputDialog.readOnlyBtn.setSelection(dvse.isReadOnly); - - } catch (RepositoryException e) { - throw new SlcException("Unexpected error while " - + "getting repository infos.", e); - } finally { - JcrUtils.logoutQuietly(session); - } + // TODO add more information. + 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(defaultSession); } } return null; } - public class InformationDialog extends Dialog { + private class InformationDialog extends Dialog { Text nameTxt; Text uriTxt; Text loginTxt; @@ -93,8 +94,7 @@ public class DisplayRepoInformation extends AbstractHandler { @Override protected void createButtonsForButtonBar(Composite parent) { // No Cancel button - createButton(parent, IDialogConstants.OK_ID, - IDialogConstants.OK_LABEL, true); + createButton(parent, IDialogConstants.OK_ID, "OK", true); } public InformationDialog(Shell parentShell) { @@ -106,7 +106,6 @@ public class DisplayRepoInformation extends AbstractHandler { } protected Control createDialogArea(Composite parent) { - Composite dialogarea = (Composite) super.createDialogArea(parent); dialogarea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); @@ -127,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); @@ -136,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); @@ -148,4 +147,14 @@ public class DisplayRepoInformation extends AbstractHandler { shell.setText("Repository information"); } } + + /* DEPENDENCY INJECTION */ + public void setRepoService(RepoService repoService) { + this.repoService = repoService; + } + + public void setNodeRepository(Repository nodeRepository) { + this.nodeRepository = nodeRepository; + } + } \ No newline at end of file