Improve and simplify OSGi Boot
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / plugin.xml
index 6bdfd6d8b4b8e923a44f42749fd57e3ab3158818..2cf0ba210191824bea9c1854a47d791327b15bbf 100644 (file)
             id="org.argeo.security.ui.admin.userEditor"
             name="User"
             icon="icons/user.gif"
+            default="false">
+               </editor>
+               <editor
+                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
+            id="org.argeo.security.ui.admin.groupEditor"
+            name="User"
+            icon="icons/users.gif"
             default="false">
                </editor>
        </extension>
        </command>
                <command
                        id="org.argeo.security.ui.admin.deleteUsers"
-                       defaultHandler="org.argeo.security.ui.admin.commands.DeleteUsers"
+            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
                        name="Delete User">
                </command>
+               <command
+                       defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+            id="org.argeo.security.ui.admin.userBatchUpdate"
+            name="User batch update">
+               </command>
                <!-- Group CRUD -->
                <command
                        id="org.argeo.security.ui.admin.newGroup"
@@ -63,7 +75,7 @@
                </command>
                <command
             id="org.argeo.security.ui.admin.deleteGroups"
-            defaultHandler="org.argeo.security.ui.admin.commands.DeleteGroups"
+                       defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
             name="Delete Group">
                </command>
                <!-- Transaction -->
 
          <!-- Force the refresh when the various listener are not enough -->
       <command
-            defaultHandler="org.argeo.security.ui.admin.commands.ForceRefresh"
+            defaultHandler="org.argeo.security.ui.admin.internal.commands.ForceRefresh"
             id="org.argeo.security.ui.admin.forceRefresh"
             name="Force Refresh">
       </command>
-      <!-- 
-      <command
-            defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
-            id="org.argeo.security.ui.admin.userBatchUpdate"
-            name="User batch update">
-      </command> -->
        </extension>
        
        <!-- MENU CONTRIBUTIONS -->
                <menuContribution
                        locationURI="toolbar:org.argeo.security.ui.rap.userToolbar?after=org.eclipse.ui.file.saveAll"> 
                        <!-- Transaction management --> 
-                       <command
-                               commandId="org.argeo.security.ui.admin.userTransactionHandler"
-                               icon="icons/begin.gif"
-                               label="Begin Transaction"
-                               style="push"
-                               tooltip="Begin a user transaction">
-<!--                           <visibleWhen>
-                                       <and>
-                                               <with variable="activePart">
-                                                       <instanceof value="org.argeo.cms.CmsEditable" />
-                                               </with>
-                                               <with variable="org.argeo.connect.people.rap.editingState">
-                                                       <equals value="notEditing" />
-                                               </with> -->
-                                               <!-- FIXME : never true, the role condition does not work -->
-                                               <!-- <with variable="roles">
-                                               <iterate ifEmpty="false" operator="or">
-                                                       <equals value="ROLE_BUSINESS_ADMIN" />
-                                               </iterate>
-                                       </with> -->
-<!--                           </and>
-                               </visibleWhen> -->
-                               <parameter name="param.commandId" value="transaction.begin" />
-                       </command>
                        <command
                                commandId="org.argeo.security.ui.admin.userTransactionHandler"
                                icon="icons/commit.gif"
                                style="push"
                                tooltip="Commit a user transaction">
                                <parameter name="param.commandId" value="transaction.commit" />
+                               <visibleWhen>
+                                       <with variable="org.argeo.security.ui.admin.userTransactionState">
+                                               <equals value="status.active" />
+                                       </with>
+                               </visibleWhen>
                        </command>
                        <command
                                commandId="org.argeo.security.ui.admin.userTransactionHandler"
                                style="push"
                                tooltip="Abandon current changes and rollback to the latest commited version">
                                <parameter name="param.commandId" value="transaction.rollback" />
+                               <visibleWhen>
+                                       <with variable="org.argeo.security.ui.admin.userTransactionState">
+                                                       <equals value="status.active" />
+                                       </with>
+                               </visibleWhen>
                        </command>
                </menuContribution>
     
                   label="Add User"
                   tooltip="Create a new user">
             </command>
-            <!--<command
+            <command
                   commandId="org.argeo.security.ui.admin.userBatchUpdate"
                   icon="icons/batch.gif"
                   label="Update users"
                   tooltip="Perform maintenance activities on a list of chosen users">
-            </command>-->
+            </command>
         </menuContribution>
 
        <!-- GroupsView specific toolbar menu -->
             </command>
         </menuContribution> -->
        </extension>
+
+       <!-- SERVICES -->
+       <extension
+       point="org.eclipse.ui.services">
+        <sourceProvider
+               id="org.argeo.security.ui.admin.userTransactionProvider"
+            provider="org.argeo.eclipse.spring.SpringExtensionFactory" >
+                       <variable
+                   name="org.argeo.security.ui.admin.userTransactionState"
+                   priorityLevel="workbench">
+               </variable>
+               </sourceProvider>
+       </extension>
   
        <!-- ACTIVITIES -->
        <extension
                point="org.eclipse.ui.activities">
-               <activityPatternBinding
+               <!-- group admin is intended to make all user and group maintenance operations -->
+               <!--<activityPatternBinding
                        activityId="org.argeo.security.ui.userAdminActivity"
                        isEqualityPattern="true"
                        pattern="org.argeo.security.ui.admin/org.argeo.security.ui.admin.adminSecurityPerspective">
-               </activityPatternBinding>
+               </activityPatternBinding>-->
                <activityPatternBinding
                        activityId="org.argeo.security.ui.groupAdminActivity"
                        isEqualityPattern="true"
-                       pattern="org.argeo.security.ui.admin/org.argeo.security.ui.admin.adminRolesView">
+                       pattern="org.argeo.security.ui.admin/org.argeo.security.ui.admin.adminSecurityPerspective">
                </activityPatternBinding>
        </extension>
+       
+       <!-- STARTUP  --> 
+       <extension point="org.eclipse.ui.startup">
+               <startup class="org.argeo.security.ui.admin.internal.PartStateChanged"/>
+       </extension>
 </plugin>
\ No newline at end of file