Widget attachment : SmartClient Controls « SmartClient « JavaScript DHTML






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

1.Three level controls hierarchy and event propagation
2.Refernece object by ID
3.Show/hide a control
4.Position the widgets
5.Component reuse
6.Move to front/back to a layer
7.Move object by offset
8.Use isc namespace to eliminate the possibility of JS name collisions