import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.handlers.HandlerUtil;
public final static String PARAM_NODE_JCR_ID = "param.nodeJcrId";
- // public final static String PARAM_NODE_TYPE = "param.nodeType";
-
public Object execute(ExecutionEvent event) throws ExecutionException {
- // String nodeType = event.getParameter(PARAM_NODE_TYPE);
String nodeJcrId = event.getParameter(PARAM_NODE_JCR_ID);
Session session = null;
try {
+ session = repository.login();
+
// caches current Page
IWorkbenchPage currentPage = HandlerUtil.getActiveWorkbenchWindow(
event).getActivePage();
if (nodeJcrId != null)
node = session.getNodeByIdentifier(nodeJcrId);
- // no node has been found or created, return silently
- if (node == null)
- return null;
-
IEditorPart currPart = currentPage
.findEditor(new AkbNodeEditorInput(nodeJcrId));
if (currPart != null)
currPart.dispose();
+
+ if (node != null) {
+ Boolean ok = MessageDialog.openConfirm(
+ HandlerUtil.getActiveShell(event), "Confirm deletion",
+ "Do you want to delete this item?");
+
+ if (ok) {
+ node.remove();
+ session.save();
+ }
+ }
} catch (RepositoryException e) {
throw new AkbException("JCR error while deleting node" + nodeJcrId
+ " editor", e);
import javax.jcr.Node;
import javax.jcr.Property;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import org.argeo.eclipse.ui.utils.CommandUtils;
+import org.argeo.slc.akb.AkbException;
+import org.argeo.slc.akb.AkbNames;
import org.argeo.slc.akb.ui.AkbUiUtils;
+import org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor;
import org.argeo.slc.akb.utils.AkbJcrUtils;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.AbstractFormPart;
import org.eclipse.ui.forms.IManagedForm;
// To enable set focus
private Text titleTxt;
+ private Combo typeCmb;
+
+ private List<Node> definedAliases;
public ItemTemplateTitleComposite(Composite parent, int style,
FormToolkit toolkit, IManagedForm form, Node akbNode) {
// Initialization
Composite parent = this;
- parent.setLayout(new GridLayout(4, false));
+ parent.setLayout(new GridLayout(5, false));
// first line: Item name
toolkit.createLabel(parent, "Name");
titleTxt = toolkit.createText(parent, "", SWT.BORDER);
- GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false, 3, 1);
+ GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false, 4, 1);
titleTxt.setLayoutData(gd);
// Second line: alias management
toolkit.createLabel(parent, "Alias");
- final Combo typeCmb = new Combo(parent, SWT.READ_ONLY);
-
- // TODO enable live refresh
- final List<Node> definedAliases = AkbJcrUtils
- .getDefinedAliasForNode(akbNode);
-
- final String[] names = new String[definedAliases.size()];
- int i = 0;
- for (Node node : definedAliases)
- names[i++] = AkbJcrUtils.get(node, Property.JCR_TITLE);
- typeCmb.setItems(names);
-
+ typeCmb = new Combo(parent, SWT.READ_ONLY);
+ toolkit.adapt(typeCmb, false, false);
gd = new GridData(SWT.FILL, SWT.TOP, true, false, 3, 1);
typeCmb.setLayoutData(gd);
+ final Link openAliasLk = new Link(parent, SWT.NONE);
+ toolkit.adapt(openAliasLk, false, false);
+ openAliasLk.setText("<a> Edit Alias </a>");
+ openAliasLk.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(final SelectionEvent event) {
+ int index = typeCmb.getSelectionIndex();
+ if (index != -1) {
+ Node currAlias = definedAliases.get(index);
+ String id = AkbJcrUtils.getIdentifierQuietly(currAlias);
+ CommandUtils.callCommand(OpenAkbNodeEditor.ID,
+ OpenAkbNodeEditor.PARAM_NODE_JCR_ID, id);
+ } else
+ MessageDialog.openError(getShell(), "Error",
+ "No selected alias");
+ }
+ });
+ //
+ // final Link testAliasLk= new Link(parent, SWT.NONE);
+ // openAliasLk.setText("<a> Edit Alias </a>");
+ // openAliasLk.addSelectionListener(new SelectionAdapter() {
+ // private static final long serialVersionUID = 1L;
+ //
+ // @Override
+ // public void widgetSelected(final SelectionEvent event) {
+ // MessageDialog.openInformation(getShell(), "test", "test");
+ // }
+ // });
+
// 3rd line: description
Label lbl = toolkit.createLabel(parent, "Description");
lbl.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false));
final Text descTxt = toolkit.createText(parent, "", SWT.BORDER
| SWT.MULTI | SWT.WRAP);
- gd = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
+ gd = new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1);
descTxt.setLayoutData(gd);
// Part Management
AkbUiUtils.refreshFormTextWidget(descTxt, akbNode,
Property.JCR_DESCRIPTION);
- // TODO implement this
- // typeCmb.select(getCurrTypeIndex());
+ refreshTypeCmbValues();
+ typeCmb.select(getCurrAliasIndex());
typeCmb.setEnabled(AkbJcrUtils.isNodeCheckedOutByMe(akbNode));
}
};
typeCmb.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent event) {
- // try {
- int oldIndex = -1; // getCurrTypeIndex();
- int selIndex = typeCmb.getSelectionIndex();
-
- // insure something has really been modified
- if (selIndex < 0 || oldIndex == selIndex)
- return;
-
- // TODO set new alias
- part.markDirty();
- // } catch (RepositoryException e) {
- // throw new AkbException(
- // "Error while updating connector alias", e);
- // }
+ try {
+ int oldIndex = getCurrAliasIndex();
+ int selIndex = typeCmb.getSelectionIndex();
+
+ // insure something has really been modified
+ if (selIndex < 0 || oldIndex == selIndex)
+ return;
+
+ // set new alias
+ Node newAlias = definedAliases.get(selIndex);
+ akbNode.setProperty(AkbNames.AKB_USED_CONNECTOR,
+ newAlias.getPath());
+ part.markDirty();
+ } catch (RepositoryException e) {
+ throw new AkbException(
+ "Error while updating connector alias", e);
+ }
}
});
form.addPart(part);
}
+ private void refreshTypeCmbValues() {
+ List<Node> newAliases = AkbJcrUtils.getDefinedAliasForNode(akbNode);
+ boolean hasChanged = false;
+ // manually ckeck if something has changed
+ if (definedAliases == null
+ || newAliases.size() != definedAliases.size())
+ hasChanged = true;
+ else {
+
+ for (int i = 0; i < newAliases.size(); i++) {
+ if (!newAliases.get(i).equals(definedAliases.get(i))) {
+ hasChanged = true;
+ break;
+ }
+ }
+ }
+
+ if (hasChanged) {
+ definedAliases = newAliases;
+ final String[] names = new String[definedAliases.size()];
+ int i = 0;
+ for (Node node : definedAliases)
+ names[i++] = AkbJcrUtils.get(node, Property.JCR_TITLE);
+ typeCmb.setItems(names);
+ }
+ }
+
+ /**
+ * Returns the index in definedAliases list of the CURRENT defined alias as
+ * set in the item node <CODE>AkbNames.AKB_USED_CONNECTOR</CODE> if defined,
+ * -1 otherwise
+ */
+ private int getCurrAliasIndex() {
+ try {
+ String path = null;
+ int currAliasIndex = -1;
+ if (akbNode.hasProperty(AkbNames.AKB_USED_CONNECTOR))
+ path = akbNode.getProperty(AkbNames.AKB_USED_CONNECTOR)
+ .getString();
+
+ Session session = akbNode.getSession();
+ if (path != null && session.nodeExists(path)) {
+ for (int i = 0; i < definedAliases.size(); i++) {
+ if (path.equals(definedAliases.get(i).getPath())) {
+ currAliasIndex = i;
+ break;
+ }
+ }
+ // does not work
+ // Node chosenAlias = session.getNode(path);
+ // currAliasIndex = definedAliases.indexOf(chosenAlias);
+ }
+ return currAliasIndex;
+ } catch (RepositoryException re) {
+ throw new AkbException("Unable to retrieve current Alias", re);
+ }
+ }
+
@Override
public boolean setFocus() {
return titleTxt.setFocus();
private final String title;
private String[] itemTypesLbl = new String[] { "SSH File", "SSH Command",
- "JDBC Connection" };
+ "JDBC Query" };
private String[] itemTypes = new String[] { AkbTypes.AKB_SSH_FILE,
AkbTypes.AKB_SSH_COMMAND, AkbTypes.AKB_JDBC_QUERY };
import org.argeo.jcr.JcrUtils;
import org.argeo.slc.akb.AkbException;
import org.argeo.slc.akb.AkbService;
+import org.argeo.slc.akb.ui.AkbUiUtils;
import org.argeo.slc.akb.utils.AkbJcrUtils;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.SWT;
protected void addPages() {
try {
addPage(new ConnectorAliasPage(this, "mainPage", "Main"));
- // TODO Add history page
- // addPage(new ConnectorAliasPage(this, "mainPage", "Main"));
+ // Add AKB Type specific pages
+ addOtherPages();
+ addPage(new HistoryPage(this, "historyPage", "History"));
} catch (PartInitException e) {
throw new AkbException("Unable to initialise pages for editor "
+ getEditorId(), e);
}
}
+ /**
+ * Display history
+ */
+ private class HistoryPage extends FormPage {
+
+ public HistoryPage(FormEditor editor, String id, String title) {
+ super(editor, id, title);
+ }
+
+ protected void createFormContent(IManagedForm managedForm) {
+ super.createFormContent(managedForm);
+ ScrolledForm form = managedForm.getForm();
+ form.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ Composite parent = form.getBody();
+ parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
+ getToolkit().createLabel(parent,
+ "This page will display history " + "for current AKB Node");
+ }
+ }
+
/* EXPOSES TO CHILDREN CLASSES */
protected Session getSession() {
return session;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
/**
- * Display and edit a connector Alias
+ * Parent class for most akb items editor. Factorizes UI parts that are common
+ * in various item types.
*/
public abstract class AkbItemTemplateEditor extends AbstractAkbNodeEditor {
Composite bottomCmp = getToolkit().createComposite(parent);
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
bottomCmp.setLayoutData(gd);
- populateBottomPart(bottomCmp);
+ populateBottomPart(bottomCmp, managedForm);
}
@Override
protected void addOtherPages() throws PartInitException {
- // TODO implement addition of the test page
+ addPage(new TestPage(this, "testPage", "Test"));
}
/** Overwrite to add specific bottom part depending on the item type */
- abstract protected void populateBottomPart(Composite parent);
+ abstract protected void populateBottomPart(Composite parent,
+ IManagedForm managedForm);
+
+ /**
+ * Display history
+ */
+ private class TestPage extends FormPage {
+
+ public TestPage(FormEditor editor, String id, String title) {
+ super(editor, id, title);
+ }
+
+ protected void createFormContent(IManagedForm managedForm) {
+ super.createFormContent(managedForm);
+ ScrolledForm form = managedForm.getForm();
+ form.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ Composite parent = form.getBody();
+ populateTestPage(parent);
+ }
+ }
+
+ protected void populateTestPage(Composite parent) {
+ parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
+ getToolkit().createLabel(
+ parent,
+ "This page will display a test page "
+ + "using default connection for the chosen alias");
+ }
+
}
\ No newline at end of file
import org.eclipse.ui.forms.IManagedForm;
/**
- * Display and edit a connector Alias
+ * Display and edit an environment template
*/
public class EnvTemplateEditor extends AbstractAkbNodeEditor {
package org.argeo.slc.akb.ui.editors;
+import org.argeo.slc.akb.AkbNames;
import org.argeo.slc.akb.ui.AkbUiPlugin;
import org.argeo.slc.akb.ui.AkbUiUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.AbstractFormPart;
+import org.eclipse.ui.forms.IManagedForm;
/**
- * Display and edit a connector Alias
+ * Display and edit a jdbc query
*/
public class JdbcQueryTemplateEditor extends AkbItemTemplateEditor {
}
@Override
- protected void populateBottomPart(Composite parent) {
+ protected void populateBottomPart(Composite parent, IManagedForm managedForm) {
parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
- getToolkit().createLabel(parent, "Implement this");
+ Group group = new Group(parent, SWT.NO_FOCUS);
+ getToolkit().adapt(group, false, false);
+ group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ group.setLayout(new GridLayout(1, false));
+
+ // first line: Description
+ getToolkit().createLabel(group, "Enter below a valid JDBC Query");
+
+ // 2nd line: the query
+ final Text queryTxt = getToolkit().createText(group, "",
+ SWT.BORDER | SWT.MULTI | SWT.WRAP);
+ GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
+ queryTxt.setLayoutData(gd);
+
+ // Part Management
+ final AbstractFormPart part = new AbstractFormPart() {
+ public void refresh() {
+ super.refresh();
+ // update display value
+ AkbUiUtils.refreshFormTextWidget(queryTxt, getAkbNode(),
+ AkbNames.AKB_QUERY_TEXT);
+ }
+ };
+ // Listeners
+ AkbUiUtils.addTextModifyListener(queryTxt, getAkbNode(),
+ AkbNames.AKB_QUERY_TEXT, part);
+ managedForm.addPart(part);
}
-}
\ No newline at end of file
+
+}
package org.argeo.slc.akb.ui.editors;
+import org.argeo.slc.akb.AkbNames;
import org.argeo.slc.akb.ui.AkbUiPlugin;
import org.argeo.slc.akb.ui.AkbUiUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.AbstractFormPart;
+import org.eclipse.ui.forms.IManagedForm;
/**
- * Display and edit a connector Alias
+ * Display and edit a SSH Command Template ITEM
*/
public class SshCommandTemplateEditor extends AkbItemTemplateEditor {
}
@Override
- protected void populateBottomPart(Composite parent) {
+ protected void populateBottomPart(Composite parent, IManagedForm managedForm) {
parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
- getToolkit().createLabel(parent, "Implement this");
+ Group group = new Group(parent, SWT.NO_FOCUS);
+ getToolkit().adapt(group, false, false);
+ group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ group.setLayout(new GridLayout(1, false));
+
+ // first line: Description
+ getToolkit().createLabel(group, "Enter below a valid SSH command");
+
+ // 2nd line: the query
+ final Text queryTxt = getToolkit().createText(group, "",
+ SWT.BORDER | SWT.MULTI | SWT.WRAP);
+ GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
+ queryTxt.setLayoutData(gd);
+
+ // Part Management
+ final AbstractFormPart part = new AbstractFormPart() {
+ public void refresh() {
+ super.refresh();
+ // update display value
+ AkbUiUtils.refreshFormTextWidget(queryTxt, getAkbNode(),
+ AkbNames.AKB_COMMAND_TEXT);
+ }
+ };
+ // Listeners
+ AkbUiUtils.addTextModifyListener(queryTxt, getAkbNode(),
+ AkbNames.AKB_COMMAND_TEXT, part);
+ managedForm.addPart(part);
}
}
\ No newline at end of file
package org.argeo.slc.akb.ui.editors;
+import org.argeo.slc.akb.AkbNames;
import org.argeo.slc.akb.ui.AkbUiPlugin;
import org.argeo.slc.akb.ui.AkbUiUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.AbstractFormPart;
+import org.eclipse.ui.forms.IManagedForm;
/**
- * Display and edit a connector Alias
+ * Display and edit a connection to a file on a distant accessible by SSH server
*/
public class SshFileTemplateEditor extends AkbItemTemplateEditor {
}
@Override
- protected void populateBottomPart(Composite parent) {
+ protected void populateBottomPart(Composite parent, IManagedForm managedForm) {
parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
- getToolkit().createLabel(parent, "Implement this");
+ Group group = new Group(parent, SWT.NO_FOCUS);
+ getToolkit().adapt(group, false, false);
+ group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ group.setLayout(new GridLayout(1, false));
+
+ // first line: Description
+ getToolkit().createLabel(group,
+ "Enter below a valid path in the target server");
+
+ // 2nd line: the path
+ final Text pathTxt = getToolkit().createText(group, "",
+ SWT.BORDER | SWT.SINGLE);
+ GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);
+ pathTxt.setLayoutData(gd);
+
+ // Part Management
+ final AbstractFormPart part = new AbstractFormPart() {
+ public void refresh() {
+ super.refresh();
+ // update display value
+ AkbUiUtils.refreshFormTextWidget(pathTxt, getAkbNode(),
+ AkbNames.AKB_FILE_PATH);
+ }
+ };
+ // Listeners
+ AkbUiUtils.addTextModifyListener(pathTxt, getAkbNode(),
+ AkbNames.AKB_FILE_PATH, part);
+ managedForm.addPart(part);
}
}
\ No newline at end of file
import org.argeo.slc.akb.AkbNames;\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.DeleteAkbNodes;\r
import org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor;\r
import org.argeo.slc.akb.ui.providers.AkbTreeLabelProvider;\r
private EventListener allResultsObserver = null;\r
private final static String[] observedNodeTypesUnderAllResults = {\r
AkbTypes.AKB_ENV_TEMPLATE, AkbTypes.AKB_CONNECTOR_ALIAS,\r
- AkbTypes.AKB_ITEM, AkbTypes.AKB_ITEM_FOLDER };\r
+ AkbTypes.AKB_ITEM, AkbTypes.AKB_ITEM_FOLDER,\r
+ AkbTypes.AKB_CONNECTOR_FOLDER };\r
\r
// private EventListener myResultsObserver = null;\r
// private EventListener allResultsObserver = null;\r
// sashForm.setWeights(getWeights());\r
\r
// setOrderedInput(resultTreeViewer);\r
-\r
- // Initialize observer\r
- // try {\r
- // ObservationManager observationManager = session.getWorkspace()\r
- // .getObservationManager();\r
- // myResultsObserver = new MyResultsObserver(resultTreeViewer\r
- // .getTree().getDisplay());\r
- // allResultsObserver = new AllResultsObserver(resultTreeViewer\r
- // .getTree().getDisplay());\r
- //\r
- // // observe tree changes under MyResults\r
- // observationManager.addEventListener(myResultsObserver,\r
- // Event.NODE_ADDED | Event.NODE_REMOVED,\r
- // SlcJcrResultUtils.getMyResultsBasePath(session), true,\r
- // null, observedNodeTypesUnderMyResult, false);\r
- // // observe tree changes under All results\r
- // observationManager.addEventListener(allResultsObserver,\r
- // Event.NODE_ADDED | Event.NODE_REMOVED,\r
- // SlcJcrResultUtils.getSlcResultsBasePath(session), true,\r
- // null, observedNodeTypesUnderAllResults, false);\r
- // } catch (RepositoryException e) {\r
- // throw new SlcException("Cannot register listeners", e);\r
- // }\r
}\r
\r
/**\r
\r
// The main tree viewer\r
protected TreeViewer createResultsTreeViewer(Composite parent) {\r
+ parent.setLayout(AkbUiUtils.gridLayoutNoBorder());\r
int style = SWT.BORDER | SWT.MULTI;\r
\r
TreeViewer viewer = new TreeViewer(parent, style);\r
\r
protected void onEventInUiThread(List<Event> events)\r
throws RepositoryException {\r
- resultTreeViewer.setInput(initializeResultTree());\r
- // if (lastSelectedSourceElementParent != null)\r
- // refresh(lastSelectedSourceElementParent);\r
+ boolean fullRefresh = false;\r
+\r
+ eventLoop: for (Event event : events) {\r
+ String currPath = event.getPath();\r
+ if (session.nodeExists(currPath)) {\r
+ Node node = session.getNode(currPath);\r
+ if (node.isNodeType(AkbTypes.AKB_ENV_TEMPLATE)) {\r
+ fullRefresh = true;\r
+ break eventLoop;\r
+ }\r
+ }\r
+ }\r
+\r
+ Object[] visibles = resultTreeViewer.getExpandedElements();\r
+ if (fullRefresh)\r
+ resultTreeViewer.setInput(initializeResultTree());\r
+ else\r
+ resultTreeViewer.refresh();\r
+\r
+ resultTreeViewer.setExpandedElements(visibles);\r
}\r
}\r
\r
\r
private Node[] initializeResultTree() {\r
try {\r
-\r
NodeIterator ni = templatesParentNode.getNodes();\r
List<Node> templates = new ArrayList<Node>();\r
\r
}\r
\r
Node[] templateArr = templates.toArray(new Node[templates.size()]);\r
-\r
return templateArr;\r
} catch (RepositoryException re) {\r
throw new AkbException("Error while initializing templates Tree.",\r
public final static String AKB_CONNECTOR_URL = "akb:connectorUrl";
/* ITEMS PROPERTIES */
+ public final static String AKB_USED_CONNECTOR = "akb:usedConnector";
+
+ public final static String AKB_FILE_PATH = "akb:filePath";
+ public final static String AKB_COMMAND_TEXT = "akb:commandText";
+ public final static String AKB_QUERY_TEXT = "akb:queryText";
}
\ No newline at end of file
// GENERIC ITEM
//
[akb:item] > nt:unstructured
+// a path to the corresponding connector
+- akb:usedConnector (STRING)
+
//
// GENERIC ITEM FOLDER
// SSH FILE
//
[akb:sshFile] > akb:item
+- akb:filePath (STRING)
//
// SSH COMMAND
//
[akb:sshCommand] > akb:item
+- akb:commandText (STRING)
//
// JDBC QUERY
//
[akb:jdbcQuery] > akb:item
+- akb:queryText (STRING)
+
//