Hi Community, I've got a problem here with a (javax.swing.) tree in Wicket 1.5.4. Everything is working fine, besides the update after drag&drop. Everything according to the database is handled fine and if I recall the page the tree (and its model) is fine.
Some theoretical: I'd like to display the following tree Object - AnotherObject - AnotherObject Object - AnotherObject So I've got different classes within the tree based on the deep. My first question is how to handle this with wicket-tree? Is this possible? The other question is about the update of the tree. Here's some code: public MyPage() { releaseTree = new LinkTree("releaseTree", getReleaseTreeModel()) { @Override protected Component newNodeComponent(String id, IModel model) { WebMarkupContainer component = (WebMarkupContainer) super.newNodeComponent(id, model); component.setOutputMarkupId(true); return component; } ... } releaseTree.setOutputMarkupId(true); releaseTree.add(getDragBehavior()); releaseTree.add(getDropBehavior()); add(releaseTree); } private Behavior getDragBehavior() { return new DragSource(Operation.MOVE) { public void onAfterDrop(AjaxRequestTarget target, Transfer transfer) { target.add(releaseTree); }; @Override public void onBeforeDrop(Component drag, Transfer transfer) throws Reject { Component parent = drag.getParent(); DefaultMutableTreeNode node = (DefaultMutableTreeNode) parent.getDefaultModelObject(); Object object = node.getUserObject(); if (object instanceof Theme) { transfer.setData(object); } else { transfer.reject(); } } }.drag("a"); } private Behavior getDropBehavior() { return new DropTarget(Operation.MOVE) { @Override public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject { Object object = transfer.getData(); if (object instanceof Theme) { // Delete old relation Release release = Release.findReleaseByThemeId(((Theme) object).getId()); release.getThemes().remove(object); release.merge(); // create new relation Component contentComponent = location.getComponent(); Component parent = contentComponent.getParent(); Object newRelease = ((DefaultMutableTreeNode) parent.getDefaultModelObject()).getUserObject(); if (newRelease instanceof Release) { ((Release) newRelease).getThemes().add((Theme) object); ((Release) newRelease).merge(); } else { transfer.reject(); } } else { transfer.reject(); } releaseTree.updateTree(); target.add(releaseTree); } }.dropCenter("a"); } As i said - everything is fine except updating the tree after drop. I hope you understand the problem. Regards, Erik -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/SwingTree-to-WicketTree-Drag-Drop-Different-Objects-tp4620927.html Sent from the Users forum mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org