<!-- Commands definitions -->
<extension
point="org.eclipse.ui.commands">
+ <command
+ defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+ id="org.argeo.slc.client.ui.updateModule"
+ name="Update Module">
+ </command>
<!-- Result List
<command
defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
<extension
id="menu:org.eclipse.ui.main.menu"
point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="toolbar:org.argeo.slc.client.ui.jcrExecutionModulesView">
+ <command
+ commandId="org.argeo.slc.client.ui.updateModule"
+ icon="icons/refresh.png"
+ label="Update module"
+ tooltip="Update module">
+ </command>
+ </menuContribution>
<!--
<menuContribution
locationURI="menu:fileMenu">
--- /dev/null
+package org.argeo.slc.client.ui.commands;\r
+\r
+import java.util.Iterator;\r
+\r
+import javax.jcr.Node;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.argeo.eclipse.ui.Error;\r
+import org.argeo.slc.BasicNameVersion;\r
+import org.argeo.slc.NameVersion;\r
+import org.argeo.slc.deploy.ModulesManager;\r
+import org.argeo.slc.jcr.SlcNames;\r
+import org.argeo.slc.jcr.SlcTypes;\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.jface.viewers.ISelection;\r
+import org.eclipse.jface.viewers.IStructuredSelection;\r
+import org.eclipse.ui.handlers.HandlerUtil;\r
+\r
+/** Deletes one or many results */\r
+public class UpdateModule extends AbstractHandler {\r
+ private final static Log log = LogFactory.getLog(UpdateModule.class);\r
+\r
+ private ModulesManager modulesManager;\r
+\r
+ public Object execute(ExecutionEvent event) throws ExecutionException {\r
+ ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)\r
+ .getActivePage().getSelection();\r
+ if (selection != null && selection instanceof IStructuredSelection) {\r
+ Iterator<?> it = ((IStructuredSelection) selection).iterator();\r
+ Object obj = null;\r
+ try {\r
+ while (it.hasNext()) {\r
+ obj = it.next();\r
+ if (obj instanceof Node) {\r
+ Node node = (Node) obj;\r
+ if (node.isNodeType(SlcTypes.SLC_EXECUTION_MODULE)) {\r
+ NameVersion nameVersion = new BasicNameVersion(\r
+ node.getProperty(SlcNames.SLC_NAME)\r
+ .getString(), node.getProperty(\r
+ SlcNames.SLC_VERSION).getString());\r
+ modulesManager.upgrade(nameVersion);\r
+ log.info("Module " + nameVersion + " updated");\r
+ }\r
+ }\r
+ }\r
+ } catch (Exception e) {\r
+ Error.show("Cannot update " + obj, e);\r
+ }\r
+ }\r
+ return null;\r
+ }\r
+\r
+ public void setModulesManager(ModulesManager modulesManager) {\r
+ this.modulesManager = modulesManager;\r
+ }\r
+\r
+}\r