How to Use GTreeTable: A Comprehensive Guide

May 24, 2024 | Programming

GTreeTable is an exciting extension of the Twitter Bootstrap 3 framework. It enables you to manage tree structures within an HTML table seamlessly. This article will guide you through the setup, functionality, and troubleshooting tips for using GTreeTable, ensuring that you can harness its full potential.

Getting Started

To begin your journey with GTreeTable, follow these simple installation steps:

1. Minimal Installation

  • Add required files to your HTML document:
  • 
        <link rel="stylesheet" type="text/css" href="gtreetable.min.css">
        <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
        <script type="text/javascript" src="bootstrap-gtreetable.js"></script>
        
  • Create an empty HTML table:
  • 
        <table class="table gtreetable" id="gtreetable">
            <thead>
                <tr>
                    <th>Category</th>
                </tr>
            </thead>
        </table>
        
  • Define the basic configuration inside the jQuery ready method:
  • 
        jQuery('#gtreetable').gtreetable({
            source: function (id) {
                return {
                    type: 'GET',
                    url: nodeChildren,
                    data: { id: id },
                    dataType: 'json',
                    error: function(XMLHttpRequest) {
                        alert(XMLHttpRequest.status + ': ' + XMLHttpRequest.responseText);
                    }
                };
            }
        });
        

Understanding the Functionality

Think of GTreeTable as an advanced library where each book (node) can be organized in various ways, allowing you to read (interact with) them easily. This library allows for:

Actions

Once you select a node, various actions can be performed. By default, actions like Create, Update, and Delete (CUD) allow management of the nodes in the tree structure. Additional actions can be provided through configuration.

CUD Operations

To save and delete nodes, AJAX communication with the server is crucial. You can configure actions for saving or deleting nodes directly from JavaScript:


jQuery('#gtreetable').gtreetable({
    ...
    onSave: function (oNode) {
        return {
            type: 'POST',
            url: !oNode.isSaved() ? nodeCreate : nodeUpdate + '?id=' + oNode.getId(),
            data: {
                parent: oNode.getParent(),
                name: oNode.getName(),
                position: oNode.getInsertPosition(),
                related: oNode.getRelatedNodeId()
            },
            dataType: 'json',
            error: function(XMLHttpRequest) {
                alert(XMLHttpRequest.status + ': ' + XMLHttpRequest.responseText);
            }
        };
    },
    onDelete: function (oNode) {
        return {
            type: 'POST',
            url: nodeDelete + '?id=' + oNode.getId(),
            dataType: 'json',
            error: function(XMLHttpRequest) {
                alert(XMLHttpRequest.status + ': ' + XMLHttpRequest.responseText);
            }
        };
    }
});

Node Movement

Moving nodes is akin to rearranging books on a shelf. The Drag and Drop method makes it intuitive. This feature requires jQueryUI and can be activated in the configuration:


jQuery('#gtreetable').gtreetable({
    ...
    draggable: true,
    onMove: function (oSource, oDestination, position) {
        return {
            type: 'POST',
            url: nodeMove + '?id=' + oSource.getId(),
            data: { related: oDestination.getId(), position: position },
            dataType: 'json',
            error: function(XMLHttpRequest) {
                alert(XMLHttpRequest.status + ': ' + XMLHttpRequest.responseText);
            }
        };
    }
});

Troubleshooting Tips

While using GTreeTable, you might run into some issues. Here are some common troubleshooting ideas:

  • Ensure all library files are correctly linked and are loading without errors.
  • Check for correct configuration in the AJAX settings. If your data doesn’t load, your URLs might be incorrect.
  • If any events are not triggering, ensure that you have configured the associated methods properly.
  • When experiencing issues with Drag and Drop, ensure that the jQueryUI library is included.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox