Ok, I'm lazy and couldn't decipher that code at a glance. What does it
do?
// Daniel
jalbum.net
On 2009-10-15, at 03:09, Douglas Ferguson wrote:
Has anybody seen this:
http://www.onehippo.org/cms7/integration_testing.html
Seems like a nice alternative vs. having to set markupIds on all
components.
Thoughts?
............
They have a patch for wicket:
Index: jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
===================================================================
*** jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
(revision 724306)
--- jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
(working copy)
***************
*** 1475,1478 ****
--- 1475,1489 ----
{
return sequence++;
}
+
+ /**
+ * Retrieves the next available session-unique value for the
supplied Component
+ *
+ * @param component
+ * the component which requests the generation of a
markup identifier
+ * @return session-unique value
+ */
+ public Object getMarkupId(Component component) {
+ return new Integer(nextSequenceValue());
+ }
}
Index: jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
===================================================================
*** jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
(revision 724306)
--- jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
(working copy)
***************
*** 1426,1437 ****
return null;
}
! final int generatedMarkupId = storedMarkupId instanceof Integer
! ? ((Integer)storedMarkupId).intValue() : Session.get
().nextSequenceValue();
!
! if (storedMarkupId == null)
! {
! setMarkupIdImpl(new Integer(generatedMarkupId));
}
// try to read from markup
--- 1426,1445 ----
return null;
}
! String markupIdPostfix;
! if (!(storedMarkupId instanceof Integer)) {
! Object markupIdFromSession =
Session.get().getMarkupId(this);
! if (storedMarkupId == null && markupIdFromSession !=
null) {
! setMarkupIdImpl(markupIdFromSession);
! }
! storedMarkupId = markupIdFromSession;
! }
! if (storedMarkupId instanceof Integer) {
! markupIdPostfix = Integer.toHexString(((Integer)
storedMarkupId).intValue()).toLowerCase();
! } else if (storedMarkupId instanceof String) {
! return (String) storedMarkupId;
! } else {
! markupIdPostfix = storedMarkupId.toString();
}
// try to read from markup
***************
*** 1449,1455 ****
markupIdPrefix = getId();
}
- String markupIdPostfix = Integer.toHexString
(generatedMarkupId).toLowerCase();
markupIdPostfix = RequestContext.get().encodeMarkupId
(markupIdPostfix);
String markupId = markupIdPrefix + markupIdPostfix;
--- 1457,1462 ----
Then in their session, they return stable ids
private Map<String,Integer> pluginComponentCounters = new
HashMap<String,Integer>();
// Do not add the @Override annotation on this
public Object getMarkupId(Component component) {
String markupId = null;
for (Component ancestor=component.getParent(); ancestor!
=null && markupId==null; ancestor=ancestor.getParent()) {
if (ancestor instanceof IPlugin || ancestor instanceof
Home) {
markupId = ancestor.getMarkupId(true);
break;
}
}
if (markupId == null) {
return "root";
}
int componentNum = 0;
if (pluginComponentCounters.containsKey(markupId)) {
componentNum = pluginComponentCounters.get
(markupId).intValue();
}
++componentNum;
pluginComponentCounters.put(markupId, new Integer
(componentNum));
return markupId + "_" + componentNum;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org