Yes No Maybe Item : List Box « SmartClient « JavaScript DHTML






Yes No Maybe Item

 
<!--
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/standard/load_skin.js></SCRIPT>
  <SCRIPT>
/*---------->    YesNoMaybeItem.js    <----------*/


// subclass either TextItem or StaticTextItem, depending on whether we
// provide a free-form edit field as well as the value picker
ClassFactory.defineClass("YesNoMaybeItem", TextItem);

// class (static) properties and methods
YesNoMaybeItem.addClassProperties({
    // (just placeholders for now - these are set dynamically)
  dialog:null,
  currentEditor:null,
    
    // create the picker dialog
  makeDialog : function () {
    YesNoMaybeItem.dialog = Dialog.create({
      autoDraw:false,
      autoCenter:false,
      isModal:true,
      showHeader:false,
            showToolbar:false,
      width:130,
      height:110,
      bodyDefaults:{layoutMargin:10, membersMargin:10},
      items:[
        Button.create({title:"YES", click:"YesNoMaybeItem.setValue(this.title)"}),
        Button.create({title:"NO", click:"YesNoMaybeItem.setValue(this.title)"}),
        Button.create({title:"MAYBE", click:"YesNoMaybeItem.setValue(this.title)"})
      ]
    });
  },
  // show the picker dialog at the specified position (could be smarter about this)
  showDialog : function (left, top) {
    this.dialog.moveTo(left, top);
    this.dialog.show();
  },
  // set the specified value and dismiss the picker dialog
  setValue : function (value) {
    this.currentEditor.setValue(value);
    this.dialog.hide();
  }    
});

// instance properties and methods
YesNoMaybeItem.addProperties({
  icons:[{}], // could specify a different image here

    // (this logic could alternatively go on the 'click' handler of the icon object)
  iconClick : function (form, item, icon) {
    // get global coordinates of the clicked picker icon
    var iconRect = this.getIconPageRect(icon);

    // lazily create the YesNoMaybe picker dialog the first time a yesNoMaybe editor is clicked
    if (!YesNoMaybeItem.dialog) YesNoMaybeItem.makeDialog();

    // remember what editor is active, so we can set its value from the picker dialog
    YesNoMaybeItem.currentEditor = this;

    // show the picker dialog
    YesNoMaybeItem.showDialog(iconRect[0],iconRect[1]);
  }
});

  
  </SCRIPT>
</HEAD><BODY>
<SCRIPT>


//--------------------------------------------------
// Use the yesNoMaybe editorType in a form
//--------------------------------------------------

isc.DynamicForm.create({
  ID:"animalForm",
  left:50, top:50,
  fields:[
    {name:"decision", Title:"Decision", editorType:"yesNoMaybe"}
  ]
});



</SCRIPT>
</BODY>
</HTML>

   
  








Related examples in the same category

1.Multiselect list box