class="org.argeo.eclipse.spring.SpringExtensionFactory"
icon="icons/treeView.png"
id="org.argeo.slc.akb.ui.akbTemplatesTreeView"
- name="Akb Templates"
+ name="AKB Templates"
restorable="true">
</view>
<view
class="org.argeo.eclipse.spring.SpringExtensionFactory"
icon="icons/treeView.png"
id="org.argeo.slc.akb.ui.environmentsTreeView"
- name="Akb Environments"
+ name="AKB Environments"
restorable="true">
</view>
</extension>
public final static Image TEMPLATE = AkbUiPlugin.getImageDescriptor(
"icons/template.gif").createImage();
+ public final static Image ACTIVE_ENV = AkbUiPlugin.getImageDescriptor(
+ "icons/environment.png").createImage();
+
public final static Image CONNECTOR_FOLDER = AkbUiPlugin
.getImageDescriptor("icons/connectors.gif").createImage();
public final static Image ITEM_FOLDER = AkbUiPlugin.getImageDescriptor(
"icons/itemFolder.gif").createImage();
+
public final static Image JDBC_CONNECTOR = AkbUiPlugin.getImageDescriptor(
"icons/jdbcConnector.gif").createImage();
public final static Image JDBC_QUERY = AkbUiPlugin.getImageDescriptor(
else
return null;
}
-}
+}
\ No newline at end of file
else
return node.getName();
}
+ if (element instanceof String)
+ return (String) element;
+
} catch (RepositoryException e) {
throw new AkbException("Unexpected error while getting "
+ "Custom node label", e);
return AkbImages.JDBC_QUERY;
else if (node.isNodeType(AkbTypes.AKB_ENV_TEMPLATE))
return AkbImages.TEMPLATE;
+ else if (node.isNodeType(AkbTypes.AKB_ENV))
+ return AkbImages.ACTIVE_ENV;
else if (node.isNodeType(AkbTypes.AKB_CONNECTOR_FOLDER))
return AkbImages.CONNECTOR_FOLDER;
}
--- /dev/null
+package org.argeo.slc.akb.ui.utils;
+
+import javax.jcr.Node;
+import javax.jcr.Property;
+import javax.jcr.RepositoryException;
+
+import org.argeo.slc.akb.AkbException;
+import org.argeo.slc.akb.AkbTypes;
+import org.argeo.slc.akb.ui.providers.ActiveTreeItem;
+import org.argeo.slc.akb.utils.AkbJcrUtils;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+
+/** Enable specific sorting of the ResultTreeView */
+public class AkbItemsComparator extends ViewerComparator {
+
+ @Override
+ public int category(Object element) {
+ Node currNode = null;
+ if (element instanceof ActiveTreeItem)
+ currNode = ((ActiveTreeItem) element).getNode();
+ else if (element instanceof Node)
+ currNode = (Node) element;
+ else if (element instanceof String)
+ // TODO why do we have strings
+ return 10;
+ else
+ throw new AkbException("Unsupported tree item element type "
+ + element);
+
+ try {
+ if (currNode.isNodeType(AkbTypes.AKB_ITEM_FOLDER))
+ // folder always first
+ return 5;
+ } catch (RepositoryException e) {
+ throw new AkbException("Cannot retrieve category for item", e);
+ }
+ return 10;
+ }
+
+ @Override
+ public int compare(Viewer viewer, Object e1, Object e2) {
+ int cat1 = category(e1);
+ int cat2 = category(e2);
+
+ if (cat1 != cat2) {
+ return cat1 - cat2;
+ }
+
+ // TODO we only check on one item, types are not mixed for the time
+ // being
+ Node an = null;
+ Node bn = null;
+ if (e1 instanceof ActiveTreeItem) {
+ an = ((ActiveTreeItem) e1).getNode();
+ bn = ((ActiveTreeItem) e2).getNode();
+ } else if (e1 instanceof Node) {
+ an = ((Node) e1);
+ bn = ((Node) e2);
+ } else
+ throw new AkbException("Unsupported tree item element type " + e1);
+
+ return super.compare(viewer, AkbJcrUtils.get(an, Property.JCR_TITLE),
+ AkbJcrUtils.get(bn, Property.JCR_TITLE));
+ }
+}
\ No newline at end of file
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.utils.AkbJcrUtils;\r
import org.eclipse.jface.action.IContributionItem;\r
\r
envTreeViewer = createTreeViewer(parent);\r
envTreeViewer.setInput(initializeTree());\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.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 createTreeViewer(Composite parent) {\r
parent.setLayout(AkbUiUtils.gridLayoutNoBorder());\r
import org.argeo.slc.akb.ui.providers.ActiveEnvsTreeContentProvider;\r
import org.argeo.slc.akb.ui.providers.ActiveTreeItem;\r
import org.argeo.slc.akb.ui.providers.AkbTreeLabelProvider;\r
+import org.argeo.slc.akb.ui.utils.AkbItemsComparator;\r
import org.argeo.slc.akb.ui.utils.Refreshable;\r
import org.eclipse.jface.action.IMenuListener;\r
import org.eclipse.jface.action.IMenuManager;\r
initialize();\r
envTreeViewer = createTreeViewer(parent);\r
envTreeViewer.setInput(activeEnvsParentNode);\r
+ envTreeViewer.setComparator(new AkbItemsComparator());\r
}\r
\r
// The main tree viewer\r
valueTxt.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
- //TODO implement here name validation.
+ // TODO implement here name validation.
getWizard().getContainer().updateButtons();
}
});
useDefaultConnChk = new Button(container, SWT.CHECK);
useDefaultConnChk.setText("Import default connectors");
+ useDefaultConnChk.setSelection(true);
setControl(container);
}