import org.argeo.jcr.JcrUtils;\r
import org.argeo.slc.akb.AkbException;\r
import org.argeo.slc.akb.AkbNames;\r
+import org.argeo.slc.akb.AkbService;\r
import org.argeo.slc.akb.AkbTypes;\r
import org.argeo.slc.akb.ui.AkbUiPlugin;\r
import org.argeo.slc.akb.ui.AkbUiUtils;\r
import org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor;\r
import org.argeo.slc.akb.ui.providers.AkbTreeLabelProvider;\r
import org.argeo.slc.akb.ui.providers.TemplatesTreeContentProvider;\r
+import org.argeo.slc.akb.ui.utils.AkbItemsComparator;\r
import org.argeo.slc.akb.ui.utils.Refreshable;\r
-import org.argeo.slc.akb.ui.views.AkbTemplatesTreeView.ViewDoubleClickListener;\r
+import org.argeo.slc.akb.utils.AkbJcrUtils;\r
import org.eclipse.jface.action.IContributionItem;\r
import org.eclipse.jface.action.IMenuListener;\r
import org.eclipse.jface.action.IMenuManager;\r
import org.eclipse.ui.part.ViewPart;\r
import org.eclipse.ui.services.IServiceLocator;\r
\r
-/** SLC generic JCR Result tree view. */\r
+/** AKB template tree view. */\r
public class AkbTemplatesTreeView extends ViewPart implements Refreshable {\r
// private final static Log log =\r
// LogFactory.getLog(AkbTemplatesTreeView.class);\r
\r
/* DEPENDENCY INJECTION */\r
private Session session;\r
+ private AkbService akbService;\r
\r
// This page widgets\r
private TreeViewer envTreeViewer;\r
public void createPartControl(Composite parent) {\r
initialize();\r
\r
- envTreeViewer = createResultsTreeViewer(parent);\r
- envTreeViewer.setInput(initializeResultTree());\r
-\r
- // parent.setLayout(new FillLayout());\r
- // // Main layout\r
- // SashForm sashForm = new SashForm(parent, SWT.VERTICAL);\r
- // sashForm.setSashWidth(4);\r
- // sashForm.setLayout(new FillLayout());\r
-\r
- // Create the tree on top of the view\r
- // Composite top = new Composite(sashForm, SWT.NONE);\r
- // GridLayout gl = new GridLayout(1, false);\r
- // top.setLayout(gl);\r
- // resultTreeViewer = createResultsTreeViewer(top);\r
-\r
- // // Create the property viewer on the bottom\r
- // Composite bottom = new Composite(sashForm, SWT.NONE);\r
- // bottom.setLayout(new GridLayout(1, false));\r
- // propertiesViewer = createPropertiesViewer(bottom);\r
- //\r
- // sashForm.setWeights(getWeights());\r
-\r
- // setOrderedInput(resultTreeViewer);\r
+ envTreeViewer = createTreeViewer(parent);\r
+ envTreeViewer.setInput(initializeTree());\r
+ envTreeViewer.setComparator(new AkbItemsComparator());\r
}\r
\r
- /**\r
- * Override default behaviour so that default defined order remains\r
- * unchanged on first level of the tree\r
- */\r
- // private void setOrderedInput(TreeViewer viewer) {\r
- // // Add specific ordering\r
- // viewer.setInput(null);\r
- // viewer.setComparator(null);\r
- // viewer.setInput(initializeResultTree());\r
- // viewer.setComparator(new ResultItemsComparator());\r
- // }\r
-\r
// The main tree viewer\r
- protected TreeViewer createResultsTreeViewer(Composite parent) {\r
+ protected TreeViewer createTreeViewer(Composite parent) {\r
parent.setLayout(AkbUiUtils.gridLayoutNoBorder());\r
int style = SWT.BORDER | SWT.MULTI;\r
\r
public void setFocus() {\r
}\r
\r
- private Node[] initializeResultTree() {\r
+ private Node[] initializeTree() {\r
try {\r
NodeIterator ni = templatesParentNode.getNodes();\r
List<Node> templates = new ArrayList<Node>();\r
\r
@Override\r
public void forceRefresh(Object object) {\r
- envTreeViewer.setInput(initializeResultTree());\r
+ envTreeViewer.setInput(initializeTree());\r
}\r
\r
// ///////////////////////////\r
.getSelection();\r
\r
Node selected = (Node) selection.getFirstElement();\r
+ Node currEnv = null;\r
\r
boolean hasSelection = selected != null;\r
+\r
+ if (hasSelection)\r
+ currEnv = AkbJcrUtils.getCurrentTemplate(selected);\r
+\r
boolean isTemplate = hasSelection ? selected\r
.isNodeType(AkbTypes.AKB_ENV_TEMPLATE) : false;\r
boolean isParentItemsFolder = hasSelection ? selected\r
\r
// Add Connector Alias\r
Map<String, String> params = new HashMap<String, String>();\r
- if (hasSelection && isTemplate)\r
+ if (hasSelection && isTemplate) {\r
params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID,\r
selected.getIdentifier());\r
+ params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,\r
+ currEnv.getIdentifier());\r
+ }\r
params.put(OpenAkbNodeEditor.PARAM_NODE_TYPE,\r
AkbTypes.AKB_CONNECTOR_ALIAS);\r
\r
\r
// Item Submenu\r
params = new HashMap<String, String>();\r
- if (hasSelection)\r
+ if (hasSelection) {\r
params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID,\r
selected.getIdentifier());\r
+ params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,\r
+ currEnv.getIdentifier());\r
+ }\r
refreshItemsSubmenu(menuManager, window, "menu.itemsSubmenu",\r
"Add Item", isParentItemsFolder || isTemplate, params);\r
\r
// Add Item Folder\r
params = new HashMap<String, String>();\r
- if (hasSelection)\r
+ if (hasSelection) {\r
params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID,\r
selected.getIdentifier());\r
+ params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,\r
+ currEnv.getIdentifier());\r
+ }\r
params.put(OpenAkbNodeEditor.PARAM_NODE_TYPE,\r
AkbTypes.AKB_ITEM_FOLDER);\r
+\r
AkbUiUtils.refreshParameterizedCommand(menuManager, window,\r
"cmd.addItemFolder", OpenAkbNodeEditor.ID,\r
"Add item folder", null, isParentItemsFolder || isTemplate,\r
\r
Object[] visibles = envTreeViewer.getExpandedElements();\r
if (fullRefresh)\r
- envTreeViewer.setInput(initializeResultTree());\r
+ envTreeViewer.setInput(initializeTree());\r
else\r
envTreeViewer.refresh();\r
\r
try {\r
if (obj instanceof Node) {\r
Node node = (Node) obj;\r
- CommandUtils.callCommand(OpenAkbNodeEditor.ID,\r
- OpenAkbNodeEditor.PARAM_NODE_JCR_ID,\r
+ Node currEnv = AkbJcrUtils.getCurrentTemplate(node);\r
+\r
+ // Add Connector Alias\r
+ Map<String, String> params = new HashMap<String, String>();\r
+ params.put(OpenAkbNodeEditor.PARAM_NODE_JCR_ID,\r
node.getIdentifier());\r
+ params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,\r
+ currEnv.getIdentifier());\r
+\r
+ CommandUtils.callCommand(OpenAkbNodeEditor.ID, params);\r
}\r
} catch (RepositoryException e) {\r
throw new AkbException("Cannot open " + obj, e);\r
throw new AkbException("unable to log in for " + ID + " view");\r
}\r
}\r
+\r
+ public void setAkbService(AkbService akbService) {\r
+ this.akbService = akbService;\r
+\r
+ }\r
}
\ No newline at end of file