Clazz.declarePackage("JSV.dialog");
Clazz.load(["JSV.dialog.JSVDialog"], "JSV.dialog.ViewsDialog", ["JU.Lst", "$.PT", "$.SB", "JSV.common.Annotation"], function(){
var c$ = Clazz.decorateAsClass(function(){
this.treeNodes = null;
this.checkBoxes = null;
this.closeSelectedButton = null;
this.combineSelectedButton = null;
this.viewSelectedButton = null;
this.checking = false;
Clazz.instantialize(this, arguments);}, JSV.dialog, "ViewsDialog", JSV.dialog.JSVDialog);
Clazz.makeConstructor(c$, 
function(){
Clazz.superConstructor (this, JSV.dialog.ViewsDialog, []);
this.type = JSV.common.Annotation.AType.Views;
});
Clazz.overrideMethod(c$, "getPosXY", 
function(){
return JSV.dialog.ViewsDialog.posXY;
});
Clazz.defineMethod(c$, "addUniqueControls", 
function(){
this.checkBoxes =  new JU.Lst();
this.treeNodes =  new JU.Lst();
this.dialog.addButton("btnSelectAll", "Select All");
this.dialog.addButton("btnSelectNone", "Select None");
this.txt2 = this.dialog.addTextField("txtOffset", "Offset", "" + this.vwr.parameters.viewOffset, "%", null, true);
this.viewSelectedButton = this.dialog.addButton("btnViewSelected", "View Selected");
this.combineSelectedButton = this.dialog.addButton("btnCombineSelected", "Combine Selected");
this.closeSelectedButton = this.dialog.addButton("btnCloseSelected", "Close Selected");
this.dialog.addButton("btnDone", "Done");
this.dialog.setPreferredSize(800, 350);
this.txt1 = this.dialog.addCheckBox(null, null, 0, false);
this.addCheckBoxes(this.vwr.spectraTree.getRootNode(), 0, true);
this.addCheckBoxes(this.vwr.spectraTree.getRootNode(), 0, false);
});
Clazz.defineMethod(c$, "addCheckBoxes", 
function(rootNode, level, isViews){
var enume = rootNode.children();
while (enume.hasMoreElements()) {
var treeNode = enume.nextElement();
var node = treeNode.getPanelNode();
if (node.isView != isViews) continue;
var title = node.toString();
if (title.indexOf("\n") >= 0) title = title.substring(0, title.indexOf('\n'));
var name = "chkBox" + this.treeNodes.size();
var cb = this.dialog.addCheckBox(name, title, level, node.isSelected);
treeNode.setIndex(this.treeNodes.size());
this.treeNodes.addLast(treeNode);
this.checkBoxes.addLast(cb);
this.addCheckBoxes(treeNode, level + 1, isViews);
}
}, "JSV.api.JSVTreeNode,~N,~B");
Clazz.overrideMethod(c$, "checkEnables", 
function(){
var n = 0;
for (var i = 0; i < this.checkBoxes.size(); i++) {
if (this.dialog.isSelected(this.checkBoxes.get(i)) && this.treeNodes.get(i).getPanelNode().jsvp != null) {
n++;
}}
System.out.println("viewsdialog n=" + n);
this.dialog.setEnabled(this.closeSelectedButton, n > 0);
this.dialog.setEnabled(this.combineSelectedButton, n > 1);
this.dialog.setEnabled(this.viewSelectedButton, n == 1);
});
Clazz.defineMethod(c$, "check", 
function(name){
var i = JU.PT.parseInt(name.substring(name.indexOf("_") + 1));
var node = this.treeNodes.get(i);
var cb = this.checkBoxes.get(i);
var isSelected = this.dialog.isSelected(cb);
if (node.getPanelNode().jsvp == null) {
if (!this.checking && isSelected && this.dialog.getText(cb).startsWith("Overlay")) {
this.checking = true;
this.selectAll(false);
this.dialog.setSelected(cb, true);
node.getPanelNode().isSelected = true;
this.checking = false;
}var enume = node.children();
while (enume.hasMoreElements()) {
var treeNode = enume.nextElement();
this.dialog.setSelected(this.checkBoxes.get(treeNode.getIndex()), isSelected);
treeNode.getPanelNode().isSelected = isSelected;
node.getPanelNode().isSelected = isSelected;
}
} else {
node.getPanelNode().isSelected = isSelected;
}if (isSelected) for (i = this.treeNodes.size(); --i >= 0; ) if (this.treeNodes.get(i).getPanelNode().isView != node.getPanelNode().isView) {
this.dialog.setSelected(this.checkBoxes.get(this.treeNodes.get(i).getIndex()), false);
this.treeNodes.get(i).getPanelNode().isSelected = false;
}
this.checkEnables();
}, "~S");
Clazz.defineMethod(c$, "selectAll", 
function(mode){
for (var i = this.checkBoxes.size(); --i >= 0; ) {
this.dialog.setSelected(this.checkBoxes.get(i), mode);
this.treeNodes.get(i).getPanelNode().isSelected = mode;
}
this.checkEnables();
}, "~B");
Clazz.defineMethod(c$, "combineSelected", 
function(){
});
Clazz.defineMethod(c$, "viewSelected", 
function(){
var sb =  new JU.SB();
var thisNode = null;
var n = 0;
for (var i = 0; i < this.checkBoxes.size(); i++) {
var cb = this.checkBoxes.get(i);
var node = this.treeNodes.get(i).getPanelNode();
if (this.dialog.isSelected(cb) && node.jsvp != null) {
if (node.isView) {
thisNode = node;
n = 2;
break;
}n++;
var label = this.dialog.getText(cb);
sb.append(" ").append(label.substring(0, label.indexOf(":")));
}}
var script = null;
if (n > 1) {
this.eventApply();
script = "STACKOFFSETY " + this.vwr.parameters.viewOffset;
}if (thisNode == null) {
this.vwr.execView(sb.toString().trim(), false);
this.layoutDialog();
} else {
this.vwr.setNode(thisNode);
}if (script != null) this.vwr.runScript(script);
});
Clazz.defineMethod(c$, "closeSelected", 
function(){
this.vwr.runScript("close !selected");
this.layoutDialog();
});
Clazz.overrideMethod(c$, "callback", 
function(id, msg){
if (id.equals("btnSelectAll")) {
this.selectAll(true);
} else if (id.equals("btnSelectNone")) {
this.selectAll(false);
} else if (id.equals("btnViewSelected")) {
this.viewSelected();
} else if (id.equals("btnCombineSelected")) {
this.viewSelected();
} else if (id.equals("btnCloseSelected")) {
this.closeSelected();
} else if (id.equals("btnDone")) {
this.viewSelected();
this.dispose();
this.done();
} else if (id.equals("txtOffset")) {
this.eventApply();
this.viewSelected();
} else if (id.startsWith("chk")) {
this.checkEnables();
} else {
return this.callbackAD(id, msg);
}return true;
}, "~S,~S");
Clazz.overrideMethod(c$, "applyFromFields", 
function(){
this.apply( Clazz.newArray(-1, [this.dialog.getText(this.txt2)]));
});
c$.posXY =  Clazz.newIntArray(-1, [-2147483648, 0]);
});
;//5.0.1-v7 Tue Jul 22 18:14:29 CDT 2025
