From: Bruno Sinou Date: Mon, 11 Mar 2013 15:06:31 +0000 (+0000) Subject: + update Distribution view icons X-Git-Tag: argeo-slc-2.1.7~418 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=7e3da04a2593e3949edce627bd945bbaacc3480b;p=gpl%2Fargeo-slc.git + update Distribution view icons + add a check box to only sync files via the fetch command + update default labels for repositories git-svn-id: https://svn.argeo.org/slc/trunk@6121 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/BundleDetailsPage.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/BundleDetailsPage.java index dc605e67e..4e67d5f4e 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/BundleDetailsPage.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/BundleDetailsPage.java @@ -20,13 +20,6 @@ import java.util.List; 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; @@ -124,7 +117,7 @@ public class BundleDetailsPage extends FormPage implements SlcNames, SlcTypes { } - /** Import Package Section */ + /** Export Package Section */ private void createExportPackageSection(Composite parent) throws RepositoryException { @@ -326,28 +319,49 @@ public class BundleDetailsPage extends FormPage implements SlcNames, SlcTypes { 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 { diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java index 458df44a9..cbed6adac 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java @@ -97,8 +97,8 @@ import org.eclipse.ui.PartInitException; 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); @@ -118,38 +118,7 @@ public class DistributionsView extends ViewPart implements SlcNames, ArgeoNames 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); @@ -198,8 +167,8 @@ public class DistributionsView extends ViewPart implements SlcNames, ArgeoNames 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(); } } @@ -210,6 +179,7 @@ public class DistributionsView extends ViewPart implements SlcNames, ArgeoNames } viewer.setInput(nodeRepository); + viewer.expandToLevel(2); } /** Programatically configure the context menu */ @@ -406,8 +376,42 @@ public class DistributionsView extends ViewPart implements SlcNames, ArgeoNames } /* - * 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; @@ -444,7 +448,6 @@ public class DistributionsView extends ViewPart implements SlcNames, ArgeoNames } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - } public Object[] getChildren(Object parentElement) { @@ -676,6 +679,10 @@ public class DistributionsView extends ViewPart implements SlcNames, ArgeoNames return name; } + public String toString() { + return getLabel(); + } + public void dispose() { } diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/FetchWizard.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/FetchWizard.java index 44649f94e..7b480a4bd 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/FetchWizard.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/FetchWizard.java @@ -84,6 +84,7 @@ public class FetchWizard extends Wizard { // This page widget private DefineModelPage page; private CheckboxTableViewer wkspViewer; + private Button filesOnlyBtn; public FetchWizard(Keyring keyring, RepositoryFactory repositoryFactory, Repository nodeRepository) { @@ -167,6 +168,10 @@ public class FetchWizard extends Wizard { 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(); @@ -207,6 +212,13 @@ public class FetchWizard extends Wizard { 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(); diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/RegisterRepoWizard.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/RegisterRepoWizard.java index a4369afec..fb80ac3cf 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/RegisterRepoWizard.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/RegisterRepoWizard.java @@ -75,7 +75,7 @@ public class RegisterRepoWizard extends Wizard { 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;