You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/11/12 21:02:21 UTC
[39/50] [abbrv] isis git commit: ISIS-1242: fixing breadcrumb model
so can change title.
ISIS-1242: fixing breadcrumb model so can change title.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c492e358
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c492e358
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c492e358
Branch: refs/heads/ISIS-1224-select2-v4
Commit: c492e3584da95e484772ca4536fb3ad29013a2b5
Parents: 49474d7
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Nov 9 22:50:09 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 10 16:46:56 2015 +0000
----------------------------------------------------------------------
.../model/mementos/PageParameterNames.java | 2 +-
.../widgets/breadcrumbs/BreadcrumbModel.java | 99 +++++++++++++-------
.../widgets/breadcrumbs/BreadcrumbPanel.java | 11 +--
3 files changed, 65 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/c492e358/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
index 75f1a64..77617c3 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
@@ -86,7 +86,7 @@ public enum PageParameterNames {
/**
* Returns the {@link #name()} formatted as
- * {@link Strings#camelCase(String) camel case}.
+ * {@link StringExtensions#asCamel(String) camel case}.
*
* <p>
* For example, <tt>ACTION_TYPE</tt> becomes <tt>actionType</tt>.
http://git-wip-us.apache.org/repos/asf/isis/blob/c492e358/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
index 6f58943..b3e5e94 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
@@ -26,6 +26,10 @@ import com.google.common.collect.Maps;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -36,7 +40,6 @@ public class BreadcrumbModel implements Serializable {
private static final int MAX_SIZE = 5;
private final Map<String, EntityModel> entityModelByOidStr = Maps.newHashMap();
- private final Map<EntityModel, String> titleByEntityModel = Maps.newHashMap();
private final Map<EntityModel, String> oidStrByEntityModel = Maps.newHashMap();
private final List<EntityModel> list = Lists.newArrayList();
@@ -51,33 +54,38 @@ public class BreadcrumbModel implements Serializable {
return;
}
- final String oidStr = oidStrFor(entityModel);
+ final String oidStr = oidStrFrom(entityModel);
- removeExisting(oidStr);
+ remove(oidStr);
addToStart(oidStr, entityModel);
trimTo(MAX_SIZE);
}
- private String oidStrFor(final EntityModel entityModel) {
+ private String oidStrFrom(final EntityModel entityModel) {
final PageParameters pageParameters = entityModel.getPageParametersWithoutUiHints();
- return PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
+ return oidStrFrom(pageParameters);
+ }
+
+ private String oidStrFrom(final PageParameters pageParameters) {
+ String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
+ if(oidStr == null) {
+ return null;
+ }
+ try {
+ final RootOid unmarshal = getOidMarshaller().unmarshal(oidStr, RootOid.class);
+ return unmarshal.enStringNoVersion(getOidMarshaller());
+ } catch(Exception ex) {
+ return null;
+ }
}
private void addToStart(final String oidStr, final EntityModel entityModel) {
entityModelByOidStr.put(oidStr, entityModel);
- titleByEntityModel.put(entityModel, entityModel.getTitle());
oidStrByEntityModel.put(entityModel, oidStr);
list.add(0, entityModel);
}
- private void removeExisting(final String oidStr) {
- final EntityModel existingModel = entityModelByOidStr.get(oidStr);
- if(existingModel != null) {
- remove(oidStr, existingModel);
- }
- }
-
private void trimTo(final int size) {
if(list.size() <= size) {
return;
@@ -89,42 +97,61 @@ public class BreadcrumbModel implements Serializable {
}
}
- private void remove(final String oidStr, final EntityModel model) {
- entityModelByOidStr.remove(oidStr);
- titleByEntityModel.remove(model);
- oidStrByEntityModel.remove(model);
- list.remove(model);
+ public String titleFor(final EntityModel model) {
+ return model.getObjectAdapterMemento().getObjectAdapter(AdapterManager.ConcurrencyChecking.NO_CHECK).titleString(null);
}
- public void remove(String oidStr) {
- EntityModel removedModel = entityModelByOidStr.remove(oidStr);
- if(removedModel != null) {
- remove(removedModel);
+ public EntityModel lookup(final String oidStr) {
+ if(oidStr == null) {
+ return null;
}
+ return entityModelByOidStr.get(oidStr);
}
- public void remove(EntityModel entityModel) {
- String oidStr = oidStrByEntityModel.get(entityModel);
- if(oidStr != null) {
- remove(oidStr, entityModel);
+ public void detach() {
+ for (EntityModel entityModel : list) {
+ entityModel.detach();
}
}
- public String titleFor(final EntityModel model) {
- return titleByEntityModel.get(model);
+ public Object getId(final EntityModel choice) {
+ try {
+ final PageParameters pageParameters = choice.getPageParameters();
+ final String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
+ return RootOid.deString(oidStr, getOidMarshaller());
+ } catch (Exception ex) {
+ remove(choice);
+ return null;
+ }
+
}
- public EntityModel lookup(String oidStr) {
- if(oidStr == null) {
- return null;
+
+ void remove(final String rootOid) {
+ final EntityModel existingModel = entityModelByOidStr.get(rootOid);
+ if(existingModel != null) {
+ remove(rootOid, existingModel);
}
- final EntityModel entityModel = entityModelByOidStr.get(oidStr);
- return entityModel;
}
- public void detach() {
- for (EntityModel entityModel : list) {
- entityModel.detach();
+ public void remove(final EntityModel entityModel) {
+ final String oidStr = oidStrByEntityModel.get(entityModel);
+ if(oidStr != null) {
+ remove(oidStr, entityModel);
}
}
+
+ private void remove(final String rootOid, final EntityModel model) {
+ entityModelByOidStr.remove(rootOid);
+ oidStrByEntityModel.remove(model);
+ list.remove(model);
+ }
+
+
+
+ protected OidMarshaller getOidMarshaller() {
+ return IsisContext.getOidMarshaller();
+ }
+
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c492e358/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
index 84b16c6..50c7367 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
@@ -27,7 +27,6 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.wicketstuff.select2.Response;
import org.wicketstuff.select2.Select2Choice;
import org.wicketstuff.select2.Settings;
@@ -35,7 +34,6 @@ import org.wicketstuff.select2.TextChoiceProvider;
import org.apache.isis.core.commons.authentication.MessageBroker;
import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
@@ -70,14 +68,7 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
@Override
protected Object getId(EntityModel choice) {
- try {
- final PageParameters pageParameters = choice.getPageParameters();
- final String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
- return oidStr;
- } catch (Exception ex) {
- breadcrumbModel.remove(choice);
- return null;
- }
+ return breadcrumbModel.getId(choice);
}
@Override