Giter Club home page Giter Club logo

cbtree's Introduction

The Dijit CheckBox Tree

The dijit CheckBox Tree, github project cbtree, is a dijit widget extending the dijit/Tree. The CheckBox Tree, stores and associated models are highly configurable providing support for, amongst others:

  • Multi state checkboxes (checked/unchecked/mixed).
  • Parent-Child checkbox relationship.
  • Read-Only checkboxes
  • Tree Styling and Custom Icons

All dijit CheckBox Tree, model and store modules are fully AMD compliant, the CheckBox Tree comes with a set of extensions allowing the user to enhance and programmatically control every aspect of the tree. All extensions are optional therefore, if the user does not require the functionality they do not need to be loaded:

  1. Tree Styling
  2. Tree in HTML forms
  3. Store Model extension
  4. Store CORS support
  5. Store Ancestry

The CheckBox

The use of checkboxes is configurable and enabled by default. The CheckBox Tree uses it own so called multi-state checkbox to represent the checked state of a data item. However, the user can substitute the multi-state checkbox with any widget capable of representing a 'checked' state. Whether or not multi-state is allowed, or dual state only, depends on the store model configuration.

If however, you elect to disable the checkbox feature the CheckBox Tree acts like the default dijit Tree but still offering some of the additional benifits like the ability to hide branch and/or leaf icons and all other styling features.

The Stores

Starting with release cbtree-v09-3.0 the CheckBox Tree package includes a new set of stores implementing the cbtree/store/api/Store API. The cbtree store API is an enhancement to the default dojo/store/api/Store API. The following stores are included:

  • Memory
  • Hierarchy
  • ObjectStore
  • FileStore

All stores can also be used stand-alone, independent of the CheckBox Tree and models.

Parent-Child Relationship

The CheckBox Tree comes with three store models, one of the Store Model features is the ability to maintain a parent-child relationship. The parent checked state, represented as a tree branch checkbox, is the composite state of all its child checkboxes. For example, if the child checkboxes are either all checked or unchecked the parent will get the same checked or unchecked state. If however, the children checked state is mixed, that is, some are checked while others are unchecked, the parent will get a so called 'mixed' state.

CheckBox Tree Styling

The Tree Styling extension allows you to dynamically manage the tree styling on a per data item basis. Using the simple to use accessor set() you can alter the icon, label and row styling for the entire tree or just a single data item. For example: set("iconClass", "myIcon", item) changes the css icon class associated with all tree node instances of a data item, or if you want to change the label style:

// As a callback of a CheckBox click event
function checkBoxClicked (item, nodeWidget, evt) {
  if (nodeWidget.get("checked")) {
    tree.set("labelStyle", {color:"red"}, item);
  }
}

For a detailed description of Tree Styling Wiki pages.

CheckBox Tree Demos

The cbtree packages comes with a set of demos each demonstrating the CheckBox Tree features and capabilities. Two comprehensive demos are available online:

In addition, the CheckBox Tree wiki has several tutorials using, for example, the popular ArcGIS API for JavaScript.

CheckBox Tree Documentation

As of release **_cbtree-v09-3.0_** all documentation is available online in the [cbtree Wiki](https://github.com/pjekel/cbtree/wiki) section and is no longer included in the distribution.

Checkbox Tree Downloads

The github repository **cbtree** represents the current development stage of the CheckBox Tree project, also known as the incubation stage. It may contain new, untested and undocumented features that are not included in any stable build. No warrenty is provided that such features will be included in future releases.

To get the latest stable version please visit the download section:

Version Date dojo Description
cbtree-v09.4-0 Nov-03 2013 1.8 - 1.9 New TreeOnSubmit extension adds support for Checkbox Tree in HTML forms.
Updated documentation and Wiki.
cbtree-v09.3-0 May-03 2013 1.8 - 1.9 New stores implementing the cbtree/store/api/Store API.
New models for the new cbtree stores
New demos combining cbtree with the ArcGIS 3.3 API
Enhanced Tree Styling
and much more...
cbtree-v09.2-0 Aug-15 2012 1.8 Updated The CheckBox Tree to work with dojo 1.8.
Official release File Store and File Store Model.
Per store item read-only checkboxes.
New declarative demos added.
Updated documentation.
cbtree-v09.1-0 Aug-06 2012 1.7 A new File Store and File Store Model have been added.
New and updated demos.
Updated documentation.
Minor software updates.
cbtree-v09.0-0 May-20 2012 1.7 Initial cbtree-AMD release

cbtree's People

Contributors

ljwrer avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.