X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=cms%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcommands%2FRegisterRepository.java;fp=cms%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcommands%2FRegisterRepository.java;h=f09fd17634d845fd47f3248839354e5db1ca69e7;hb=ecc22e604e47533c79de9cecdcdeacbc752cbff1;hp=0000000000000000000000000000000000000000;hpb=e07ded4632e53f8b8869763bc1f1f4091361e76e;p=gpl%2Fargeo-slc.git diff --git a/cms/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/commands/RegisterRepository.java b/cms/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/commands/RegisterRepository.java new file mode 100644 index 000000000..f09fd1763 --- /dev/null +++ b/cms/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/commands/RegisterRepository.java @@ -0,0 +1,57 @@ +package org.argeo.slc.client.ui.dist.commands; + +import javax.jcr.Repository; +import javax.jcr.RepositoryFactory; + +import org.argeo.api.security.Keyring; +import org.argeo.cms.ArgeoNames; +import org.argeo.slc.SlcNames; +import org.argeo.slc.client.ui.dist.DistPlugin; +import org.argeo.slc.client.ui.dist.utils.CommandHelpers; +import org.argeo.slc.client.ui.dist.wizards.RegisterRepoWizard; +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.resource.ImageDescriptor; +import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.ui.handlers.HandlerUtil; + +/** Register a remote repository by creating a node in the current local node. */ +public class RegisterRepository extends AbstractHandler implements ArgeoNames, + SlcNames { + + public final static String ID = DistPlugin.PLUGIN_ID + + ".registerRepository"; + public final static String DEFAULT_LABEL = "Register a repository..."; + public final static ImageDescriptor DEFAULT_ICON = DistPlugin + .getImageDescriptor("icons/addRepo.gif"); + + /* DEPENDENCY INJECTION */ + private RepositoryFactory repositoryFactory; + private Repository nodeRepository; + private Keyring keyring; + + public Object execute(ExecutionEvent event) throws ExecutionException { + RegisterRepoWizard wizard = new RegisterRepoWizard(keyring, + repositoryFactory, nodeRepository); + WizardDialog dialog = new WizardDialog( + HandlerUtil.getActiveShell(event), wizard); + int result = dialog.open(); + if (result == Dialog.OK) + CommandHelpers.callCommand(RefreshDistributionsView.ID); + return null; + } + + public void setRepositoryFactory(RepositoryFactory repositoryFactory) { + this.repositoryFactory = repositoryFactory; + } + + public void setKeyring(Keyring keyring) { + this.keyring = keyring; + } + + public void setNodeRepository(Repository nodeRepository) { + this.nodeRepository = nodeRepository; + } +} \ No newline at end of file