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