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/08/23 13:22:29 UTC
[1/2] git commit: ISIS-478: working towards entity choices (not there
yet)
Updated Branches:
refs/heads/master 2ab9e6615 -> 58aff6aa3
ISIS-478: working towards entity choices (not there yet)
* refactored EntityLinkSelect2Panel so that the setChoices can be easily called for argsIfAvailable
* ReferencePanel overrides addFormComponentBehaviour and updateChoices, delegating to entityLink in both cases.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/1f62a90e
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/1f62a90e
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/1f62a90e
Branch: refs/heads/master
Commit: 1f62a90e7bb641aaa2fe3526f575f4f816f9bcb5
Parents: 2ab9e66
Author: Dan Haywood <da...@apache.org>
Authored: Wed Aug 21 22:18:45 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Wed Aug 21 22:18:45 2013 +0100
----------------------------------------------------------------------
.../components/scalars/ScalarPanelAbstract.java | 4 +-
.../scalars/ScalarPanelTextFieldAbstract.java | 2 +-
.../isisapplib/IsisBlobOrClobPanelAbstract.java | 2 +-
.../scalars/primitive/BooleanPanel.java | 2 +-
.../scalars/reference/ReferencePanel.java | 13 +-
.../entitylink/EntityLinkSelect2Panel.java | 104 +++++++++-------
.../valuechoices/ValueChoicesSelect2Panel.java | 47 ++++---
.../adapter/util/AdapterInvokeUtils.java | 1 -
.../specimpl/ObjectActionParameterAbstract.java | 2 -
.../ObjectActionParameterContributee.java | 121 -------------------
.../ActionParameterDefaultsFacetViaMethod.java | 3 -
11 files changed, 101 insertions(+), 200 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index a5d0cfd..e005ccd 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -177,7 +177,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
addCssForMetaModel();
if(!subscribers.isEmpty()) {
- addFormComponentBehaviour(new AjaxFormComponentUpdatingBehavior("onchange"){
+ addFormComponentBehavior(new AjaxFormComponentUpdatingBehavior("onchange"){
private static final long serialVersionUID = 1L;
@@ -195,7 +195,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
/**
* Mandatory hook.
*/
- protected abstract void addFormComponentBehaviour(Behavior behavior);
+ protected abstract void addFormComponentBehavior(Behavior behavior);
private void addCssForMetaModel() {
final String cssForMetaModel = getModel().getLongName();
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index e7bca55..4f21325 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -208,7 +208,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
}
@Override
- protected void addFormComponentBehaviour(Behavior behavior) {
+ protected void addFormComponentBehavior(Behavior behavior) {
textField.add(behavior);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
index b594126..7d1f233 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
@@ -290,7 +290,7 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
}
@Override
- protected void addFormComponentBehaviour(Behavior behavior) {
+ protected void addFormComponentBehavior(Behavior behavior) {
fileUploadField.add(behavior);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
index f626707..520f56b 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
@@ -139,7 +139,7 @@ public class BooleanPanel extends ScalarPanelAbstract {
}
@Override
- protected void addFormComponentBehaviour(Behavior behavior) {
+ protected void addFormComponentBehavior(Behavior behavior) {
checkBox.add(behavior);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index 5be6822..6a4685b 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -172,10 +172,17 @@ public class ReferencePanel extends ScalarPanelAbstract {
return labelIfCompact;
}
-
+
+ // //////////////////////////////////////
+
+ @Override
+ protected void addFormComponentBehavior(Behavior behavior) {
+ entityLink.addFormComponentBehavior(behavior);
+ }
+
@Override
- protected void addFormComponentBehaviour(Behavior behavior) {
- entityLink.add(behavior);
+ public void updateChoices(ObjectAdapter[] argsIfAvailable) {
+ entityLink.updateChoices(argsIfAvailable);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/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 92270ff..7b91e01 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
@@ -19,6 +19,7 @@
package org.apache.isis.viewer.wicket.ui.components.widgets.entitylink;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -32,6 +33,7 @@ import com.vaynberg.wicket.select2.Settings;
import com.vaynberg.wicket.select2.TextChoiceProvider;
import org.apache.wicket.Component;
+import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.FormComponentPanel;
import org.apache.wicket.markup.html.link.Link;
@@ -72,9 +74,8 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
private static final String ID_ENTITY_TITLE_NULL = "entityTitleNull";
private static final String ID_ENTITY_CLEAR_LINK = "entityClearLink";
- private static final String ID_FEEDBACK = "feedback";
- private Select2Choice<ObjectAdapterMemento> autoCompleteField;
+ private Select2Choice<ObjectAdapterMemento> select2Field;
private Link<String> entityDetailsLink;
private Link<String> entityClearLink;
@@ -120,8 +121,8 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
entityDetailsLink.setVisible(getEntityModel().getRenderingHint() == RenderingHint.REGULAR);
}
- if(autoCompleteField != null) {
- autoCompleteField.setEnabled(mutability);
+ if(select2Field != null) {
+ select2Field.setEnabled(mutability);
}
if(isEditableWithEitherAutoCompleteOrChoices()) {
@@ -130,8 +131,8 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
}
protected void doSyncVisibilityAndUsability(boolean mutability) {
- if(autoCompleteField != null) {
- autoCompleteField.setEnabled(mutability);
+ if(select2Field != null) {
+ select2Field.setEnabled(mutability);
}
if(isEditableWithEitherAutoCompleteOrChoices()) {
@@ -148,7 +149,7 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
@Override
public String getInput() {
final ObjectAdapter pendingElseCurrentAdapter = getEntityModel().getPendingElseCurrentAdapter();
- return pendingElseCurrentAdapter != null? pendingElseCurrentAdapter.titleString(): "(no object)";
+ return pendingElseCurrentAdapter != null? pendingElseCurrentAdapter.titleString(null): "(no object)";
}
@Override
@@ -156,7 +157,7 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
if(getEntityModel().isEditMode() && isEditableWithEitherAutoCompleteOrChoices()) {
// flush changes to pending
- onSelected(autoCompleteField.getConvertedInput());
+ onSelected(select2Field.getConvertedInput());
}
final ObjectAdapter pendingAdapter = getEntityModel().getPendingAdapter();
@@ -192,14 +193,6 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
return;
}
- final ChoiceProvider<ObjectAdapterMemento> provider;
- if (hasChoices()) {
- provider = providerForChoices(getEntityModel());
- } else if(hasParamOrPropertyAutoComplete()) {
- provider = providerForParamOrPropertyAutoComplete(getEntityModel());
- } else {
- provider = providerForObjectAutoComplete(getEntityModel());
- }
final ModelAbstract<ObjectAdapterMemento> model = new ModelAbstract<ObjectAdapterMemento>(){
private static final long serialVersionUID = 1L;
@@ -210,12 +203,15 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
}
};
- autoCompleteField = new Select2Choice<ObjectAdapterMemento>(ID_AUTO_COMPLETE, model, provider);
- final Settings settings = autoCompleteField.getSettings();
+
+ select2Field = new Select2Choice<ObjectAdapterMemento>(ID_AUTO_COMPLETE, model);
+ setChoices(null);
+
+ final Settings settings = select2Field.getSettings();
ScalarModel scalarModel = (ScalarModel) getEntityModel();
settings.setMinimumInputLength(scalarModel.getAutoCompleteMinLength());
- addOrReplace(autoCompleteField);
+ addOrReplace(select2Field);
// no need for link, since can see in drop-down
permanentlyHide(ID_ENTITY_ICON_AND_TITLE);
@@ -225,6 +221,7 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
permanentlyHide(ID_ENTITY_TITLE_NULL);
}
+
abstract static class ObjectAdapterMementoProviderAbstract extends TextChoiceProvider<ObjectAdapterMemento> {
private static final long serialVersionUID = 1L;
@@ -261,10 +258,8 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
}
}
- /**
- * @param entityModel - serializable, referenced by the AutoCompletionChoicesProvider below
- */
- private static ChoiceProvider<ObjectAdapterMemento> providerForObjectAutoComplete(final EntityModel entityModel) {
+ private ChoiceProvider<ObjectAdapterMemento> providerForObjectAutoComplete() {
+ final EntityModel entityModel = getEntityModel();
return new ObjectAdapterMementoProviderAbstract() {
private static final long serialVersionUID = 1L;
@@ -280,7 +275,8 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
};
}
- private static ChoiceProvider<ObjectAdapterMemento> providerForParamOrPropertyAutoComplete(final EntityModel entityModel) {
+ private ChoiceProvider<ObjectAdapterMemento> providerForParamOrPropertyAutoComplete() {
+ final EntityModel entityModel = getEntityModel();
return new ObjectAdapterMementoProviderAbstract() {
private static final long serialVersionUID = 1L;
@@ -303,31 +299,35 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
};
}
- /**
- * @param entityModel - serializable, referenced by the AutoCompletionChoicesProvider below
- */
- private static ChoiceProvider<ObjectAdapterMemento> providerForChoices(final EntityModel entityModel) {
+ private ChoiceProvider<ObjectAdapterMemento> providerForChoices(final ObjectAdapter[] argsIfAvailable) {
+
+ final List<ObjectAdapterMemento> choices = getChoiceMementos(argsIfAvailable);
+
return new ObjectAdapterMementoProviderAbstract() {
private static final long serialVersionUID = 1L;
@Override
- protected List<ObjectAdapterMemento> obtainMementos(String term) {
- final ScalarModel scalarModel = (ScalarModel) entityModel;
- final boolean hasChoices = scalarModel.hasChoices();
- if(!hasChoices) {
- return Collections.emptyList();
- }
- final List<ObjectAdapter> choices = scalarModel.getChoices(null);
- if(choices.isEmpty()) {
- return Collections.emptyList();
- }
- // take a copy otherwise is only lazily evaluated
- return Lists.newArrayList(Lists.transform(choices, Mementos.fromAdapter()));
+ protected List<ObjectAdapterMemento> obtainMementos(String unused) {
+ return choices;
}
};
}
+ private List<ObjectAdapterMemento> getChoiceMementos(final ObjectAdapter[] argsIfAvailable) {
+
+ final ScalarModel scalarModel = (ScalarModel) getEntityModel();;
+ final boolean hasChoices = scalarModel.hasChoices();
+ if(!hasChoices) {
+ return Collections.emptyList();
+ }
+ final List<ObjectAdapter> choices = scalarModel.getChoices(argsIfAvailable);
+ if(choices.isEmpty()) {
+ return Collections.emptyList();
+ }
+ // take a copy otherwise is only lazily evaluated
+ return Lists.newArrayList(Lists.transform(choices, Mementos.fromAdapter()));
+ }
private void syncLinkWithInput(final ObjectAdapter adapter) {
if (adapter != null) {
@@ -464,6 +464,28 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
(typeOfSpecification != null)? typeOfSpecification.getFacet(AutoCompleteFacet.class):null;
return autoCompleteFacet != null;
}
+
+ // //////////////////////////////////////
+
+ public void addFormComponentBehavior(Behavior behavior) {
+ select2Field.add(behavior);
+ }
+
+ public void updateChoices(ObjectAdapter[] argsIfAvailable) {
+ setChoices(argsIfAvailable);
+ }
-
+ private void setChoices(final ObjectAdapter[] argsIfAvailable) {
+
+ final ChoiceProvider<ObjectAdapterMemento> provider;
+ if (hasChoices()) {
+ provider = providerForChoices(argsIfAvailable);
+ } else if(hasParamOrPropertyAutoComplete()) {
+ provider = providerForParamOrPropertyAutoComplete();
+ } else {
+ provider = providerForObjectAutoComplete();
+ }
+ select2Field.setProvider(provider);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
index 7f04de4..a0070e3 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
@@ -60,7 +60,7 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract {
private static final String ID_VALUE_ID = "valueId";
- private Select2Choice<ObjectAdapterMemento> select2ChoiceField;
+ private Select2Choice<ObjectAdapterMemento> select2Field;
private ObjectAdapterMemento pending;
public ValueChoicesSelect2Panel(final String id, final ScalarModel scalarModel) {
@@ -73,9 +73,8 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract {
final IModel<ObjectAdapterMemento> modelObject = createModel();
- select2ChoiceField = new Select2Choice<ObjectAdapterMemento>(ID_VALUE_ID, modelObject);
- final List<ObjectAdapterMemento> choicesMementos = getChoiceMementos(null);
- setChoices(choicesMementos);
+ select2Field = new Select2Choice<ObjectAdapterMemento>(ID_VALUE_ID, modelObject);
+ setChoices(null);
addStandardSemantics();
@@ -85,16 +84,16 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract {
}
addOrReplace(labelIfRegular);
- addFeedbackTo(labelIfRegular, select2ChoiceField);
+ addFeedbackTo(labelIfRegular, select2Field);
addAdditionalLinksTo(labelIfRegular);
return labelIfRegular;
}
+
protected ChoiceProvider<ObjectAdapterMemento> newChoiceProvider(final List<ObjectAdapterMemento> choicesMementos) {
final IModel<List<ObjectAdapterMemento>> choicesModel = newModel(choicesMementos);
- final ChoiceProvider<ObjectAdapterMemento> choiceProvider = newChoiceProvider(choicesModel);
- return choiceProvider;
+ return newChoiceProvider(choicesModel);
}
private IModel<List<ObjectAdapterMemento>> newModel(final List<ObjectAdapterMemento> choicesMementos) {
@@ -111,8 +110,7 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract {
final List<ObjectAdapter> choices = scalarModel.getChoices(argumentsIfAvailable);
// take a copy otherwise is only lazily evaluated
- final List<ObjectAdapterMemento> choicesMementos = Lists.newArrayList(Lists.transform(choices, Mementos.fromAdapter()));
- return choicesMementos;
+ return Lists.newArrayList(Lists.transform(choices, Mementos.fromAdapter()));
}
private Model<ObjectAdapterMemento> createModel() {
@@ -160,23 +158,23 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract {
private void setRequiredIfSpecified() {
final ScalarModel scalarModel = getModel();
final boolean required = scalarModel.isRequired();
- select2ChoiceField.setRequired(required);
+ select2Field.setRequired(required);
}
protected FormComponentLabel createFormComponentLabel() {
final String name = getModel().getName();
- select2ChoiceField.setLabel(Model.of(name));
+ select2Field.setLabel(Model.of(name));
- final FormComponentLabel labelIfRegular = new FormComponentLabel(ID_SCALAR_IF_REGULAR, select2ChoiceField);
+ final FormComponentLabel labelIfRegular = new FormComponentLabel(ID_SCALAR_IF_REGULAR, select2Field);
final String describedAs = getModel().getDescribedAs();
if(describedAs != null) {
labelIfRegular.add(new AttributeModifier("title", Model.of(describedAs)));
}
- final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(select2ChoiceField));
+ final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(select2Field));
labelIfRegular.add(scalarName);
- labelIfRegular.add(select2ChoiceField);
+ labelIfRegular.add(select2Field);
return labelIfRegular;
}
@@ -236,35 +234,36 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract {
@Override
protected void onBeforeRenderWhenViewMode() { // View: Read only
- select2ChoiceField.setEnabled(false);
+ select2Field.setEnabled(false);
}
@Override
protected void onBeforeRenderWhenEnabled() { // Edit: read/write
- select2ChoiceField.setEnabled(true);
+ select2Field.setEnabled(true);
}
@Override
- protected void addFormComponentBehaviour(Behavior behavior) {
- select2ChoiceField.add(behavior);
+ protected void addFormComponentBehavior(Behavior behavior) {
+ select2Field.add(behavior);
}
// //////////////////////////////////////
@Override
- public void updateChoices(ObjectAdapter[] arguments) {
- final List<ObjectAdapterMemento> choicesMementos = getChoiceMementos(arguments);
- setChoices(choicesMementos);
+ public void updateChoices(ObjectAdapter[] argsIfAvailable) {
+ setChoices(argsIfAvailable);
}
/**
* sets up the choices, also ensuring that any currently held value
* is compatible.
*/
- private void setChoices(final List<ObjectAdapterMemento> choicesMementos) {
- select2ChoiceField.setProvider(newChoiceProvider(choicesMementos));
+ private void setChoices(ObjectAdapter[] argsIfAvailable) {
+ final List<ObjectAdapterMemento> choicesMementos = getChoiceMementos(argsIfAvailable);
+
+ select2Field.setProvider(newChoiceProvider(choicesMementos));
getModel().setPending(null);
final ObjectAdapterMemento objectAdapterMemento = getModel().getObjectAdapterMemento();
if(!choicesMementos.contains(objectAdapterMemento)) {
@@ -272,7 +271,7 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract {
!choicesMementos.isEmpty()
? choicesMementos.get(0)
: null;
- select2ChoiceField.getModel().setObject(newAdapterMemento);
+ select2Field.getModel().setObject(newAdapterMemento);
getModel().setObject(
newAdapterMemento != null? newAdapterMemento.getObjectAdapter(ConcurrencyChecking.NO_CHECK): null);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/AdapterInvokeUtils.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/AdapterInvokeUtils.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/AdapterInvokeUtils.java
index 271a63f..951e29e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/AdapterInvokeUtils.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/AdapterInvokeUtils.java
@@ -26,7 +26,6 @@ import com.google.common.collect.Lists;
import org.apache.isis.core.commons.lang.ListUtils;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionParameterContributee.Util;
public final class AdapterInvokeUtils {
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/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 bcb157b..1cc406e 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
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
-import java.util.Arrays;
import java.util.List;
import com.google.common.collect.Lists;
@@ -59,7 +58,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
-import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionParameterContributee.Util;
import org.apache.isis.core.progmodel.facets.param.autocomplete.MinLengthUtil;
public abstract class ObjectActionParameterAbstract implements ObjectActionParameter {
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterContributee.java
index dbc375e..4930fa1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterContributee.java
@@ -16,130 +16,9 @@
*/
package org.apache.isis.core.metamodel.specloader.specimpl;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import com.google.common.collect.Lists;
-
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
public interface ObjectActionParameterContributee extends ObjectActionParameter {
- // TODO: can probably remove this now?
- public static class Util {
-
- @SuppressWarnings("unused")
- private static <T> List<T> toList(final T[] inputArray) {
- return Lists.newArrayList(asList(inputArray));
- }
-
- private static <T> List<T> asList(final T[] inputArray) {
- return inputArray != null? Arrays.asList(inputArray): Collections.<T>emptyList();
- }
-
- @SuppressWarnings("unused")
- private static <T> List<T> adjust(final List<T> input, final int requiredLength, final int index, final T elementAtIndex) {
- List<T> output;
- if(input.isEmpty()) {
- // nothing provided, so just create an empty list of the required length
- output = newList(requiredLength);
- } else if(input.size() == requiredLength) {
- // exactly correct length, so just use
- output = input;
- } else if(input.size() == requiredLength - 1) {
- // one short, so split the input at the index
- output = Lists.newArrayList();
- output.addAll(input.subList(0, index));
- output.add(null);
- output.addAll(input.subList(index, input.size()));
- } else {
- throw new IllegalArgumentException("Provided " + input.size() + " args for method taking " + requiredLength + " parameters");
- }
-
- // finally, overwrite the element
- output.set(index, elementAtIndex);
- return output;
- }
-
- private static <T> List<T> newList(final int requiredLength) {
- List<T> output;
- output = Lists.newArrayList();
- for(int i=0; i<requiredLength; i++) {
- output.add(null);
- }
- return output;
- }
-
-// @Test
-// public void adjust_whenSameSize() throws Exception {
-// final List<Integer> input = Arrays.asList(Integer.valueOf(0), Integer.MAX_VALUE, Integer.MIN_VALUE);
-// final List<Integer> output = ObjectActionParameterContributee.Util.adjust(input, 3, 0, Integer.valueOf(10));
-//
-// assertThat(output.size(), is(3));
-// assertThat(output.get(0), is(Integer.valueOf(10)));
-// assertThat(output.get(1), is(Integer.MAX_VALUE));
-// assertThat(output.get(2), is(Integer.MIN_VALUE));
-// }
- //
-// @Test
-// public void adjust_whenEmpty() throws Exception {
-// final List<Integer> input = Collections.emptyList();
-// final List<Integer> output = ObjectActionParameterContributee.Util.adjust(input, 3, 0, Integer.valueOf(10));
-//
-// assertThat(output.size(), is(3));
-// assertThat(output.get(0), is(Integer.valueOf(10)));
-// assertThat(output.get(1), is(nullValue()));
-// assertThat(output.get(2), is(nullValue()));
-// }
- //
-// @Test
-// public void adjust_whenOneLess_replaceStart() throws Exception {
-// final List<Integer> input = Arrays.asList(Integer.MAX_VALUE, Integer.MIN_VALUE);
-// final List<Integer> output = ObjectActionParameterContributee.Util.adjust(input, 3, 0, Integer.valueOf(10));
-//
-// assertThat(output.size(), is(3));
-// assertThat(output.get(0), is(Integer.valueOf(10)));
-// assertThat(output.get(1), is(Integer.MAX_VALUE));
-// assertThat(output.get(2), is(Integer.MIN_VALUE));
-// }
- //
-// @Test
-// public void adjust_whenOneLess_replaceMiddle() throws Exception {
-// final List<Integer> input = Arrays.asList(Integer.MAX_VALUE, Integer.MIN_VALUE);
-// final List<Integer> output = ObjectActionParameterContributee.Util.adjust(input, 3, 1, Integer.valueOf(10));
-//
-// assertThat(output.size(), is(3));
-// assertThat(output.get(0), is(Integer.MAX_VALUE));
-// assertThat(output.get(1), is(Integer.valueOf(10)));
-// assertThat(output.get(2), is(Integer.MIN_VALUE));
-// }
- //
-// @Test
-// public void adjust_whenOneLess_replaceEnd() throws Exception {
-// final List<Integer> input = Arrays.asList(Integer.MAX_VALUE, Integer.MIN_VALUE);
-// final List<Integer> output = ObjectActionParameterContributee.Util.adjust(input, 3, 2, Integer.valueOf(10));
-//
-// assertThat(output.size(), is(3));
-// assertThat(output.get(0), is(Integer.MAX_VALUE));
-// assertThat(output.get(1), is(Integer.MIN_VALUE));
-// assertThat(output.get(2), is(Integer.valueOf(10)));
-// }
-
-
-
-
- // @Test
- // public void newList() throws Exception {
-// final List<Object> list = ObjectActionParameterContributee.Util.newList(3);
-// assertThat(list.size(), is(3));
-// assertThat(list.get(0), is(nullValue()));
-// assertThat(list.get(1), is(nullValue()));
-// assertThat(list.get(2), is(nullValue()));
- // }
-
-
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1f62a90e/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethod.java
index 94242bd..fd8952d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethod.java
@@ -23,13 +23,10 @@ import java.lang.reflect.Method;
import java.util.Collections;
import java.util.List;
-import com.google.common.collect.Lists;
-
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.util.AdapterInvokeUtils;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionParameterContributee.Util;
import org.apache.isis.core.progmodel.facets.param.defaults.ActionParameterDefaultsFacetAbstract;
public class ActionParameterDefaultsFacetViaMethod extends ActionParameterDefaultsFacetAbstract implements ImperativeFacet {
[2/2] git commit: ISIS-500: making EntityIconAndTitlePanel easier to
subclass
Posted by da...@apache.org.
ISIS-500: making EntityIconAndTitlePanel easier to subclass
in addition:
* removed some unused ComponentFactory's
* added in example css in a ToDo app's application.css to demonstrate how to hide the icon
* make some demo code in QuickStartApplication easier to enable
* renamed PageRegistrySpi -> PageClassRegistrySpi
* added example override of PageClassList
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/58aff6aa
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/58aff6aa
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/58aff6aa
Branch: refs/heads/master
Commit: 58aff6aa393e69c46aa9b7524d27776869d4f374
Parents: 1f62a90
Author: Dan Haywood <da...@apache.org>
Authored: Fri Aug 23 11:57:59 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Fri Aug 23 11:57:59 2013 +0100
----------------------------------------------------------------------
.../viewer/wicket/viewer/IsisWicketModule.java | 3 +-
.../ComponentFactoryRegistrarDefault.java | 9 --
.../registries/pages/PageClassListDefault.java | 4 +-
.../pages/PageClassRegistryDefault.java | 4 +-
.../PageClassListDefault_Instantiation.java | 4 +-
.../CollectionContentsDropDownSelectorPanel.css | 21 ----
...CollectionContentsDropDownSelectorPanel.html | 31 -----
...CollectionContentsDropDownSelectorPanel.java | 48 --------
...ionContentsDropDownSelectorPanelFactory.java | 56 ---------
...ectionContentsLinksSelectorPanelFactory.java | 1 -
.../icontitle/EntityIconAndTitlePanel.java | 47 ++++---
.../dropdown/EntityDropDownSelectorPanel.css | 21 ----
.../dropdown/EntityDropDownSelectorPanel.html | 31 -----
.../dropdown/EntityDropDownSelectorPanel.java | 47 -------
.../EntityDropDownSelectorPanelFactory.java | 51 --------
.../links/EntityLinksSelectorPanelFactory.java | 1 -
.../viewer/wicket/ui/pages/PageClassList.java | 2 +-
.../wicket/ui/pages/PageClassRegistrySpi.java | 33 +++++
.../viewer/wicket/ui/pages/PageRegistrySpi.java | 33 -----
.../DropDownChoiceComponentFactory.java | 95 --------------
.../dropdown/DropDownSelectorPanelAbstract.css | 21 ----
.../dropdown/DropDownSelectorPanelAbstract.html | 34 -----
.../dropdown/DropDownSelectorPanelAbstract.java | 123 -------------------
.../java/app/PageClassListForQuickstart.java | 61 +++++++++
.../main/java/app/QuickStartApplication.java | 68 ++++++----
.../webapp/src/main/webapp/css/application.css | 19 +++
26 files changed, 192 insertions(+), 676 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
index 971a7d0..8f00317 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
@@ -46,7 +46,8 @@ import org.apache.isis.viewer.wicket.viewer.settings.WicketViewerSettingsDefault
* @Override
* protected void configure() {
* bind(ComponentFactoryRegistrar.class).to(ComponentFactoryRegistrarForMyApp.class);
- *
+ * bind(PageClassList.class).to(PageClassListForMyApp.class);
+ * ...
* bind(String.class).annotatedWith(Names.named("applicationName")).toInstance("My App");
* bind(String.class).annotatedWith(Names.named("applicationCss")).toInstance("application.css");
* bind(String.class).annotatedWith(Names.named("applicationJs")).toInstance("application.js");
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
index 168ff0b..f6bec25 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
@@ -34,8 +34,6 @@ import org.apache.isis.viewer.wicket.ui.components.appactions.cssmenu.AppActions
import org.apache.isis.viewer.wicket.ui.components.bookmarkedpages.BookmarkedPagesPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.collection.CollectionPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.CollectionContentsAsAjaxTablePanelFactory;
-import org.apache.isis.viewer.wicket.ui.components.collectioncontents.icons.CollectionContentsAsIconsPanelFactory;
-import org.apache.isis.viewer.wicket.ui.components.collectioncontents.selector.dropdown.CollectionContentsDropDownSelectorPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.selector.links.CollectionContentsLinksSelectorPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.summary.CollectionContentsAsSummaryFactory;
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.unresolved.CollectionContentsAsUnresolvedPanelFactory;
@@ -45,7 +43,6 @@ import org.apache.isis.viewer.wicket.ui.components.entity.combined.EntityCombine
import org.apache.isis.viewer.wicket.ui.components.entity.header.EntityHeaderPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.entity.icontitle.EntityIconAndTitlePanelFactory;
import org.apache.isis.viewer.wicket.ui.components.entity.properties.EntityPropertiesPanelFactory;
-import org.apache.isis.viewer.wicket.ui.components.entity.selector.dropdown.EntityDropDownSelectorPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.entity.selector.links.EntityLinksSelectorPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisBlobPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisClobPanelFactory;
@@ -117,12 +114,6 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr
componentFactories.add(new CollectionContentsLinksSelectorPanelFactory());
}
- @SuppressWarnings("unused")
- private void addDropDownSelectorFactories(final ComponentFactoryList componentFactories) {
- componentFactories.add(new EntityDropDownSelectorPanelFactory());
- componentFactories.add(new CollectionContentsDropDownSelectorPanelFactory());
- }
-
protected void addComponentFactoriesUsingServiceLoader(final ComponentFactoryList componentFactories) {
final ServiceLoader<ComponentFactory> serviceLoader = ServiceLoader.load(ComponentFactory.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault.java
index 1254004..b057b3f 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault.java
@@ -25,7 +25,7 @@ import org.apache.wicket.Page;
import org.apache.isis.viewer.wicket.model.models.PageType;
import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
-import org.apache.isis.viewer.wicket.ui.pages.PageRegistrySpi;
+import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistrySpi;
import org.apache.isis.viewer.wicket.ui.pages.about.AboutPage;
import org.apache.isis.viewer.wicket.ui.pages.action.ActionPage;
import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
@@ -40,7 +40,7 @@ import org.apache.isis.viewer.wicket.ui.pages.login.WicketSignInPage;
public class PageClassListDefault implements PageClassList {
@Override
- public void registerPages(final PageRegistrySpi pageRegistry) {
+ public void registerPages(final PageClassRegistrySpi pageRegistry) {
pageRegistry.registerPage(PageType.SIGN_IN, getSignInPageClass());
pageRegistry.registerPage(PageType.ABOUT, getAboutPageClass());
pageRegistry.registerPage(PageType.ENTITY, getEntityPageClass());
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassRegistryDefault.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassRegistryDefault.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassRegistryDefault.java
index d3640cb..8437e56 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassRegistryDefault.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassRegistryDefault.java
@@ -30,14 +30,14 @@ import org.apache.wicket.Page;
import org.apache.isis.viewer.wicket.model.models.PageType;
import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
-import org.apache.isis.viewer.wicket.ui.pages.PageRegistrySpi;
+import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistrySpi;
/**
* Default implementation of {@link PageClassRegistry}; just delegates to an
* underlying {@link PageClassList}.
*/
@Singleton
-public class PageClassRegistryDefault implements PageClassRegistry, PageRegistrySpi {
+public class PageClassRegistryDefault implements PageClassRegistry, PageClassRegistrySpi {
private final Map<PageType, Class<? extends Page>> pagesByType = Maps.newHashMap();
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/impl/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_Instantiation.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_Instantiation.java b/component/viewer/wicket/impl/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_Instantiation.java
index 87d304f..4861d62 100644
--- a/component/viewer/wicket/impl/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_Instantiation.java
+++ b/component/viewer/wicket/impl/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_Instantiation.java
@@ -29,7 +29,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
-import org.apache.isis.viewer.wicket.ui.pages.PageRegistrySpi;
+import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistrySpi;
import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassListDefault;
import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassRegistryDefault;
@@ -60,7 +60,7 @@ public class PageClassListDefault_Instantiation {
final PageClassList mockPageClassList = context.mock(PageClassList.class);
context.checking(new Expectations() {
{
- mockPageClassList.registerPages(with(any(PageRegistrySpi.class)));
+ mockPageClassList.registerPages(with(any(PageClassRegistrySpi.class)));
}
});
new PageClassRegistryDefault(mockPageClassList);
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.css
deleted file mode 100644
index 2a48bfd..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.css
+++ /dev/null
@@ -1,21 +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.
- */
-.collectionContentsDropDownSelectorPanel select {
- margin-bottom: 1em;
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.html
deleted file mode 100644
index ad7b4f0..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
- xml:lang="en"
- lang="en">
- <head></head>
- <body>
- <wicket:extend>
- <div wicket:id="collectionContents" class="collectionContentsDropDownSelectorPanel collectionContentsComponentType"></div>
- </wicket:extend>
- </body>
-</html>
-
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.java
deleted file mode 100644
index df1b3ae..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanel.java
+++ /dev/null
@@ -1,48 +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.collectioncontents.selector.dropdown;
-
-import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
-import org.apache.isis.viewer.wicket.ui.ComponentFactory;
-import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.selector.dropdown.DropDownSelectorPanelAbstract;
-
-/**
- * Provides a drop-down for selecting other views that support
- * {@link ComponentType#COLLECTION_CONTENTS} with a backing
- * {@link EntityCollectionModel}.
- *
- * <p>
- * Most of the heavy lifting is factored out into the superclass,
- * {@link DropDownSelectorPanelAbstract}.
- *
- * <p>
- * Note that this class is {@link ComponentFactoryListDefault registered} prior
- * to any other views.
- */
-public class CollectionContentsDropDownSelectorPanel extends DropDownSelectorPanelAbstract<EntityCollectionModel> {
-
- private static final long serialVersionUID = 1L;
-
- public CollectionContentsDropDownSelectorPanel(final String id, final EntityCollectionModel model, final ComponentFactory factory) {
- super(id, ComponentType.COLLECTION_CONTENTS.toString(), model, factory);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanelFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanelFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanelFactory.java
deleted file mode 100644
index 3e8239f..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/dropdown/CollectionContentsDropDownSelectorPanelFactory.java
+++ /dev/null
@@ -1,56 +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.collectioncontents.selector.dropdown;
-
-import org.apache.wicket.Component;
-import org.apache.wicket.model.IModel;
-
-import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
-import org.apache.isis.viewer.wicket.ui.ComponentFactory;
-import org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract;
-import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.components.collectioncontents.selector.links.CollectionContentsLinksSelectorPanelFactory;
-
-/**
- * {@link ComponentFactory} for {@link CollectionContentsDropDownSelectorPanel}.
- *
- * <p>
- * Either this class or {@link CollectionContentsLinksSelectorPanelFactory} should be
- * registered, but not both.
- */
-public class CollectionContentsDropDownSelectorPanelFactory extends ComponentFactoryAbstract {
-
- private static final long serialVersionUID = 1L;
-
- public CollectionContentsDropDownSelectorPanelFactory() {
- super(ComponentType.COLLECTION_CONTENTS);
- }
-
- @Override
- public ApplicationAdvice appliesTo(final IModel<?> model) {
- return appliesIf(model instanceof EntityCollectionModel);
- }
-
- @Override
- public Component createComponent(final String id, final IModel<?> model) {
- final EntityCollectionModel collectionModel = (EntityCollectionModel) model;
- return new CollectionContentsDropDownSelectorPanel(id, collectionModel, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/links/CollectionContentsLinksSelectorPanelFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/links/CollectionContentsLinksSelectorPanelFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/links/CollectionContentsLinksSelectorPanelFactory.java
index 59aa909..1a940d9 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/links/CollectionContentsLinksSelectorPanelFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/selector/links/CollectionContentsLinksSelectorPanelFactory.java
@@ -26,7 +26,6 @@ import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract;
import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.components.collectioncontents.selector.dropdown.CollectionContentsDropDownSelectorPanelFactory;
/**
* {@link ComponentFactory} for {@link CollectionContentsLinksSelectorPanel}.
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index ecfc674..f6e30f1 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -91,28 +91,27 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
final PageParameters pageParameters = EntityModel.createPageParameters(adapter);
final Class<? extends Page> pageClass = getPageClassRegistry().getPageClass(PageType.ENTITY);
+
final AbstractLink link = newLink(ID_ENTITY_LINK, pageClass, pageParameters);
- String title = determineTitle();
- label = new Label(ID_ENTITY_TITLE, title);
- link.add(label);
-
- final ResourceReference imageResource = imageCache.resourceReferenceFor(adapter);
- image = new Image(ID_ENTITY_ICON, imageResource) {
- private static final long serialVersionUID = 1L;
- @Override
- protected boolean shouldAddAntiCacheParameter() {
- return false;
- }
- };
- link.addOrReplace(image);
+ link.addOrReplace(this.label = newLabel(ID_ENTITY_TITLE));
+ link.addOrReplace(this.image = newImage(ID_ENTITY_ICON, adapter));
final WebMarkupContainer entityLinkWrapper = new WebMarkupContainer(ID_ENTITY_LINK_WRAPPER);
entityLinkWrapper.addOrReplace(link);
return entityLinkWrapper;
}
- private String determineTitle() {
+ protected AbstractLink newLink(final String linkId, final Class<? extends Page> pageClass, final PageParameters pageParameters) {
+ return Links.newBookmarkablePageLink(linkId, pageParameters, pageClass);
+ }
+
+ protected Label newLabel(final String id) {
+ final String title = determineTitle();
+ return new Label(id, title);
+ }
+
+ protected String determineTitle() {
EntityModel model = getModel();
final ObjectAdapter adapter = model.getObject();
if (adapter != null) {
@@ -129,6 +128,20 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
}
}
+ protected Image newImage(final String id, final ObjectAdapter adapter) {
+ Image image;
+ final ResourceReference imageResource = imageCache.resourceReferenceFor(adapter);
+
+ image = new Image(id, imageResource) {
+ private static final long serialVersionUID = 1L;
+ @Override
+ protected boolean shouldAddAntiCacheParameter() {
+ return false;
+ }
+ };
+ return image;
+ }
+
public ObjectAdapter getContextAdapterIfAny() {
EntityModel model = getModel();
ObjectAdapterMemento contextAdapterMementoIfAny = model.getContextAdapterIfAny();
@@ -143,11 +156,6 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
return maxLength <= 3 ? "" : str.substring(0, maxLength - 3) + "...";
}
-
- private AbstractLink newLink(final String linkId, final Class<? extends Page> pageClass, final PageParameters pageParameters) {
- return Links.newBookmarkablePageLink(linkId, pageParameters, pageClass);
- }
-
// ///////////////////////////////////////////////////////////////////
// Convenience
@@ -165,7 +173,6 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
@Inject
private ImageResourceCache imageCache;
-
protected ImageResourceCache getImageCache() {
return imageCache;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.css
deleted file mode 100644
index 65cc7a0..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.css
+++ /dev/null
@@ -1,21 +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.
- */
-.entityDropDownSelectorPanel select {
- margin-bottom: 1em;
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.html
deleted file mode 100644
index 3a0eb16..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
- xml:lang="en"
- lang="en">
- <head></head>
- <body>
- <wicket:extend>
- <div wicket:id="entity" class="entityDropDownSelectorPanel entityComponentType"></div>
- </wicket:extend>
- </body>
-</html>
-
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.java
deleted file mode 100644
index f6d73db..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanel.java
+++ /dev/null
@@ -1,47 +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.entity.selector.dropdown;
-
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.ComponentFactory;
-import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.selector.dropdown.DropDownSelectorPanelAbstract;
-
-/**
- * Provides a drop-down for selecting other views that support
- * {@link ComponentType#ENTITY} with a backing {@link EntityModel}.
- *
- * <p>
- * Most of the heavy lifting is factored out into the superclass,
- * {@link DropDownSelectorPanelAbstract}.
- *
- * <p>
- * Note that this class should be registered (in
- * <tt>ComponentFactoryListDefault</tt>) prior to any other views.
- */
-public class EntityDropDownSelectorPanel extends DropDownSelectorPanelAbstract<EntityModel> {
-
- private static final long serialVersionUID = 1L;
-
- public EntityDropDownSelectorPanel(final String id, final EntityModel model, final ComponentFactory factory) {
- super(id, ComponentType.ENTITY.toString(), model, factory);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanelFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanelFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanelFactory.java
deleted file mode 100644
index 6a4470a..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/dropdown/EntityDropDownSelectorPanelFactory.java
+++ /dev/null
@@ -1,51 +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.entity.selector.dropdown;
-
-import org.apache.wicket.Component;
-import org.apache.wicket.model.IModel;
-
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.ComponentFactory;
-import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.components.entity.EntityComponentFactoryAbstract;
-import org.apache.isis.viewer.wicket.ui.components.entity.selector.links.EntityLinksSelectorPanelFactory;
-
-/**
- * {@link ComponentFactory} for {@link EntityDropDownSelectorPanel}.
- *
- * <p>
- * Either this selector, or {@link EntityLinksSelectorPanelFactory} should be registered;
- * but not both.
- */
-public class EntityDropDownSelectorPanelFactory extends EntityComponentFactoryAbstract {
-
- private static final long serialVersionUID = 1L;
-
- public EntityDropDownSelectorPanelFactory() {
- super(ComponentType.ENTITY);
- }
-
- @Override
- public Component createComponent(final String id, final IModel<?> model) {
- final EntityModel entityModel = (EntityModel) model;
- return new EntityDropDownSelectorPanel(id, entityModel, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
index 15a07e8..0f20bb5 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
@@ -26,7 +26,6 @@ import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.ComponentType;
import org.apache.isis.viewer.wicket.ui.components.entity.EntityComponentFactoryAbstract;
-import org.apache.isis.viewer.wicket.ui.components.entity.selector.dropdown.EntityDropDownSelectorPanelFactory;
/**
* {@link ComponentFactory} for {@link EntityLinksSelectorPanel}.
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassList.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassList.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassList.java
index 136c163..dd489ba 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassList.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassList.java
@@ -33,6 +33,6 @@ import org.apache.isis.viewer.wicket.model.models.PageType;
*/
public interface PageClassList {
- void registerPages(PageRegistrySpi pageRegistry);
+ void registerPages(PageClassRegistrySpi pageRegistry);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassRegistrySpi.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassRegistrySpi.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassRegistrySpi.java
new file mode 100644
index 0000000..6113222
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassRegistrySpi.java
@@ -0,0 +1,33 @@
+/*
+ * 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.pages;
+
+import org.apache.wicket.Page;
+
+import org.apache.isis.viewer.wicket.model.models.PageType;
+
+/**
+ * Used by {@link PageClassList} implementations to add pages into the registry.
+ */
+public interface PageClassRegistrySpi {
+
+ public void registerPage(PageType pageType, Class<? extends Page> pageClass);
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageRegistrySpi.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageRegistrySpi.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageRegistrySpi.java
deleted file mode 100644
index ea9c9d1..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageRegistrySpi.java
+++ /dev/null
@@ -1,33 +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.pages;
-
-import org.apache.wicket.Page;
-
-import org.apache.isis.viewer.wicket.model.models.PageType;
-
-/**
- * Used by {@link PageClassList} implementations to add pages into the registry.
- */
-public interface PageRegistrySpi {
-
- public void registerPage(PageType pageType, Class<? extends Page> pageClass);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownChoiceComponentFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownChoiceComponentFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownChoiceComponentFactory.java
deleted file mode 100644
index 6a4d753..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownChoiceComponentFactory.java
+++ /dev/null
@@ -1,95 +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.selector.dropdown;
-
-import java.util.List;
-
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.markup.html.form.DropDownChoice;
-import org.apache.wicket.markup.html.form.IChoiceRenderer;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-
-import org.apache.isis.viewer.wicket.ui.ComponentFactory;
-
-/**
- * {@link ComponentFactory} for rendering a selection of
- * {@link ComponentFactory}s.
- *
- * <p>
- * Used by {@link DropDownSelectorPanelAbstract}.
- */
-public class DropDownChoiceComponentFactory extends DropDownChoice<ComponentFactory> {
-
- private static final long serialVersionUID = 1L;
-
- private final IModel<?> underlyingModel;
- private final String underlyingId;
- private final MarkupContainer container;
-
- private static final class ComponentFactoryChoiceRenderer implements IChoiceRenderer<ComponentFactory> {
- private static final long serialVersionUID = 1L;
-
- @Override
- public Object getDisplayValue(final ComponentFactory object) {
- return object.getName();
- }
-
- @Override
- public String getIdValue(final ComponentFactory object, final int index) {
- return Integer.toString(index);
- }
- }
-
- /**
- * @param id
- * - id to use for the drop down
- * @param selectedComponentFactoryModel
- * - currently selected in the drop-down
- * @param componentFactories
- * - list of {@link ComponentFactory}s to show in drop-down
- * @param container
- * - the container that should contain the {@link Component}
- * created by the selected {@link ComponentFactory}
- * @param underlyingId
- * - the id of the {@link Component} created
- * @param underlyingModel
- * - the model for the {@link Component}
- */
- public DropDownChoiceComponentFactory(final String id, final Model<ComponentFactory> selectedComponentFactoryModel, final List<? extends ComponentFactory> componentFactories, final MarkupContainer container, final String underlyingId, final IModel<?> underlyingModel) {
- super(id, selectedComponentFactoryModel, componentFactories, new ComponentFactoryChoiceRenderer());
- this.underlyingId = underlyingId;
- this.underlyingModel = underlyingModel;
- this.container = container;
- }
-
- @Override
- protected boolean wantOnSelectionChangedNotifications() {
- return true;
- }
-
- @Override
- protected void onSelectionChanged(final ComponentFactory newSelection) {
- final ComponentFactory componentFactory = getModel().getObject();
- if (componentFactory != null) {
- container.addOrReplace(componentFactory.createComponent(underlyingId, underlyingModel));
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.css
deleted file mode 100644
index 840f3d8..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.css
+++ /dev/null
@@ -1,21 +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.
- */
-.dropDownSelectorPanel > p {
- margin-bottom: 0.8em;
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.html
deleted file mode 100644
index 13a688b..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
- <body>
- <wicket:panel>
- <div class="dropDownSelectorPanel">
- <p wicket:id="views">
- <select wicket:id="viewsDropDown"/>
- </p>
- <div class="views">
- <wicket:child/>
- </div>
- </div>
- </wicket:panel>
- </body>
-</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.java
deleted file mode 100644
index 2e7a001..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/dropdown/DropDownSelectorPanelAbstract.java
+++ /dev/null
@@ -1,123 +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.selector.dropdown;
-
-import java.util.List;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-
-import org.apache.isis.applib.annotation.Render.Type;
-import org.apache.isis.core.metamodel.facets.members.resolve.RenderFacet;
-import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
-import org.apache.isis.viewer.wicket.ui.ComponentFactory;
-import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.components.collectioncontents.unresolved.CollectionContentsAsUnresolvedPanelFactory;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-
-public abstract class DropDownSelectorPanelAbstract<T extends IModel<?>> extends PanelAbstract<T> {
-
- private static final long serialVersionUID = 1L;
-
- private static final String ID_VIEWS = "views";
- private static final String ID_VIEWS_DROP_DOWN = "viewsDropDown";
-
- private final ComponentType componentType;
-
- public DropDownSelectorPanelAbstract(final String id, final String underlyingId, final T model, final ComponentFactory factory) {
- super(id, model);
-
- componentType = factory.getComponentType();
-
- addUnderlyingViews(underlyingId, model, factory);
- }
-
- private void addUnderlyingViews(final String underlyingId, final T model, final ComponentFactory factory) {
- final List<ComponentFactory> componentFactories = findOtherComponentFactories(model, factory);
-
- final ComponentFactory selectedComponentFactory = Iterables.find(componentFactories, determineInitialFactory(model));
- if (componentFactories.size() > 1) {
- final Model<ComponentFactory> componentFactoryModel = new Model<ComponentFactory>();
-
- componentFactoryModel.setObject(selectedComponentFactory);
-
- final WebMarkupContainer views = new WebMarkupContainer(ID_VIEWS);
-
- final DropDownChoiceComponentFactory viewsDropDown = new DropDownChoiceComponentFactory(ID_VIEWS_DROP_DOWN, componentFactoryModel, componentFactories, this, underlyingId, model);
- views.addOrReplace(viewsDropDown);
-
- addOrReplace(views);
- } else {
- permanentlyHide(ID_VIEWS);
- }
- addOrReplace(selectedComponentFactory.createComponent(underlyingId, model));
- }
-
- private static Predicate<ComponentFactory> determineInitialFactory(IModel<?> model) {
- return hasResolveEagerlyFacet(model)
- ? new Predicate<ComponentFactory>() {
- @Override
- public boolean apply(ComponentFactory input) {
- return !(input instanceof CollectionContentsAsUnresolvedPanelFactory);
- }
- }
- : Predicates.<ComponentFactory>alwaysTrue();
- }
-
- private static boolean hasResolveEagerlyFacet(IModel<?> model) {
- if(!(model instanceof EntityCollectionModel)) {
- return false;
- }
- final EntityCollectionModel entityCollectionModel = (EntityCollectionModel) model;
- if(!entityCollectionModel.isParented()) {
- return false;
- }
-
- final OneToManyAssociation collection =
- entityCollectionModel.getCollectionMemento().getCollection();
- RenderFacet resolveFacet = collection.getFacet(RenderFacet.class);
- return resolveFacet != null && resolveFacet.value() == Type.EAGERLY;
- }
-
- private List<ComponentFactory> findOtherComponentFactories(final T model, final ComponentFactory ignoreFactory) {
- final List<ComponentFactory> componentFactories = getComponentFactoryRegistry().findComponentFactories(componentType, model);
- return Lists.newArrayList(Collections2.filter(componentFactories, new Predicate<ComponentFactory>() {
- @Override
- public boolean apply(final ComponentFactory input) {
- return input != ignoreFactory;
- }
- }));
- }
-
- @Override
- public void renderHead(final IHeaderResponse response) {
- super.renderHead(response);
- renderHead(response, DropDownSelectorPanelAbstract.class);
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/app/PageClassListForQuickstart.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/app/PageClassListForQuickstart.java b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/app/PageClassListForQuickstart.java
new file mode 100644
index 0000000..b84dc46
--- /dev/null
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/app/PageClassListForQuickstart.java
@@ -0,0 +1,61 @@
+/**
+ * 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 app;
+
+import org.apache.wicket.Page;
+
+import org.apache.isis.viewer.wicket.ui.ComponentFactory;
+import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassListDefault;
+
+public class PageClassListForQuickstart extends PageClassListDefault {
+
+ @Override
+ protected Class<? extends Page> getSignInPageClass() {
+ // no override
+ return super.getSignInPageClass();
+ }
+
+ @Override
+ protected Class<? extends Page> getHomePageClass() {
+ // no override
+ return super.getHomePageClass();
+ }
+
+ @Override
+ protected Class<? extends Page> getAboutPageClass() {
+ // no override
+ return super.getAboutPageClass();
+ }
+
+ /**
+ * More typically, override using custom {@link ComponentFactory}s.
+ */
+ @Override
+ protected Class<? extends Page> getEntityPageClass() {
+ // no override
+ return super.getEntityPageClass();
+ }
+
+ /**
+ * More typically, override using custom {@link ComponentFactory}s.
+ */
+ @Override
+ protected Class<? extends Page> getActionPageClass() {
+ // no override
+ return super.getActionPageClass();
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/app/QuickStartApplication.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/app/QuickStartApplication.java b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/app/QuickStartApplication.java
index c81bd82..56aa2d1 100644
--- a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/app/QuickStartApplication.java
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/app/QuickStartApplication.java
@@ -39,8 +39,10 @@ import org.apache.wicket.request.Response;
import org.apache.wicket.request.http.WebRequest;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistrar;
+import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis;
+import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassListDefault;
/**
@@ -64,32 +66,47 @@ public class QuickStartApplication extends IsisWicketApplication {
private static final long serialVersionUID = 1L;
-//
-// uncomment for a (slightly hacky) way of allowing logins using ?user=sven&pass=pass
-//
-// for demos only, obvious
+ /**
+ * uncomment for a (slightly hacky) way of allowing logins using query args, eg:
+ *
+ * <tt>?user=sven&pass=pass</tt>
+ *
+ * <p>
+ * for demos only, obvious.
+ */
+ private final static boolean DEMO_MODE_USING_CREDENTIALS_AS_QUERYARGS = false;
-// @Override
-// public Session newSession(final Request request, final Response response) {
-// AuthenticatedWebSessionForIsis s = (AuthenticatedWebSessionForIsis) super.newSession(request, response);
-// final org.apache.wicket.util.string.StringValue user = request.getRequestParameters().getParameterValue("user");
-// final org.apache.wicket.util.string.StringValue password = request.getRequestParameters().getParameterValue("pass");
-// s.signIn(user.toString(), password.toString());
-// return s;
-// }
-//
-// @Override
-// public WebRequest newWebRequest(HttpServletRequest servletRequest, String filterPath) {
-// try {
-// String uname = servletRequest.getParameter("user");
-// if (uname != null) {
-// servletRequest.getSession().invalidate();
-// }
-// } catch (Exception e) {
-// }
-// WebRequest request = super.newWebRequest(servletRequest, filterPath);
-// return request;
-// }
+ @Override
+ public Session newSession(final Request request, final Response response) {
+ if(!DEMO_MODE_USING_CREDENTIALS_AS_QUERYARGS) {
+ return super.newSession(request, response);
+ }
+
+ // else demo mode
+ final AuthenticatedWebSessionForIsis s = (AuthenticatedWebSessionForIsis) super.newSession(request, response);
+ final org.apache.wicket.util.string.StringValue user = request.getRequestParameters().getParameterValue("user");
+ final org.apache.wicket.util.string.StringValue password = request.getRequestParameters().getParameterValue("pass");
+ s.signIn(user.toString(), password.toString());
+ return s;
+ }
+
+ @Override
+ public WebRequest newWebRequest(HttpServletRequest servletRequest, String filterPath) {
+ if(!DEMO_MODE_USING_CREDENTIALS_AS_QUERYARGS) {
+ return super.newWebRequest(servletRequest, filterPath);
+ }
+
+ // else demo mode
+ try {
+ String uname = servletRequest.getParameter("user");
+ if (uname != null) {
+ servletRequest.getSession().invalidate();
+ }
+ } catch (Exception e) {
+ }
+ WebRequest request = super.newWebRequest(servletRequest, filterPath);
+ return request;
+ }
@Override
protected Module newIsisWicketModule() {
@@ -99,6 +116,7 @@ public class QuickStartApplication extends IsisWicketApplication {
@Override
protected void configure() {
bind(ComponentFactoryRegistrar.class).to(ComponentFactoryRegistrarForQuickStart.class);
+ bind(PageClassList.class).to(PageClassListForQuickstart.class);
bind(String.class).annotatedWith(Names.named("applicationName")).toInstance("Quick Start App");
bind(String.class).annotatedWith(Names.named("applicationCss")).toInstance("css/application.css");
http://git-wip-us.apache.org/repos/asf/isis/blob/58aff6aa/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/css/application.css
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/css/application.css b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/css/application.css
index 1e2caf9..7124976 100644
--- a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/css/application.css
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/css/application.css
@@ -30,3 +30,22 @@ uncomment to add a logo (in an ../images directory relative to this file)
display: none;
}
*/
+
+/*
+example: uncomment to hide the icon
+
+.entityIconAndTitlePanel a img {
+ display: none;
+}
+*/
+
+/*
+example: uncomment to hide the sliding bookmark panel
+
+#bookmarkedPagesSlidingDiv {
+ display: none;
+}
+.showPanelTab {
+ display: none;
+}
+*/