]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Update bundles
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 2 May 2011 17:28:56 +0000 (17:28 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 2 May 2011 17:28:56 +0000 (17:28 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@4498 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

eclipse/plugins/org.argeo.slc.client.ui/META-INF/spring/commands.xml
eclipse/plugins/org.argeo.slc.client.ui/META-INF/spring/osgi.xml
eclipse/plugins/org.argeo.slc.client.ui/plugin.xml
eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/commands/UpdateModule.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java

index 45f09032638ea16ea61d4c84b3fd18443d5ebedb..fbbd20729a2f13a69b09c9976c783adc570586df 100644 (file)
@@ -4,6 +4,12 @@
        xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd">
 
+       <bean id="updateModule"
+               class="org.argeo.slc.client.ui.commands.UpdateModule"
+               scope="prototype">
+               <property name="modulesManager" ref="modulesManager"/>
+       </bean>
+
        <!-- Result list view commands-->
 <!--   <bean id="org.argeo.slc.client.ui.refreshResultList" -->
 <!--           class="org.argeo.slc.client.ui.commands.ResultListViewRefreshHandler" -->
index 311b9bd2ee02ec385bda7c869ae657a16d758aaf..657cf6ccd0060d4b11f354a9337e689a9b7480aa 100644 (file)
@@ -18,6 +18,8 @@
                <osgi:listener ref="processController" bind-method="register"\r
                        unbind-method="unregister" />\r
        </list>\r
+       <reference id="modulesManager"\r
+               interface="org.argeo.slc.execution.ExecutionModulesManager" />\r
 \r
 \r
        <!-- Services exposed by the current bundle -->\r
index d066fe2d28992f75f5a232995ad6036fc1123412..c82f32d5559a0f65f174ab024c6bf68db540198e 100644 (file)
        <!-- 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">
diff --git a/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/commands/UpdateModule.java b/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/commands/UpdateModule.java
new file mode 100644 (file)
index 0000000..341ac6d
--- /dev/null
@@ -0,0 +1,60 @@
+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
index d87be4f29f90cfab9f9a8fcf52218fd6dfe16963..00e517c5373fbbd1916df553576e3c3a633904e7 100644 (file)
@@ -66,6 +66,7 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes,
                viewer.setLabelProvider(viewLabelProvider);
                viewer.setInput(getViewSite());
                viewer.addDoubleClickListener(new ViewDoubleClickListener());
+               getViewSite().setSelectionProvider(viewer);
 
                Transfer[] tt = new Transfer[] { TextTransfer.getInstance() };
                // Transfer[] tt = new Transfer[] { EditorInputTransfer.getInstance() };
@@ -199,6 +200,7 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes,
 
        class VmAgentObserver extends AsyncUiEventListener {
                protected void onEventInUiThread(EventIterator events) {
+                       // TODO: optimize based on event
                        viewer.refresh();
                }
        }