From portal-commits at lists.jboss.org Wed Jul 9 17:30:22 2008 Content-Type: multipart/mixed; boundary="===============1903728797616146949==" MIME-Version: 1.0 From: portal-commits at lists.jboss.org To: portal-commits at lists.jboss.org Subject: [portal-commits] JBoss Portal SVN: r11388 - in modules/presentation/trunk: ajax/src/main/java/org/jboss/portal/presentation/ajax/client/model and 1 other directories. Date: Wed, 09 Jul 2008 17:30:22 -0400 Message-ID: --===============1903728797616146949== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: julien(a)jboss.com Date: 2008-07-09 17:30:21 -0400 (Wed, 09 Jul 2008) New Revision: 11388 Modified: modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentat= ion/ajax/client/dnd/DnDContext.java modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentat= ion/ajax/client/dnd/DnDPanel.java modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentat= ion/ajax/client/dnd/Draggable.java modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentat= ion/ajax/client/dnd/Droppable.java modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentat= ion/ajax/client/model/AjaxLayout.java modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentat= ion/ajax/client/model/AjaxObject.java modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentat= ion/ajax/client/model/AjaxPage.java modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentat= ion/ajax/client/model/AjaxPane.java modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentat= ion/ajax/client/model/AjaxWindow.java modules/presentation/trunk/portal/src/main/java/org/jboss/portal/present= ation/portal/PresentationServerImpl.java Log: improved DnD Modified: modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/pr= esentation/ajax/client/dnd/DnDContext.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/dnd/DnDContext.java 2008-07-09 20:39:40 UTC (rev 11387) +++ modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/dnd/DnDContext.java 2008-07-09 21:30:21 UTC (rev 11388) @@ -22,8 +22,7 @@ *************************************************************************= *****/ package org.jboss.portal.presentation.ajax.client.dnd; = -import com.google.gwt.user.client.ui.Panel; -import com.google.gwt.user.client.Element; +import java.util.Iterator; = /** * @author Julien Viet @@ -32,11 +31,9 @@ public interface DnDContext { = - = + Iterator getDraggables(int x, int y); = - Draggable findDraggable(int x, int y); + Iterator findDroppable(int x, int y); = - Droppable findDroppable(int x, int y); = - } Modified: modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/pr= esentation/ajax/client/dnd/DnDPanel.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/dnd/DnDPanel.java 2008-07-09 20:39:40 UTC (rev 11387) +++ modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/dnd/DnDPanel.java 2008-07-09 21:30:21 UTC (rev 11388) @@ -30,6 +30,9 @@ import com.google.gwt.user.client.Window; import org.jboss.portal.presentation.ajax.client.util.logging.Logger; = +import java.util.List; +import java.util.Iterator; + /** * @author Julien Viet * @version $Revision: 630 $ @@ -63,7 +66,7 @@ { int x =3D DOM.eventGetClientX(event); int y =3D DOM.eventGetClientY(event); - Draggable draggable =3D context.findDraggable(x + Window.getScrol= lLeft(), y + Window.getScrollTop()); + Draggable draggable =3D findDraggable(x + Window.getScrollLeft(),= y + Window.getScrollTop()); = // if (draggable !=3D null) @@ -76,6 +79,39 @@ return true; } = + private Draggable findDraggable(int x, int y) + { + Iterator draggables =3D context.getDraggables(x, y); + if (draggables.hasNext()) + { + return (Draggable)draggables.next(); + } + else + { + return null; + } + } + + private Droppable findDroppable(int x, int y) + { + Iterator droppables =3D context.findDroppable(x, y); + + // + while (droppables.hasNext()) + { + Droppable droppable =3D (Droppable)droppables.next(); + + // + if (!droppable.getId().equals(drag.draggable.getId())) + { + return droppable; + } + } + + // + return null; + } + public void onBrowserEvent(Event event) { if (context !=3D null) @@ -89,7 +125,7 @@ { int x =3D DOM.eventGetClientX(event); int y =3D DOM.eventGetClientY(event); - Draggable draggable =3D context.findDraggable(x + Window.ge= tScrollLeft(), y + Window.getScrollTop()); + Draggable draggable =3D findDraggable(x + Window.getScrollL= eft(), y + Window.getScrollTop()); = // if (draggable !=3D null) @@ -173,7 +209,7 @@ = private void updateDroppable(int x, int y) { - Droppable newDroppable =3D context.findDroppable(x, y); + Droppable newDroppable =3D findDroppable(x, y); = // if (newDroppable !=3D null) Modified: modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/pr= esentation/ajax/client/dnd/Draggable.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/dnd/Draggable.java 2008-07-09 20:39:40 UTC (rev 11387) +++ modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/dnd/Draggable.java 2008-07-09 21:30:21 UTC (rev 11388) @@ -31,6 +31,8 @@ public interface Draggable { = + String getId(); + /** * Returns the element container that will be used for moving. * Modified: modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/pr= esentation/ajax/client/dnd/Droppable.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/dnd/Droppable.java 2008-07-09 20:39:40 UTC (rev 11387) +++ modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/dnd/Droppable.java 2008-07-09 21:30:21 UTC (rev 11388) @@ -29,6 +29,8 @@ public interface Droppable { = + String getId(); + void enter(Draggable draggable); = void leave(Draggable draggable); Modified: modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/pr= esentation/ajax/client/model/AjaxLayout.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/model/AjaxLayout.java 2008-07-09 20:39:40 UTC (rev 11387) +++ modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/model/AjaxLayout.java 2008-07-09 21:30:21 UTC (rev 11388) @@ -26,8 +26,6 @@ import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.Widget; -import com.google.gwt.user.client.Element; -import com.google.gwt.user.client.DOM; = import java.util.Iterator; import java.util.Map; @@ -119,6 +117,11 @@ = private final Droppable droppable =3D new Droppable() { + public String getId() + { + return AjaxLayout.this.getId(); + } + public void enter(Draggable draggable) { layout.addStyleName("dnd-selected"); @@ -131,39 +134,39 @@ = public boolean accept(Draggable draggable) { - if (draggable instanceof AjaxWindow.DraggableWindow) + AjaxObject dragged =3D null; + + // + if (draggable instanceof AjaxWindow.DraggableImpl) { - AjaxWindow.DraggableWindow draggableWindow =3D (AjaxWindow.Dra= ggableWindow)draggable; - AjaxWindow window =3D draggableWindow.getWindow(); + dragged =3D ((AjaxWindow.DraggableImpl)draggable).getWindow(); + } + else if (draggable instanceof AjaxPane.DraggableImpl) + { + dragged =3D ((AjaxPane.DraggableImpl)draggable).getPane(); + } = + // + if (dragged !=3D null && !getChildren().contains(dragged)) + { + AjaxObject parent =3D dragged.getParent(); + // - if (!getChildren().contains(window)) - { - AjaxObject parent =3D window.getParent(); + log.info("Moving window " + dragged.getId() + " from parent " = + parent.getId() + " to layout " + getId()); = - // - log.info("Moving window " + window.getId() + " from parent = " + parent.getId() + " to layout " + getId()); = + // + MoveObjectAction action =3D new MoveObjectAction(dragged.getId= (), getId()); = - // - MoveObjectAction action =3D new MoveObjectAction(window.get= Id(), getId()); + // = + getContext().getAgentContext().process(action); = - // - getContext().getAgentContext().process(action); - -// // -// parent.removeChild(window); -// -// // -// addChild(window); - - // - return true; - } - else - { - log.info("Do not contain child " + window.getId()); - } + // + return true; } + else + { + log.info("Do not contain child " + dragged.getId()); + } = // return false; Modified: modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/pr= esentation/ajax/client/model/AjaxObject.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/model/AjaxObject.java 2008-07-09 20:39:40 UTC (rev 11387) +++ modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/model/AjaxObject.java 2008-07-09 21:30:21 UTC (rev 11388) @@ -28,6 +28,7 @@ import java.util.HashMap; import java.util.Collection; import java.util.Iterator; +import java.util.List; = import org.jboss.portal.presentation.ajax.client.model.update.ModelUpdate; import org.jboss.portal.presentation.ajax.client.model.update.AddObject; @@ -133,41 +134,44 @@ } } = - public final Draggable findDraggabble(int x, int y) + public final void findDraggabble(List draggables, int x, int y) { - Draggable draggable =3D doFindDraggable(x, y); - - // - for (Iterator i =3D getChildren().iterator();i.hasNext() && draggabl= e =3D=3D null;) + for (Iterator i =3D getChildren().iterator();i.hasNext();) { AjaxObject child =3D (AjaxObject)i.next(); = // - draggable =3D child.findDraggabble(x, y); + child.findDraggabble(draggables, x, y); } - = + // - return draggable; + Draggable draggable =3D doFindDraggable(x, y); + + // + if (draggable !=3D null) + { + draggables.add(draggable); + } } = - public final Droppable findDroppable(int x, int y) + public final void findDroppable(List droppables, int x, int y) { for (Iterator i =3D getChildren().iterator();i.hasNext();) { AjaxObject child =3D (AjaxObject)i.next(); = // - Droppable droppable =3D child.findDroppable(x, y); - - // - if (droppable !=3D null) - { - return droppable; - } + child.findDroppable(droppables, x, y); } = // - return doFindDroppable(x, y); + Droppable droppable =3D doFindDroppable(x, y); + + // + if (droppable !=3D null) + { + droppables.add(droppable); + } } = public final void refresh(boolean force) Modified: modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/pr= esentation/ajax/client/model/AjaxPage.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/model/AjaxPage.java 2008-07-09 20:39:40 UTC (rev 11387) +++ modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/model/AjaxPage.java 2008-07-09 21:30:21 UTC (rev 11388) @@ -27,6 +27,9 @@ import com.google.gwt.user.client.ui.Widget; = import java.util.Map; +import java.util.Iterator; +import java.util.List; +import java.util.ArrayList; = import org.jboss.portal.presentation.ajax.client.dnd.DnDPanel; import org.jboss.portal.presentation.ajax.client.dnd.DnDContext; @@ -95,14 +98,19 @@ /** . */ private final DnDContext dndContext =3D new DnDContext() { - public Draggable findDraggable(int x, int y) + + public Iterator getDraggables(int x, int y) { - return findDraggabble(x, y); + List draggables =3D new ArrayList(); + AjaxPage.this.findDraggabble(draggables, x, y); + return draggables.iterator(); } = - public Droppable findDroppable(int x, int y) + public Iterator findDroppable(int x, int y) { - return AjaxPage.this.findDroppable(x, y); + List droppables =3D new ArrayList(); + AjaxPage.this.findDroppable(droppables, x, y); + return droppables.iterator(); } }; } Modified: modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/pr= esentation/ajax/client/model/AjaxPane.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/model/AjaxPane.java 2008-07-09 20:39:40 UTC (rev 11387) +++ modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/model/AjaxPane.java 2008-07-09 21:30:21 UTC (rev 11388) @@ -38,12 +38,27 @@ public class AjaxPane extends AjaxLayout { = - /** . */ - private VerticalPanel widget; + class DraggableImpl implements Draggable + { = - /** . */ - private Draggable draggable =3D new Draggable() - { + /** . */ + private final AjaxPane pane; + + DraggableImpl(AjaxPane pane) + { + this.pane =3D pane; + } + + public AjaxPane getPane() + { + return pane; + } + + public String getId() + { + return AjaxPane.this.getId(); + } + public Element getContainer() { return widget.getElement(); @@ -74,11 +89,20 @@ public void rejected(Droppable droppable) { } - }; + } = + /** . */ + private VerticalPanel widget; + + /** . */ + private Draggable draggable; + public AjaxPane(String id, Map properties) { super(id, properties); + + // + this.draggable =3D new DraggableImpl(this); } = protected void doCreateWidget() @@ -92,19 +116,18 @@ = protected Draggable doFindDraggable(int x, int y) { -// int left =3D widget.getAbsoluteLeft(); -// int right =3D left + widget.getOffsetWidth(); -// int top =3D widget.getAbsoluteTop(); -// int bottom =3D top + widget.getOffsetHeight(); -// if (x >=3D left && x <=3D right && y >=3D top && y <=3D bottom) -// { -// return draggable; -// } -// else -// { -// return null; -// } - return null; + int left =3D widget.getAbsoluteLeft(); + int right =3D left + widget.getOffsetWidth(); + int top =3D widget.getAbsoluteTop(); + int bottom =3D top + widget.getOffsetHeight(); + if (x >=3D left && x <=3D right && y >=3D top && y <=3D bottom) + { + return draggable; + } + else + { + return null; + } } = protected void doRefresh(boolean force) Modified: modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/pr= esentation/ajax/client/model/AjaxWindow.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/model/AjaxWindow.java 2008-07-09 20:39:40 UTC (rev 11387) +++ modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presenta= tion/ajax/client/model/AjaxWindow.java 2008-07-09 21:30:21 UTC (rev 11388) @@ -69,19 +69,24 @@ private HTML markup; = /** . */ - private DraggableWindow draggable; + private DraggableImpl draggable; = - static class DraggableWindow implements Draggable + static class DraggableImpl implements Draggable { = /** . */ private final AjaxWindow window; = - DraggableWindow(AjaxWindow window) + DraggableImpl(AjaxWindow window) { this.window =3D window; } = + public String getId() + { + return window.getId(); + } + public AjaxWindow getWindow() { return window; @@ -124,7 +129,7 @@ super(id, properties); = // - draggable =3D new DraggableWindow(this); + draggable =3D new DraggableImpl(this); } = protected Draggable doFindDraggable(int x, int y) Modified: modules/presentation/trunk/portal/src/main/java/org/jboss/portal/= presentation/portal/PresentationServerImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/presentation/trunk/portal/src/main/java/org/jboss/portal/presen= tation/portal/PresentationServerImpl.java 2008-07-09 20:39:40 UTC (rev 1138= 7) +++ modules/presentation/trunk/portal/src/main/java/org/jboss/portal/presen= tation/portal/PresentationServerImpl.java 2008-07-09 21:30:21 UTC (rev 1138= 8) @@ -126,10 +126,10 @@ String targetId =3D objectAction.getTargetId(); = // - PortalNode targetNode =3D (PortalNode)structuralAdapter.getNode(t= argetId); + Object target =3D structuralAdapter.getNode(targetId); = // - if (targetNode =3D=3D null) + if (target =3D=3D null) { return new PresentationResponse(new ErrorResponse(404)); } @@ -141,19 +141,29 @@ } else if (objectAction instanceof DestroyUIObjectAction) { - LayoutElement referent =3D layoutStore.findElementByRef(target= Node.getId()); + if (target instanceof PortalNode) + { + PortalNode targetNode =3D (PortalNode)target; = - // - if (referent !=3D null) + // + LayoutElement referent =3D layoutStore.findElementByRef(tar= getNode.getId()); + + // + if (referent !=3D null) + { + layoutStore.destroyElement(referent.getId()); + } + + // + portalNodeManager.destroy(targetNode.getId()); + + // + return new PresentationResponse(new ShowUIObjectResponse(ta= rgetId)); + } + else { - layoutStore.destroyElement(referent.getId()); + throw new NotYetImplemented(); } - - // - portalNodeManager.destroy(targetNode.getId()); - = - // - return new PresentationResponse(new ShowUIObjectResponse(targe= tId)); } else if (objectAction instanceof LinkActivation) { @@ -164,7 +174,7 @@ ContentAction contentAction =3D (ContentAction)objectAction; = // - WindowNode window =3D (WindowNode)targetNode; + WindowNode window =3D (WindowNode)target; = // Content content =3D window.getContent(); @@ -218,7 +228,15 @@ } = // - LayoutElement sourceElt =3D layoutStore.findElementByRef(targe= tNode.getId()); + LayoutElement sourceElt; + if (target instanceof PortalNode) + { + sourceElt =3D layoutStore.findElementByRef(((PortalNode)tar= get).getId()); + } + else + { + sourceElt =3D (LayoutElement)target; + } = // if (sourceElt =3D=3D null) @@ -230,7 +248,7 @@ destinationElt.add(sourceElt); = // - System.out.println("Should move " + targetNode + " to " + dest= inationElt); + System.out.println("Should move " + sourceElt + " to " + desti= nationElt); = // return new PresentationResponse(new ShowUIObjectResponse("blah= ")); --===============1903728797616146949==--