Widget attachment
<!--
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/skins/SmartClient/load_skin.js></SCRIPT>
</HEAD><BODY BGCOLOR='papayawhip' MARGINHEIGHT=0 MARGINWIDTH=0 LEFTMARGIN=0 TOPMARGIN=0>
<TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=5 BORDER=0><TR><TD CLASS=pageHeader BGCOLOR=WHITE>
Dynamic containment and attachment example
</TD><TD CLASS=pageHeader ALIGN=RIGHT BGCOLOR=WHITE>
Isomorphic SmartClient
</TD></TR></TABLE><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=0 BORDER=0><TR>
<TD BGCOLOR=336666><IMG SRC=images/blank.gif WIDTH=1 HEIGHT=4></TD></TR></TABLE>
<!--------------------------
Example code starts here
---------------------------->
<SCRIPT>
//
// widgets you manipulate on the page
//
// the big gray fields
Canvas.create({
ID:"P1",
left:300,
top:50,
width:200,
height:200,
overflow:"hidden",
canDragReposition:true,
dragAppearance:"target",
backgroundColor:"lightgrey",
contents:"P1"
});
Canvas.create({
ID:"P2",
left:550,
top:50,
width:200,
height:200,
overflow:"hidden",
canDragReposition:true,
dragAppearance:"target",
backgroundColor:"lightslategray",
contents:"P2"
});
// the smaller colored boxes
Canvas.create({
ID:"M1",
left:75,
top:100,
width:50,
height:50,
canDragReposition:true,
dragAppearance:"target",
backgroundColor:"khaki",
contents:"M1"
});
Canvas.create({
ID:"A1",
left:25,
top:50,
width:50,
height:50,
canDragReposition:true,
dragAppearance:"target",
backgroundColor:"lightseagreen",
contents:"A1"
});
Canvas.create({
ID:"A2",
left:125,
top:50,
width:50,
height:50,
canDragReposition:true,
dragAppearance:"target",
backgroundColor:"lightskyblue",
contents:"A2"
});
Canvas.create({
ID:"B1",
left:25,
top:150,
width:50,
height:50,
canDragReposition:true,
dragAppearance:"target",
backgroundColor:"lightsalmon",
contents:"B1"
});
Canvas.create({
ID:"B2",
left:125,
top:150,
width:50,
height:50,
canDragReposition:true,
dragAppearance:"target",
backgroundColor:"yellow",
contents:"B2"
});
//B1.addPeer(B2);
//
// labels and buttons to manipulate the above
//
Label.create({ left:80, top:295, width:150, height:20, contents:"<B>A1 Parent/Peer:</B>", align:"center" });
Button.create({ left:80, top:325, width:150, height:30, title:"P1.addChild(A1)", click:"P1.addChild(A1)" });
Button.create({ left:80, top:365, width:150, height:30, title:"P2.addChild(A1)", click:"P2.addChild(A1)" });
Button.create({ left:80, top:405, width:150, height:30, title:"M1.addPeer(A1)", click:"M1.addPeer(A1)" });
Label.create({ left:240, top:295, width:150, height:20, contents:"<B>B1 Parent/Peer:</B>", align:"center" });
Button.create({ left:240, top:325, width:150, height:30, title:"P2.addChild(B1)", click:"P2.addChild(B1)" });
Button.create({ left:240, top:365, width:150, height:30, title:"P1.addChild(B1)", click:"P1.addChild(B1)" });
Button.create({ left:240, top:405, width:150, height:30, title:"M1.addPeer(B1)", click:"M1.addPeer(B1)" });
Label.create({ left:400, top:295, width:150, height:20, contents:"<B>A2 Peer:</B>", align:"center" });
Button.create({ left:400, top:325, width:150, height:30, title:"A1.addPeer(A2)", click:"A1.addPeer(A2)" });
Button.create({ left:400, top:365, width:150, height:30, title:"B1.addPeer(A2)", click:"B1.addPeer(A2)" });
Button.create({ left:400, top:405, width:150, height:30, title:"M1.addPeer(A2)", click:"M1.addPeer(A2)" });
Label.create({ left:560, top:295, width:150, height:20, contents:"<B>B2 Peer:</B>", align:"center" });
Button.create({ left:560, top:325, width:150, height:30, title:"B1.addPeer(B2)", click:"B1.addPeer(B2)" });
Button.create({ left:560, top:365, width:150, height:30, title:"A1.addPeer(B2)", click:"A1.addPeer(B2)" });
Button.create({ left:560, top:405, width:150, height:30, title:"M1.addPeer(B2)", click:"M1.addPeer(B2)" });
</SCRIPT>
</BODY>
</HTML>
Related examples in the same category