You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/09/14 17:46:29 UTC

[07/13] isis git commit: Fix ISIS-1715 menuOrder Dewey Decimal format not honored

Fix ISIS-1715 menuOrder Dewey Decimal format not honored

Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/1b60ce18
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/1b60ce18
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/1b60ce18

Branch: refs/heads/master
Commit: 1b60ce18f28e7369364e5712c546f6da32099c6a
Parents: 312ac31
Author: hobrom <ho...@gmx.at>
Authored: Tue Sep 12 18:03:50 2017 +0200
Committer: hobrom <ho...@gmx.at>
Committed: Tue Sep 12 18:03:50 2017 +0200

----------------------------------------------------------------------
 .../domainservice/DomainServiceMenuOrder.java   | 40 +++++++++-------
 .../ServicesInstallerFromAnnotation.java        |  2 +-
 .../serviceactions/ServiceActionUtil.java       |  3 --
 .../serviceactions/ServiceAndAction.java        |  6 +--
 .../serviceactions/ServiceAndActionOrder.java   | 49 --------------------
 5 files changed, 24 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/1b60ce18/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder.java
index f681449..67224b1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder.java
@@ -22,40 +22,44 @@ package org.apache.isis.core.metamodel.facets.object.domainservice;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.core.commons.compare.SequenceCompare;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 
 public class DomainServiceMenuOrder {
+	
+	private final static String UNDEFINED = "" + Integer.MAX_VALUE;
 
-	public static int compare(ObjectAdapter serviceAdapter1, ObjectAdapter serviceAdapter2) {
-		
-		return SequenceCompare.compareNullLast(
-				orderOf(serviceAdapter1.getSpecification().getCorrespondingClass()),
-				orderOf(serviceAdapter2.getSpecification().getCorrespondingClass()) );
-	}
+	//TODO can be safely removed
+//	public static int compare(ObjectAdapter serviceAdapter1, ObjectAdapter serviceAdapter2) {
+//		return SequenceCompare.compareNullLast(
+//				orderOf(serviceAdapter1.getSpecification().getCorrespondingClass()),
+//				orderOf(serviceAdapter2.getSpecification().getCorrespondingClass()) );
+//	}
 	
-	// -- HELPER
-    
     public static String orderOf(final Class<?> cls) {
         final DomainServiceLayout domainServiceLayout = cls.getAnnotation(DomainServiceLayout.class);
         String dslayoutOrder = domainServiceLayout != null ? domainServiceLayout.menuOrder(): null;
         final DomainService domainService = cls.getAnnotation(DomainService.class);
-        String dsOrder = domainService != null ? domainService.menuOrder() : "" + Integer.MAX_VALUE;
-
-        return minimumOf(dslayoutOrder, dsOrder);
+        String dsOrder = domainService != null ? domainService.menuOrder() : null;
+        
+        String min = minimumOf(dslayoutOrder, dsOrder);
+        return min!=null ? min : UNDEFINED; 
     }
 
+	// -- HELPER
+
     private static String minimumOf(final String dslayoutOrder, final String dsOrder) {
-        if(isUndefined(dslayoutOrder)) {
+        if(isUndefined(dslayoutOrder))
             return dsOrder;
-        }
-        if(isUndefined(dsOrder)) {
+        if(isUndefined(dsOrder))
             return dslayoutOrder;
-        }
-        return dslayoutOrder.compareTo(dsOrder) < 0 ? dslayoutOrder : dsOrder;
+        
+        //XXX ISIS-1715 honor member order (use Dewey Decimal format)
+        return SequenceCompare.compareNullLast(dslayoutOrder, dsOrder) < 0
+        		? dslayoutOrder 
+        		: dsOrder;
     }
 
     private static boolean isUndefined(final String str) {
-        return str == null || str.equals("" + Integer.MAX_VALUE);
+        return str == null || str.equals(UNDEFINED);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/1b60ce18/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
index e9031bb..5a2ca5a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
@@ -233,7 +233,7 @@ public class ServicesInstallerFromAnnotation extends ServicesInstallerAbstract {
 
     //endregion
 
-    //region > helpers: orderOf, nameOf, asList
+    //region > helpers: nameOf, asList
 
     private static String nameOf(final Class<?> cls) {
         final DomainServiceLayout domainServiceLayout = cls.getAnnotation(DomainServiceLayout.class);

http://git-wip-us.apache.org/repos/asf/isis/blob/1b60ce18/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index efc2ea4..3f01ece 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -203,9 +203,6 @@ public final class ServiceActionUtil {
             collateServiceActions(serviceAdapter, ActionType.USER, serviceActions);
             collateServiceActions(serviceAdapter, ActionType.PROTOTYPE, serviceActions);
         }
-
-        //XXX ISIS-1715 honor member order
-        Collections.sort(serviceActions);
         
         final Set<String> serviceNamesInOrder = serviceNamesInOrder(serviceAdapters, serviceActions);
         final Map<String, List<ServiceAndAction>> serviceActionsByName = groupByServiceName(serviceActions);

http://git-wip-us.apache.org/repos/asf/isis/blob/1b60ce18/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
index 65ec519..436edbb 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
@@ -19,7 +19,7 @@ package org.apache.isis.viewer.wicket.ui.components.actionmenu.serviceactions;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 
-class ServiceAndAction implements Comparable<ServiceAndAction> {
+class ServiceAndAction {
     final String serviceName;
     final EntityModel serviceEntityModel;
     final ObjectAction objectAction;
@@ -42,8 +42,4 @@ class ServiceAndAction implements Comparable<ServiceAndAction> {
         return serviceName + " ~ " + objectAction.getIdentifier().toFullIdentityString();
     }
 
-	@Override
-	public int compareTo(ServiceAndAction other) {
-		return ServiceAndActionOrder.compare(this, other);
-	}
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/1b60ce18/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndActionOrder.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndActionOrder.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndActionOrder.java
deleted file mode 100644
index 19be3e1..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndActionOrder.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.viewer.wicket.ui.components.actionmenu.serviceactions;
-
-import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
-import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceMenuOrder;
-import org.apache.isis.core.metamodel.layout.memberorderfacet.MemberOrderFacetComparator;
-
-class ServiceAndActionOrder {
-
-	private final static MemberOrderFacetComparator memberOrder = 
-			new MemberOrderFacetComparator(false);
-	
-	public static int compare(ServiceAndAction a, ServiceAndAction b) {
-		
-		int c  = a.serviceName.compareTo(b.serviceName);
-		if(c!=0)
-			return c;
-		
-		c = DomainServiceMenuOrder.compare(
-				a.serviceEntityModel.getObject(),
-				b.serviceEntityModel.getObject() );
-		if(c!=0)
-			return c;
-		
-		return memberOrder.compare(
-				a.objectAction.getFacet(MemberOrderFacet.class), 
-				b.objectAction.getFacet(MemberOrderFacet.class) );
-		
-	}
-
-}