Handle drag event
<!--
Isomorphic SmartClient
Copyright(c) 1998 and beyond Isomorphic Software, Inc.
"SmartClient" is a trademark of Isomorphic Software, Inc.
All rights reserved.
Open Source License
SmartClient source code, located under the source/ directory, and the resulting assembled modules
in isomorphic/system/modules/, as well as JavaScript and CSS files under the isomorphic/skins directory are
licensed under the terms of the GNU Lesser General Public License, version 3.
The text of the LGPLv3 license is available online at http://www.gnu.org/licenses/lgpl-3.0.html
If your project precludes the use of this license, or if you'd like to support SmartClient LGPL,
we encourage you to buy a commercial license.
Icon Experience Collection
Selected 16x16 icons within the isomorphic/skins directory are part of the Icon Experience collection
(http://www.iconexperience.com) and may be freely used with any SmartClient components without charge,
but may not be used as part of screen designs separate from SmartClient components without a purchase
of a license from Icon Experience. We are working to replace these icons as soon as possible.
All other media found under the isomorphic/skins directory may be used under the LGPLv3.
Commercial Licenses
A number of commercial licenses are available for purchase. Please see http://smartclient.com/license.
Warranty Disclaimer
This program 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.
Copyright 2001 and beyond Isomorphic Software, Inc. Last revised July 20, 2008.
-->
<!-- The following code is revised from SmartClient demo code(SmartClient_70rc2_LGPL.zip).-->
<HTML><HEAD>
<SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Calendar.js></SCRIPT>
<SCRIPT SRC=isomorphic/skins/standard/load_skin.js></SCRIPT>
</HEAD><BODY BGCOLOR='silver'>
<div id="gridDiv">
<SCRIPT>
isc.Img.create({
ID:"greenPiece",
width:48, height:48, src:"pieces/48/pawn_green.png",
canDrag: true,
canDrop: true,
dragAppearance: "tracker",
setDragTracker: "isc.Event.setDragTracker(isc.Canvas.imgHTML('pieces/24/pawn_green.png',24,24))"
});
isc.Label.create({
left: 100,
width: 300,
height: 300,
backgroundColor: "lightblue",
styleName:"blackText",
align: "center",
contents: "Show Drop Reticle",
overflow: "hidden",
canAcceptDrop: true,
initWidget : function () {
this.Super("initWidget", arguments);
var props = {
autoDraw: false,
// oversize so we don't ever show both borders
width: this.getWidth()+2,
height: this.getHeight()+2,
border: "1px solid black",
visibility: "hidden"
};
this.crossHairX = isc.Canvas.create(props);
this.crossHairY = isc.Canvas.create(props);
this.addChild(this.crossHairX);
this.addChild(this.crossHairY);
},
dropOver : function () {
this.crossHairX.show();
this.crossHairY.show();
this.updateCrossHairs();
},
dropMove : function () {
this.updateCrossHairs();
},
dropOut : function () {
this.crossHairX.hide();
this.crossHairY.hide();
},
updateCrossHairs : function () {
var x = this.getOffsetX();
var y = this.getOffsetY();
// crossHairX is the -X and +Y axis of the crossHair
this.crossHairX.setLeft(x-this.getWidth()-1);
this.crossHairX.setTop(y-this.getHeight()-1);
// crossHairY is +X, -Y
this.crossHairY.setLeft(x);
this.crossHairY.setTop(y);
}
});
</SCRIPT>
</div>
</BODY>
</HTML>
Related examples in the same category