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 16:46:37 UTC
[07/12] 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/pr-84
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) );
-
- }
-
-}