import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.RepositoryException;
-import javax.jcr.query.QueryManager;
-import javax.jcr.query.QueryResult;
-import javax.jcr.query.qom.Constraint;
-import javax.jcr.query.qom.Ordering;
-import javax.jcr.query.qom.QueryObjectModel;
-import javax.jcr.query.qom.QueryObjectModelFactory;
-import javax.jcr.query.qom.Selector;
import org.argeo.ArgeoException;
import org.argeo.eclipse.ui.ErrorFeedback;
}
- /** Import Package Section */
+ /** Export Package Section */
private void createExportPackageSection(Composite parent)
throws RepositoryException {
viewer.setInput("Initialize");
}
- /** Build repository request */
+ /**
+ * Build repository request
+ *
+ * FIXME Workaround for remote repository, the path to bundleartifact (for
+ * instance
+ * .../org/argeo/slc/org.argeo.slc.client.ui.dist/1.1.12/org.argeo.slc
+ * .client.ui.dist-1.1.12/ ) is not valid for method factory.childNode(); it
+ * fails parsing the "1.1.12" part, trying to cast it as a BigDecimal
+ *
+ * */
private NodeIterator listNodes(Node parent, String nodeType, String orderBy)
throws RepositoryException {
- QueryManager queryManager = currBundle.getSession().getWorkspace()
- .getQueryManager();
- QueryObjectModelFactory factory = queryManager.getQOMFactory();
-
- final String nodeSelector = "nodes";
- Selector source = factory.selector(nodeType, nodeSelector);
-
- Constraint childOf = factory.childNode(nodeSelector, parent.getPath());
-
- Ordering order = factory.ascending(factory.propertyValue(nodeSelector,
- orderBy));
- Ordering[] orderings = { order };
-
- QueryObjectModel query = factory.createQuery(source, childOf,
- orderings, null);
-
- QueryResult result = query.execute();
- return result.getNodes();
-
+ // QueryManager queryManager = currBundle.getSession().getWorkspace()
+ // .getQueryManager();
+ // QueryObjectModelFactory factory = queryManager.getQOMFactory();
+ //
+ // final String nodeSelector = "nodes";
+ // Selector source = factory.selector(nodeType, nodeSelector);
+ //
+ // Constraint childOf = factory.childNode(nodeSelector,
+ // parent.getPath());
+ //
+ // Ordering order =
+ // factory.ascending(factory.propertyValue(nodeSelector,
+ // orderBy));
+ // Ordering[] orderings = { order };
+ //
+ // QueryObjectModel query = factory.createQuery(source, childOf,
+ // orderings, null);
+ //
+ // QueryResult result = query.execute();
+
+ String pattern = null;
+ if (SlcTypes.SLC_EXPORTED_PACKAGE.equals(nodeType))
+ pattern = "slc:Export-Package*";
+ else if (SlcTypes.SLC_JAVA_PACKAGE.equals(nodeType))
+ pattern = "slc:uses*";
+ else if (SlcTypes.SLC_IMPORTED_PACKAGE.equals(nodeType))
+ pattern = "slc:Import-Package*";
+ else if (SlcTypes.SLC_REQUIRED_BUNDLE.equals(nodeType))
+ pattern = "slc:Require-Bundle*";
+
+ return parent.getNodes(pattern);
}
private class TableContentProvider implements IStructuredContentProvider {
import org.eclipse.ui.part.ViewPart;
/**
- * Browse and manipulate distributions (like merge, rename, etc.). Only support
- * one single repository currently.
+ * Browse, manipulate and manage distributions accross multiple repositories
+ * (like fetch, merge, publish, etc.).
*/
public class DistributionsView extends ViewPart implements SlcNames, ArgeoNames {
private final static Log log = LogFactory.getLog(DistributionsView.class);
TreeViewerColumn col = new TreeViewerColumn(viewer, SWT.NONE);
col.getColumn().setWidth(400);
- col.setLabelProvider(new ColumnLabelProvider() {
- @Override
- public String getText(Object element) {
- if (element instanceof BrowserElem)
- return ((BrowserElem) element).getLabel();
- else
- return element.toString();
- }
-
- @Override
- public Image getImage(Object element) {
- if (element instanceof BrowserElem) {
- BrowserElem bElement = (BrowserElem) element;
- if (bElement instanceof RepoElem) {
- if (bElement.isHomeRepo())
- return DistImages.IMG_HOME_REPO;
- else if (bElement.isReadOnly)
- return DistImages.IMG_REPO_READONLY;
- else
- return DistImages.IMG_REPO;
-
- } else if (bElement instanceof DistribGroupElem) {
- if (bElement.isReadOnly)
- return DistImages.IMG_DISTGRP_READONLY;
- else
- return DistImages.IMG_DISTGRP;
- }
- } else if (element instanceof DistributionElem)
- return DistImages.IMG_WKSP;
- return null;
- }
- });
+ col.setLabelProvider(new DistributionLabelProvider());
final Tree tree = viewer.getTree();
tree.setHeaderVisible(false);
ArgeoTypes.ARGEO_REMOTE_REPOSITORY);
repoNode.setProperty(ARGEO_URI, "vm:///" + alias);
repoNode.addMixin(NodeType.MIX_TITLE);
- repoNode.setProperty(Property.JCR_TITLE, "Internal "
- + alias + " repository");
+ repoNode.setProperty(Property.JCR_TITLE,
+ RepoConstants.DEFAULT_JAVA_REPOSITORY_LABEL);
nodeSession.save();
}
}
}
viewer.setInput(nodeRepository);
+ viewer.expandToLevel(2);
}
/** Programatically configure the context menu */
}
/*
- * INTERNAL CLASSES
+ * UI MODEL
*/
+ private class DistributionLabelProvider extends ColumnLabelProvider {
+ @Override
+ public String getText(Object element) {
+ if (element instanceof BrowserElem)
+ return ((BrowserElem) element).getLabel();
+ else
+ return element.toString();
+ }
+
+ @Override
+ public Image getImage(Object element) {
+ if (element instanceof BrowserElem) {
+ BrowserElem bElement = (BrowserElem) element;
+ if (bElement instanceof RepoElem) {
+ if (bElement.isHomeRepo())
+ return DistImages.IMG_HOME_REPO;
+ else if (bElement.isReadOnly())
+ return DistImages.IMG_REPO_READONLY;
+ else
+ return DistImages.IMG_REPO;
+
+ } else if (bElement instanceof DistribGroupElem) {
+ return DistImages.IMG_WKSP;
+ }
+ } else if (element instanceof DistributionElem)
+ if (((DistributionElem) element).isReadOnly())
+ return DistImages.IMG_DISTGRP_READONLY;
+ else
+ return DistImages.IMG_DISTGRP;
+
+ return null;
+ }
+ }
+
/** Content provider */
private class DistributionsContentProvider implements ITreeContentProvider {
Session nodeSession;
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
}
public Object[] getChildren(Object parentElement) {
return name;
}
+ public String toString() {
+ return getLabel();
+ }
+
public void dispose() {
}
// This page widget
private DefineModelPage page;
private CheckboxTableViewer wkspViewer;
+ private Button filesOnlyBtn;
public FetchWizard(Keyring keyring, RepositoryFactory repositoryFactory,
Repository nodeRepository) {
wksps.add((String) obj);
}
repoSync.setSourceWkspList(wksps);
+
+ // Set the import files only option
+ repoSync.setFilesOnly(filesOnlyBtn.getSelection());
+
FetchJob job = new FetchJob(repoSync);
job.setUser(true);
job.schedule();
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
chooseSourceRepoCmb.setLayoutData(gd);
+ // Import only files
+ filesOnlyBtn = new Button(composite, SWT.CHECK | SWT.WRAP);
+ filesOnlyBtn
+ .setText("Import only files (faster, a normalized action should be launched once done)");
+ filesOnlyBtn.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,
+ false, 2, 1));
+
// Workspace table
Composite wkspTable = new Composite(composite, SWT.NONE);
gd = new GridData();
private Button saveInKeyring;
// Default values
- private final static String DEFAULT_NAME = "Argeo public Repository";
+ private final static String DEFAULT_NAME = "Argeo Public Repository";
private final static String DEFAULT_URI = "http://repo.argeo.org/data/pub/java";
private final static String DEFAULT_USER_NAME = "anonymous";
private final static boolean DEFAULT_ANONYMOUS = true;