]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
+ update Distribution view icons
authorBruno Sinou <bsinou@argeo.org>
Mon, 11 Mar 2013 15:06:31 +0000 (15:06 +0000)
committerBruno Sinou <bsinou@argeo.org>
Mon, 11 Mar 2013 15:06:31 +0000 (15:06 +0000)
+ 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

plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/BundleDetailsPage.java
plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java
plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/FetchWizard.java
plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/wizards/RegisterRepoWizard.java

index dc605e67e7be8a393829650c8f25e8c2c126b4e3..4e67d5f4ecf41dcc4a47980be9622c79f4dc51a7 100644 (file)
@@ -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 {
index 458df44a997138540511226b0e375c005a0502d4..cbed6adac450d89998c715a0bcba9ede6f79ebd0 100644 (file)
@@ -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() {
                }
 
index 44649f94e35c9302f228e202e1106b113f4bf414..7b480a4bdbe4ff2b64ed348333738924c2d9f3c8 100644 (file)
@@ -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();
index a4369afec8268b00fc64a2dad906144d476e779e..fb80ac3cf5d7076821fd39178fb55eb6fff22962 100644 (file)
@@ -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;