Drag and drop interaction (Smart GWT) : Drag Drop « GWT « Java

Home
Java
1.2D Graphics GUI
2.3D
3.Advanced Graphics
4.Ant
5.Apache Common
6.Chart
7.Class
8.Collections Data Structure
9.Data Type
10.Database SQL JDBC
11.Design Pattern
12.Development Class
13.EJB3
14.Email
15.Event
16.File Input Output
17.Game
18.Generics
19.GWT
20.Hibernate
21.I18N
22.J2EE
23.J2ME
24.JavaFX
25.JDK 6
26.JDK 7
27.JNDI LDAP
28.JPA
29.JSP
30.JSTL
31.Language Basics
32.Network Protocol
33.PDF RTF
34.Reflection
35.Regular Expressions
36.Scripting
37.Security
38.Servlets
39.Spring
40.Swing Components
41.Swing JFC
42.SWT JFace Eclipse
43.Threads
44.Tiny Application
45.Velocity
46.Web Services SOA
47.XML
Java » GWT » Drag Drop 




Drag and drop interaction (Smart GWT)
Drag and drop interaction (Smart GWT)
   
/*
 * SmartGWT (GWT for SmartClient)
 * Copyright 2008 and beyond, Isomorphic Software, Inc.
 *
 * SmartGWT is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License version 3
 * as published by the Free Software Foundation.  SmartGWT is also
 * available under typical commercial license terms - see
 * http://smartclient.com/license
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 */

package com.smartgwt.sample.showcase.client;


import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.DragAppearance;
import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.types.Visibility;
import com.smartgwt.client.util.EventHandler;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.DropMoveEvent;
import com.smartgwt.client.widgets.events.DropMoveHandler;
import com.smartgwt.client.widgets.events.DropOutEvent;
import com.smartgwt.client.widgets.events.DropOutHandler;
import com.smartgwt.client.widgets.events.DropOverEvent;
import com.smartgwt.client.widgets.events.DropOverHandler;

public class Showcase implements EntryPoint{

    public void onModuleLoad() {
       RootPanel.get().add(getViewPanel());
    }


    public Canvas getViewPanel() {
        Canvas canvas = new Canvas();

        final Img img = new Img("pieces/48/pawn_green.png"4848) {
            protected boolean setDragTracker() {
                Canvas c = new Canvas();
                String html = Canvas.imgHTML("pieces/24/pawn_green.png"2424, null, null, null);
                EventHandler.setDragTracker(html);
                return false;
            }
        };
        img.setCanDrag(true);
        img.setCanDrop(true);
        img.setDragAppearance(DragAppearance.TRACKER);

        final DropLabel label = new DropLabel();
        label.setLeft(100);
        label.setWidth(300);
        label.setHeight(300);
        label.setBackgroundColor("lightblue");
        label.setAlign(Alignment.CENTER);
        label.setContents("Show Drop Reticle");
        label.setOverflow(Overflow.HIDDEN);
        label.setCanAcceptDrop(true);

        canvas.addChild(img);
        canvas.addChild(label);
        return canvas;
    }



    class DropLabel extends Label {

        private Canvas crossHairX;
        private Canvas crossHairY;

        protected void onInit() {
            crossHairX = createCrossHair();
            crossHairY = createCrossHair();
            addChild(crossHairX);
            addChild(crossHairY);

            this.addDropOverHandler(new DropOverHandler() {
                public void onDropOver(DropOverEvent event) {
                    getCrossHairX().show();
                    getCrossHairY().show();
                    updateCrossHairs();
                }
            });

            this.addDropMoveHandler(new DropMoveHandler() {
                public void onDropMove(DropMoveEvent event) {
                    updateCrossHairs();
                }
            });

            this.addDropOutHandler(new DropOutHandler() {
                public void onDropOut(DropOutEvent event) {
                    getCrossHairX().hide();
                    getCrossHairY().hide();
                }
            });

        }

        private Canvas createCrossHair() {
            Canvas canvas = new Canvas();
            canvas.setWidth(this.getWidth() 2);
            canvas.setHeight(this.getHeight() 2);
            canvas.setBorder("1px solid black");
            canvas.setVisibility(Visibility.HIDDEN);
            return canvas;
        }

        public Canvas getCrossHairX() {
            return crossHairX;
        }

        public Canvas getCrossHairY() {
            return crossHairY;
        }

        public void updateCrossHairs() {
            int x = getOffsetX();
            int y = getOffsetY();

            // crossHairX is the -X and +Y axis of the crossHair
            crossHairX.setLeft(x - getWidth() 1);
            crossHairX.setTop(y - getHeight() 1);

            // crossHairY is +X, -Y
            crossHairY.setLeft(x);
            crossHairY.setTop(y);
        }
    }

}

   
    
    
  














SmartGWT.zip( 9,880 k)
Related examples in the same category
1.Click the buttons to move the draggable box above or below the other boxes (Smart GWT)Click the buttons to move the draggable box above or below the other boxes (Smart GWT)
2.Drag the large cubes into the boxes to create new small cubes (Smart GWT)Drag the large cubes into the boxes to create new small cubes (Smart GWT)
3.Drag effect: Translucent, Shadow, Outline (Smart GWT)
4.Drag and move back and forth (Smart GWT)Drag and move back and forth (Smart GWT)
5.Drag and drop to move image (Smart GWT)Drag and drop to move image (Smart GWT)
6.Animation during drag and drop (Smart GWT)Animation during drag and drop (Smart GWT)
7.Click and drag to pan the image inside its frame. (Smart GWT)Click and drag to pan the image inside its frame. (Smart GWT)
8.Set drag types (Smart GWT)Set drag types (Smart GWT)
9.Draggable image (Smart GWT)Draggable image (Smart GWT)
10.Set resizable edge: from any side or from bottom or right (Smart GWT)Set resizable edge: from any side or from bottom or right (Smart GWT)
11.Drag Tracker Sample (Smart GWT)Drag Tracker Sample (Smart GWT)
12.Make ContentPanel draggable (Ext GWT)Make ContentPanel draggable (Ext GWT)
13.Make ContentPanel Resizable (Ext GWT)Make ContentPanel Resizable (Ext GWT)
14.Set container for dragging operation (Ext GWT)Set container for dragging operation (Ext GWT)
15.Set Draggable for the header (Ext GWT)Set Draggable for the header (Ext GWT)
16.GridStore data binding (Ext GWT)GridStore data binding (Ext GWT)
17.Basic Drag and Drop (DND) (Ext GWT)Basic Drag and Drop (DND) (Ext GWT)
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.