+ @Override
+ public boolean performDrop(Object data) {
+ WorkspaceElem sourceDist = (WorkspaceElem) getSelectedObject();
+ RepoElem targetRepo = (RepoElem) getCurrentTarget();
+
+ Boolean ok = MessageDialog.openConfirm(getSite().getShell(),
+ "FIXME: BROKEN BY REFACTORING--Confirm distribution merge",
+ "Do you want to merge " + sourceDist.getWorkspaceName()
+ + " (from repo "
+ + sourceDist.getRepoElem().getLabel()
+ + ") to repo " + targetRepo.getLabel() + "?");
+ if (!ok)
+ return false;
+
+ // TODO uncomment that
+ return true;
+ // try {
+ // String sourceWorkspace = sourceDist.getWorkspaceName();
+ // Repository sourceRepository = RepoUtils.getRepository(
+ // repositoryFactory, keyring, sourceDist
+ // .getWorkspaceNode().getParent());
+ // Credentials sourceCredentials = RepoUtils
+ // .getRepositoryCredentials(keyring, sourceDist
+ // .getWorkspaceNode().getParent());
+ //
+ // String targetWorkspace = sourceWorkspace;
+ // Repository targetRepository = RepoUtils.getRepository(
+ // repositoryFactory, keyring, targetRepo.getRepoNode());
+ // Credentials targetCredentials = RepoUtils
+ // .getRepositoryCredentials(keyring,
+ // targetRepo.getRepoNode());
+ //
+ // // Open sessions here since the background thread
+ // // won't necessarily be authenticated.
+ // // Job should close the sessions.
+ // Session sourceSession = sourceRepository.login(
+ // sourceCredentials, sourceWorkspace);
+ // Session targetSession;
+ // try {
+ // targetSession = targetRepository.login(targetCredentials,
+ // targetWorkspace);
+ // } catch (NoSuchWorkspaceException e) {
+ // Session defaultSession = targetRepository
+ // .login(targetCredentials);
+ // try {
+ // defaultSession.getWorkspace().createWorkspace(
+ // targetWorkspace);
+ // } catch (Exception e1) {
+ // throw new SlcException("Cannot create new workspace "
+ // + targetWorkspace, e);
+ // } finally {
+ // JcrUtils.logoutQuietly(defaultSession);
+ // }
+ // targetSession = targetRepository.login(targetCredentials,
+ // targetWorkspace);
+ // }
+ //
+ // Job workspaceMergeJob = new WorkspaceMergeJob(sourceSession,
+ // targetSession);
+ // workspaceMergeJob.setUser(true);
+ // workspaceMergeJob.schedule();
+ // return true;
+ // } catch (RepositoryException e) {
+ // throw new SlcException("Cannot process drop from " + sourceDist
+ // + " to " + targetRepo, e);
+ // }
+ }
+
+ @Override
+ public boolean validateDrop(Object target, int operation,
+ TransferData transferType) {
+ if (target instanceof RepoElem) {
+ if (getSelectedObject() instanceof WorkspaceElem) {
+ // check if not same repository
+ String srcRepoPath = ((WorkspaceElem) getSelectedObject())
+ .getRepoPath();
+ String targetRepoPath = ((RepoElem) target).getRepoPath();
+ return !targetRepoPath.equals(srcRepoPath);
+ }
+ }
+ return false;