X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.akb.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fakb%2Fui%2Fviews%2FAkbTemplatesTreeView.java;h=2686a486de780adb3f154431be3c69fc68230ed6;hb=73d4b2a4a2b4b040ffe8350759170bd569c5b637;hp=b1245f12443e21f042cc9b53a8405461e1b50cda;hpb=65c1e73020652f7b70110268de6cc2c89624a9c2;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/AkbTemplatesTreeView.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/AkbTemplatesTreeView.java index b1245f124..2686a486d 100644 --- a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/AkbTemplatesTreeView.java +++ b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/AkbTemplatesTreeView.java @@ -34,6 +34,7 @@ import org.argeo.eclipse.ui.utils.CommandUtils; import org.argeo.jcr.JcrUtils; import org.argeo.slc.akb.AkbException; import org.argeo.slc.akb.AkbNames; +import org.argeo.slc.akb.AkbService; import org.argeo.slc.akb.AkbTypes; import org.argeo.slc.akb.ui.AkbUiPlugin; import org.argeo.slc.akb.ui.AkbUiUtils; @@ -41,8 +42,9 @@ import org.argeo.slc.akb.ui.commands.DeleteAkbNodes; import org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor; import org.argeo.slc.akb.ui.providers.AkbTreeLabelProvider; import org.argeo.slc.akb.ui.providers.TemplatesTreeContentProvider; +import org.argeo.slc.akb.ui.utils.AkbItemsComparator; import org.argeo.slc.akb.ui.utils.Refreshable; -import org.argeo.slc.akb.ui.views.AkbTemplatesTreeView.ViewDoubleClickListener; +import org.argeo.slc.akb.utils.AkbJcrUtils; import org.eclipse.jface.action.IContributionItem; import org.eclipse.jface.action.IMenuListener; import org.eclipse.jface.action.IMenuManager; @@ -60,7 +62,7 @@ import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.part.ViewPart; import org.eclipse.ui.services.IServiceLocator; -/** SLC generic JCR Result tree view. */ +/** AKB template tree view. */ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { // private final static Log log = // LogFactory.getLog(AkbTemplatesTreeView.class); @@ -70,6 +72,7 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { /* DEPENDENCY INJECTION */ private Session session; + private AkbService akbService; // This page widgets private TreeViewer envTreeViewer; @@ -97,45 +100,13 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { public void createPartControl(Composite parent) { initialize(); - envTreeViewer = createResultsTreeViewer(parent); - envTreeViewer.setInput(initializeResultTree()); - - // parent.setLayout(new FillLayout()); - // // Main layout - // SashForm sashForm = new SashForm(parent, SWT.VERTICAL); - // sashForm.setSashWidth(4); - // sashForm.setLayout(new FillLayout()); - - // Create the tree on top of the view - // Composite top = new Composite(sashForm, SWT.NONE); - // GridLayout gl = new GridLayout(1, false); - // top.setLayout(gl); - // resultTreeViewer = createResultsTreeViewer(top); - - // // Create the property viewer on the bottom - // Composite bottom = new Composite(sashForm, SWT.NONE); - // bottom.setLayout(new GridLayout(1, false)); - // propertiesViewer = createPropertiesViewer(bottom); - // - // sashForm.setWeights(getWeights()); - - // setOrderedInput(resultTreeViewer); + envTreeViewer = createTreeViewer(parent); + envTreeViewer.setInput(initializeTree()); + envTreeViewer.setComparator(new AkbItemsComparator()); } - /** - * Override default behaviour so that default defined order remains - * unchanged on first level of the tree - */ - // private void setOrderedInput(TreeViewer viewer) { - // // Add specific ordering - // viewer.setInput(null); - // viewer.setComparator(null); - // viewer.setInput(initializeResultTree()); - // viewer.setComparator(new ResultItemsComparator()); - // } - // The main tree viewer - protected TreeViewer createResultsTreeViewer(Composite parent) { + protected TreeViewer createTreeViewer(Composite parent) { parent.setLayout(AkbUiUtils.gridLayoutNoBorder()); int style = SWT.BORDER | SWT.MULTI; @@ -197,7 +168,7 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { public void setFocus() { } - private Node[] initializeResultTree() { + private Node[] initializeTree() { try { NodeIterator ni = templatesParentNode.getNodes(); List templates = new ArrayList(); @@ -216,7 +187,7 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { @Override public void forceRefresh(Object object) { - envTreeViewer.setInput(initializeResultTree()); + envTreeViewer.setInput(initializeTree()); } // /////////////////////////// @@ -235,8 +206,13 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { .getSelection(); Node selected = (Node) selection.getFirstElement(); + Node currEnv = null; boolean hasSelection = selected != null; + + if (hasSelection) + currEnv = AkbJcrUtils.getCurrentTemplate(selected); + boolean isTemplate = hasSelection ? selected .isNodeType(AkbTypes.AKB_ENV_TEMPLATE) : false; boolean isParentItemsFolder = hasSelection ? selected @@ -247,9 +223,12 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { // Add Connector Alias Map params = new HashMap(); - if (hasSelection && isTemplate) + if (hasSelection && isTemplate) { params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID, selected.getIdentifier()); + params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID, + currEnv.getIdentifier()); + } params.put(OpenAkbNodeEditor.PARAM_NODE_TYPE, AkbTypes.AKB_CONNECTOR_ALIAS); @@ -259,19 +238,26 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { // Item Submenu params = new HashMap(); - if (hasSelection) + if (hasSelection) { params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID, selected.getIdentifier()); + params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID, + currEnv.getIdentifier()); + } refreshItemsSubmenu(menuManager, window, "menu.itemsSubmenu", "Add Item", isParentItemsFolder || isTemplate, params); // Add Item Folder params = new HashMap(); - if (hasSelection) + if (hasSelection) { params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID, selected.getIdentifier()); + params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID, + currEnv.getIdentifier()); + } params.put(OpenAkbNodeEditor.PARAM_NODE_TYPE, AkbTypes.AKB_ITEM_FOLDER); + AkbUiUtils.refreshParameterizedCommand(menuManager, window, "cmd.addItemFolder", OpenAkbNodeEditor.ID, "Add item folder", null, isParentItemsFolder || isTemplate, @@ -334,7 +320,7 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { if (currItem != null) subMenu.remove(currItem); subMenu.add(AkbUiUtils.createContributionItem(menuManager, locator, - currItemId, OpenAkbNodeEditor.ID, "JDBC", null, tmpParams)); + currItemId, OpenAkbNodeEditor.ID, "JDBC Query", null, tmpParams)); // SSH COMMAND tmpParams = new HashMap(); @@ -475,7 +461,7 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { Object[] visibles = envTreeViewer.getExpandedElements(); if (fullRefresh) - envTreeViewer.setInput(initializeResultTree()); + envTreeViewer.setInput(initializeTree()); else envTreeViewer.refresh(); @@ -490,9 +476,16 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { try { if (obj instanceof Node) { Node node = (Node) obj; - CommandUtils.callCommand(OpenAkbNodeEditor.ID, - OpenAkbNodeEditor.PARAM_NODE_JCR_ID, + Node currEnv = AkbJcrUtils.getCurrentTemplate(node); + + // Add Connector Alias + Map params = new HashMap(); + params.put(OpenAkbNodeEditor.PARAM_NODE_JCR_ID, node.getIdentifier()); + params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID, + currEnv.getIdentifier()); + + CommandUtils.callCommand(OpenAkbNodeEditor.ID, params); } } catch (RepositoryException e) { throw new AkbException("Cannot open " + obj, e); @@ -514,4 +507,9 @@ public class AkbTemplatesTreeView extends ViewPart implements Refreshable { throw new AkbException("unable to log in for " + ID + " view"); } } + + public void setAkbService(AkbService akbService) { + this.akbService = akbService; + + } } \ No newline at end of file