import org.argeo.slc.client.ui.dist.commands.RegisterRepository;
import org.argeo.slc.client.ui.dist.commands.UnregisterRemoteRepo;
import org.argeo.slc.client.ui.dist.controllers.DistTreeComparator;
+import org.argeo.slc.client.ui.dist.controllers.DistTreeComparer;
import org.argeo.slc.client.ui.dist.controllers.DistTreeContentProvider;
import org.argeo.slc.client.ui.dist.controllers.DistTreeDoubleClickListener;
import org.argeo.slc.client.ui.dist.controllers.DistTreeLabelProvider;
import org.argeo.slc.client.ui.dist.model.DistParentElem;
-import org.argeo.slc.client.ui.dist.model.WkspGroupElem;
import org.argeo.slc.client.ui.dist.model.RepoElem;
+import org.argeo.slc.client.ui.dist.model.WkspGroupElem;
import org.argeo.slc.client.ui.dist.model.WorkspaceElem;
import org.argeo.slc.client.ui.dist.utils.CommandHelpers;
import org.argeo.slc.jcr.SlcNames;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
import org.eclipse.jface.viewers.ViewerDropAdapter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.DND;
// viewer.setContentProvider(new DistTreeContentProvider());
viewer.setContentProvider(treeContentProvider);
- viewer.addDoubleClickListener(new DistTreeDoubleClickListener());
+ viewer.addDoubleClickListener(new DistTreeDoubleClickListener(viewer));
+ viewer.setComparer(new DistTreeComparer());
+
viewer.setComparator(new DistTreeComparator());
+ @SuppressWarnings("unused")
+ ViewerComparator vc = viewer.getComparator();
+
// Enable retrieving current tree selected items from outside the view
getSite().setSelectionProvider(viewer);
if (firstElement instanceof WorkspaceElem) {
WorkspaceElem de = (WorkspaceElem) firstElement;
- re = de.getRepoElem();
+ re = (RepoElem) de.getParent().getParent();
isDistribElem = true;
isReadOnly = de.isReadOnly();
workspaceName = de.getWorkspaceName();
isHomeRepo = re.inHome();
isReadOnly = re.isReadOnly();
} else if (firstElement instanceof WkspGroupElem) {
- WkspGroupElem dge = (WkspGroupElem) firstElement;
- isReadOnly = dge.isReadOnly();
+ WkspGroupElem wge = (WkspGroupElem) firstElement;
+ isReadOnly = wge.isReadOnly();
isDistribGroupElem = true;
- re = dge.getRepoElem();
- workspacePrefix = dge.getLabel();
+ re = (RepoElem) wge.getParent();
+ workspacePrefix = wge.getName();
}
+ // TODO add case for goups
+
if (re != null) {
// targetRepoUri = re.getUri();
targetRepoPath = re.getRepoNode().getPath();
PublishWorkspace.ID, PublishWorkspace.DEFAULT_LABEL,
PublishWorkspace.DEFAULT_ICON, isDistribElem
&& singleElement && !isReadOnly, params);
-
+
// Normalize distribution (Legacy)
params = new HashMap<String, String>();
params.put(NormalizeDistribution.PARAM_TARGET_REPO_PATH,
NormalizeDistribution.DEFAULT_ICON, isDistribElem
&& singleElement && !isReadOnly, params);
-
-
if (submenu.getSize() > 0)
menuManager.add(submenu);
if (selection.getFirstElement() instanceof WorkspaceElem) {
WorkspaceElem de = (WorkspaceElem) selection.getFirstElement();
if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
- event.data = de.getRepoElem().getUri() + "/"
- + de.getWorkspaceName();
+ event.data = ((RepoElem) de.getParent().getParent())
+ .getUri() + "/" + de.getWorkspaceName();
}
}
}
@Override
public boolean performDrop(Object data) {
- WorkspaceElem sourceDist = (WorkspaceElem) getSelectedObject();
+ WorkspaceElem sourceWksp = (WorkspaceElem) getSelectedObject();
RepoElem targetRepo = (RepoElem) getCurrentTarget();
- Boolean ok = MessageDialog.openConfirm(getSite().getShell(),
- "Confirm distribution merge", "Do you want to merge "
- + sourceDist.getWorkspaceName() + " (from repo "
- + sourceDist.getRepoElem().getLabel()
- + ") to repo " + targetRepo.getLabel() + "?");
+ Boolean ok = MessageDialog.openConfirm(
+ getSite().getShell(),
+ "Confirm distribution merge",
+ "Do you want to merge "
+ + sourceWksp.getWorkspaceName()
+ + " (from repo "
+ + ((RepoElem) sourceWksp.getParent().getParent())
+ .getLabel() + ") to repo "
+ + targetRepo.getLabel() + "?");
if (!ok)
return false;
Map<String, String> params = new HashMap<String, String>();
params.put(MergeWorkspaces.PARAM_TARGET_REPO_PATH, targetRepo
.getRepoNode().getPath());
- params.put(MergeWorkspaces.PARAM_SOURCE_REPO_PATH, sourceDist
- .getRepoElem().getRepoNode().getPath());
+ params.put(MergeWorkspaces.PARAM_SOURCE_REPO_PATH,
+ ((RepoElem) sourceWksp.getParent().getParent())
+ .getRepoNode().getPath());
params.put(MergeWorkspaces.PARAM_SOURCE_WORKSPACE_NAME,
- sourceDist.getWorkspaceName());
+ sourceWksp.getWorkspaceName());
CommandHelpers.callCommand(RefreshDistributionsView.ID, params);
return true;
} catch (RepositoryException e) {
- throw new SlcException("Cannot process drop from " + sourceDist
+ throw new SlcException("Cannot process drop from " + sourceWksp
+ " to " + targetRepo, e);
}
}
if (target instanceof RepoElem) {
if (getSelectedObject() instanceof WorkspaceElem) {
// check if not same repository
- String srcRepoUri = ((WorkspaceElem) getSelectedObject())
- .getRepoElem().getUri();
+ String srcRepoUri = ((RepoElem) ((WorkspaceElem) getSelectedObject())
+ .getParent().getParent()).getUri();
String targetRepoUri = ((RepoElem) target).getUri();
return !targetRepoUri.equals(srcRepoUri);
}