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 2013/02/13 11:25:44 UTC
[1/2] git commit: ISIS-330: call choices less often when rendering
ISIS-330: call choices less often when rendering
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c4d2893e
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c4d2893e
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c4d2893e
Branch: refs/heads/master
Commit: c4d2893eecd5c9c82dc21223a30df4b8fd9a412c
Parents: 92a6624
Author: Dan Haywood <da...@apache.org>
Authored: Wed Feb 13 08:13:38 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Wed Feb 13 08:13:38 2013 +0000
----------------------------------------------------------------------
.../jdo/datanucleus/DataNucleusObjectStore.java | 4 +-
.../viewer/wicket/model/models/ScalarModel.java | 24 +++++++++++++-
.../scalars/ComponentFactoryScalarAbstract.java | 7 +++-
.../scalars/value/ValuePanelFactory.java | 5 ++-
.../widgets/entitylink/EntityLinkSelect2Panel.java | 9 ++++--
.../ValueChoicesSelect2PanelComponentFactory.java | 2 +-
.../spec/feature/ObjectActionParameter.java | 11 +++++++
.../metamodel/spec/feature/ObjectAssociation.java | 11 ++++---
.../specimpl/ObjectActionParameterAbstract.java | 7 ++++
.../specimpl/OneToOneAssociationImpl.java | 3 +-
10 files changed, 65 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/c4d2893e/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
index c1974cd..17ef5fe 100644
--- a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
+++ b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
@@ -250,7 +250,7 @@ public class DataNucleusObjectStore implements ObjectStoreSpi {
}
public void abortTransaction() {
- rollbackJpaTransaction();
+ rollbackJdoTransaction();
}
private void beginJdoTransaction() {
@@ -268,7 +268,7 @@ public class DataNucleusObjectStore implements ObjectStoreSpi {
}
}
- private void rollbackJpaTransaction() {
+ private void rollbackJdoTransaction() {
final javax.jdo.Transaction transaction = getPersistenceManager().currentTransaction();
if (transaction.isActive()) {
transaction.rollback();
http://git-wip-us.apache.org/repos/asf/isis/blob/c4d2893e/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index f950771..d6bfa22 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -150,11 +150,18 @@ public class ScalarModel extends EntityModel {
public List<ObjectAdapter> getChoices(final ScalarModel scalarModel) {
final PropertyMemento propertyMemento = scalarModel.getPropertyMemento();
final OneToOneAssociation property = propertyMemento.getProperty();
- final ObjectAdapter[] choices = property.getChoices(scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK));
+ final ObjectAdapter[] choices = property.getChoices(scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.NO_CHECK));
return choicesAsList(choices);
}
@Override
+ public boolean hasChoices(final ScalarModel scalarModel) {
+ final PropertyMemento propertyMemento = scalarModel.getPropertyMemento();
+ final OneToOneAssociation property = propertyMemento.getProperty();
+ return property.hasChoices();
+ }
+
+ @Override
public void resetVersion(ScalarModel scalarModel) {
scalarModel.parentObjectAdapterMemento.resetVersion();
}
@@ -240,11 +247,18 @@ public class ScalarModel extends EntityModel {
public List<ObjectAdapter> getChoices(final ScalarModel scalarModel) {
final ActionParameterMemento parameterMemento = scalarModel.getParameterMemento();
final ObjectActionParameter actionParameter = parameterMemento.getActionParameter();
- final ObjectAdapter[] choices = actionParameter.getChoices(scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK));
+ final ObjectAdapter[] choices = actionParameter.getChoices(scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.NO_CHECK));
return choicesAsList(choices);
}
@Override
+ public boolean hasChoices(final ScalarModel scalarModel) {
+ final ActionParameterMemento parameterMemento = scalarModel.getParameterMemento();
+ final ObjectActionParameter actionParameter = parameterMemento.getActionParameter();
+ return actionParameter.hasChoices();
+ }
+
+ @Override
public void resetVersion(ScalarModel scalarModel) {
// no-op?
}
@@ -292,6 +306,8 @@ public class ScalarModel extends EntityModel {
public abstract void resetVersion(ScalarModel scalarModel);
public abstract String getDescribedAs(ScalarModel scalarModel);
+
+ public abstract boolean hasChoices(ScalarModel scalarModel);
}
private final Kind kind;
@@ -467,4 +483,8 @@ public class ScalarModel extends EntityModel {
return kind.getDescribedAs(this);
}
+ public boolean hasChoices() {
+ return kind.hasChoices(this);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c4d2893e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java
index 7abde95..d7da4d6 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java
@@ -43,8 +43,11 @@ public abstract class ComponentFactoryScalarAbstract extends ComponentFactoryAbs
return ApplicationAdvice.DOES_NOT_APPLY;
}
final ScalarModel scalarModel = (ScalarModel) model;
- final boolean hasNoChoices = scalarModel.getChoices().isEmpty();
- return appliesIf(hasNoChoices && scalarModel.isScalarTypeAnyOf(scalarTypes));
+ if(!scalarModel.isScalarTypeAnyOf(scalarTypes)) {
+ return ApplicationAdvice.DOES_NOT_APPLY;
+ }
+ final boolean hasNoChoices = !scalarModel.hasChoices();
+ return appliesIf(hasNoChoices);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/c4d2893e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java
index ea62153..4ddbaf7 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java
@@ -45,7 +45,10 @@ public class ValuePanelFactory extends ComponentFactoryScalarAbstract {
}
final ScalarModel scalarModel = (ScalarModel) model;
final ValueFacet valueFacet = scalarModel.getTypeOfSpecification().getFacet(ValueFacet.class);
- return appliesIf(scalarModel.getChoices().isEmpty() && valueFacet != null);
+ if(valueFacet == null) {
+ return ApplicationAdvice.DOES_NOT_APPLY;
+ }
+ return appliesIf(scalarModel.hasChoices());
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/c4d2893e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
index b6999e8..a239df0 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
@@ -282,8 +282,12 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
@Override
protected List<ObjectAdapterMemento> obtainMementos(String term) {
final ScalarModel scalarModel = (ScalarModel) entityModel;
+ final boolean hasChoices = scalarModel.hasChoices();
+ if(!hasChoices) {
+ return null;
+ }
final List<ObjectAdapter> choices = scalarModel.getChoices();
- if (choices.size() == 0) {
+ if(choices.isEmpty()) {
return null;
}
// take a copy otherwise is only lazily evaluated
@@ -393,8 +397,7 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
return false;
}
final ScalarModel scalarModel = (ScalarModel) entityModel;
- final List<ObjectAdapter> choices = scalarModel.getChoices();
- return choices.size() == 0 ? false : true;
+ return scalarModel.hasChoices();
}
private boolean hasAutoComplete() {
http://git-wip-us.apache.org/repos/asf/isis/blob/c4d2893e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2PanelComponentFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2PanelComponentFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2PanelComponentFactory.java
index a77ee76..c4bfce3 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2PanelComponentFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2PanelComponentFactory.java
@@ -40,7 +40,7 @@ public class ValueChoicesSelect2PanelComponentFactory extends ComponentFactoryAb
return ApplicationAdvice.DOES_NOT_APPLY;
}
final ScalarModel scalarModel = (ScalarModel) model;
- final boolean hasChoices = !scalarModel.getChoices().isEmpty();
+ final boolean hasChoices = scalarModel.hasChoices();
return appliesIf(hasChoices);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c4d2893e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
index 75e5395..5679ffe 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
@@ -95,8 +95,19 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
*/
String isValid(ObjectAdapter adapter, Object proposedValue, Localization localization);
+ /**
+ * Returns a list of possible references/values for this parameter, which the
+ * user can choose from.
+ */
ObjectAdapter[] getChoices(ObjectAdapter adapter);
+ /**
+ * Whether there are any choices provided (eg <tt>choicesXxx</tt> supporting
+ * method) for the parameter.
+ */
+ boolean hasChoices();
+
ObjectAdapter getDefault(ObjectAdapter adapter);
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c4d2893e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
index f28e99d..e6c98d1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
@@ -48,6 +48,12 @@ public interface ObjectAssociation extends ObjectMember, CurrentHolder {
public ObjectAdapter[] getChoices(ObjectAdapter object);
/**
+ * Whether there are any choices provided (eg <tt>choicesXxx</tt> supporting
+ * method) for the association.
+ */
+ public boolean hasChoices();
+
+ /**
* Returns true if calculated from other data in the object, that is, should
* not be persisted.
*/
@@ -65,10 +71,5 @@ public interface ObjectAssociation extends ObjectMember, CurrentHolder {
*/
boolean isMandatory();
- /**
- * Whether there are any choices provided (eg <tt>choicesXxx</tt> supporting
- * method) for the association.
- */
- public boolean hasChoices();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c4d2893e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index f86b8f2..ea86b46 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -258,6 +258,13 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
return parameterChoices.toArray(new ObjectAdapter[0]);
}
+ @Override
+ public boolean hasChoices() {
+ final ActionParameterChoicesFacet choicesFacet = getFacet(ActionParameterChoicesFacet.class);
+
+ return choicesFacet != null || BoundedFacetUtils.isBoundedSet(getSpecification());
+ }
+
private <T> void addParameterChoicesForBounded(final List<ObjectAdapter> parameterChoices) {
final Query<T> query = new QueryFindAllInstances<T>(getSpecification().getFullIdentifier());
final List<ObjectAdapter> allInstancesAdapter = getQuerySubmitter().allMatchingQuery(query);
http://git-wip-us.apache.org/repos/asf/isis/blob/c4d2893e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
index d423c7a..f0fd603 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
@@ -231,8 +231,7 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
@Override
public boolean hasChoices() {
final PropertyChoicesFacet propertyChoicesFacet = getFacet(PropertyChoicesFacet.class);
- final boolean optionEnabled = propertyChoicesFacet != null;
- return BoundedFacetUtils.isBoundedSet(getSpecification()) || optionEnabled;
+ return propertyChoicesFacet != null || BoundedFacetUtils.isBoundedSet(getSpecification());
}
@Override