// --------------------------------------------------------------- // TabViewDialog // --------------------------------------------------------------- function hdfTabViewDialog(wrkfolder) { var dateTime = new Date().getTime(); require(["dojo/text!desktop/text/viewdialog.html" + "?dummy=" + dateTime, "dijit/layout/ContentPane", "dijit/Dialog", "dijit/registry", "dijit/form/TextBox", "dijit/form/Button", "dojo/dom-construct", "dojo/dom"], function(snippet, ContentPane, Dialog, registry, TextBox, Button, domConstruct, dom) { hjsonViewCtl = wrkfolder; console.log ("TabViewDiqalog hjsonViewCtl.tabenv: ", hjsonViewCtl.tabenv); console.log ("TabViewDiqalog text: ", snippet); if (registry.byId("tabViewDialog")) { registry.byId("tabViewDialog").show(); return; } var tabViewDialog = new Dialog({ id: "tabViewDialog", title: "Drag and Drop View", style: "width: 1000px; height: 800px;", content: snippet }); tabViewDialog.show(); console.log ("TabViewDiqalog wrkfolder: ", wrkfolder); hdfTabViewLoad(wrkfolder); }); } // --------------------------------------------------------------- // TabViewLoad: // --------------------------------------------------------------- function hdfTabViewLoad(wrkfolder) { console.log ("TabViewLoad wrkfolder: ", wrkfolder); require(["dojo/ready", "dijit/registry"], function(ready, registry){ hdfTabViewDndSelectedPane(registry, wrkfolder); hdfTabViewDndAvailablePane(registry, wrkfolder); }); } // ----------------------------------------------------------- // Load TabView Available Container // ----------------------------------------------------------- function hdfTabViewDndAvailablePane(registry, wrkfolder) { require(["dojo/ready","dojo/data/ItemFileWriteStore", "dijit/tree/ForestStoreModel", "dijit/Tree", "dijit/tree/dndSource"], function(ready, ItemFileWriteStore, ForestStoreModel, Tree, dndSource) { var availableStore = new ItemFileWriteStore({ data: wrkfolder.avail, jsId: "availableJson" }); console.log("...AvailablePane availableStore: ", availableStore); var availableModel = new ForestStoreModel({ store: availableStore, jsId: "availModel", rootId: "rootAvailable", rootLabel: "Available Columns" }); console.log("...AvailablePane availableModel: ", availableModel); var availableTree = new Tree({ id: "availablecolumns", title: "Use Double Click to Move Field Across to Selected Columns", model: availableModel, dndController: dndSource, checkAcceptance: function(source, nodes) { return true; }, checkItemAcceptance: function(target, source) { return true; }, onDblClick: function(item) { hjsonColDndItem.source = {}; hjsonColDndItem.source.id = item.id[0]; hjsonColDndItem.source.label= item.label[0]; hjsonColDndItem.source.name = item.name[0]; hjsonColDndItem.source.type = item.type[0]; hjsonColDndItem.target = hjsonColDndItem.source; hdfTabViewDndChange("add"); return; } }, "hdmViewDndAvailPane"); }); console.log("...AvailablePane availableTree: ", availableTree); return; } // ----------------------------------------------------------- // On-Click Testing // ----------------------------------------------------------- function hdfTabViewDndAvailOnClick(item) { alert("onClick testing"); console.log("...onClick Testing: ", item); return; } // ----------------------------------------------------------- // Load TabView Selected Container // ----------------------------------------------------------- function hdfTabViewDndSelectedPane(registry, wrkfolder) { require(["dojo/ready","dojo/data/ItemFileWriteStore", "dijit/tree/ForestStoreModel", "dijit/Tree", "dijit/tree/dndSource"], function(ready, ItemFileWriteStore, ForestStoreModel, Tree, dndSource) { var selectedStore = new ItemFileWriteStore({ data: wrkfolder.selected, jsId: "selectedJson" }); console.log("...SelectedPane selectedStore: ", selectedStore); var selectedModel = new ForestStoreModel({ store: selectedStore, jsId: "jsSelectedModel", rootId: "rootSelected", rootLabel: "Selected Columns" }); var selectedTree = new Tree({ id: "selectedcolumns", title: "One Click, Then Drag and Drop to Position Field Within Selected Columns", jsId: "jsSelectedTree", model: selectedModel, dndController: dndSource, accept: ["col", "dum"], //betweenThreshold: "5", checkAcceptance: function(source, nodes) { return true; }, checkItemAcceptance: function(target, source) { var targetItem = registry.getEnclosingWidget(target).item; hjsonColDndItem.target = {}; hjsonColDndItem.target.id = targetItem.id[0]; hjsonColDndItem.target.label= targetItem.label[0]; hjsonColDndItem.target.name = targetItem.name[0]; hjsonColDndItem.target.type = targetItem.type[0]; console.log("...selectedCheckItemAcceptance hjsonColDntItem: ", hjsonColDndItem); if (hjsonColDndItem.target.type == "col" || hjsonColDndItem.target.type == "dum") { return true; } else { return false; } }, onClick: function(item) { hjsonColDndItem.source = {}; hjsonColDndItem.source.id = item.id[0]; hjsonColDndItem.source.label= item.label[0]; hjsonColDndItem.source.name = item.name[0]; hjsonColDndItem.source.type = item.type[0]; return; }, onDndDrop: function(source, sourceDom, copy) { hdfTabViewDndSelectedOnDrop(source); return; } }, "hdmViewDndSelectedPane"); }); return; } // ----------------------------------------------------------- // On Drop Action // ----------------------------------------------------------- function hdfTabViewDndSelectedOnDrop(source) { console.log("...selectedOnDndDrop hjsonColDndItem: ", hjsonColDndItem); var dndController = source.tree.dndController; source.tree.dndController.onDndCancel(); if (!hjsonColDndItem.source) { require(["dijit/Dialog"], function(Dialog){ var selectDialog = new Dialog({ title: "...DndSelectedOnDrop", style: "width: 400px", content: "You Must One Click on Column before you Drag, Please Try Again"}); selectDialog.show(); }); return; } if (hjsonColDndItem.source.type == "dum") { var alertString = "...SelectedOnDrop" + "\n\n" + "Remove Bin Controls can not be moved in the Tree"; alert(alertString); return; } if (hjsonColDndItem.target.type == "dum") { var action = "del"; } else { var action = "col"; } hdfTabViewDndChange(action); return; } // ----------------------------------------------------------- // Load TabView Delete Container // ----------------------------------------------------------- function hdfTabViewDndRemovedPane() { var removedContent = dom.byId("hdmTabViewDndRemoved"); removedContent.innerHTML = "