Clazz.declarePackage("JSV.common");
Clazz.load(null, "JSV.common.PanelNode", ["JU.SB", "JSV.common.Parameters"], function(){
var c$ = Clazz.decorateAsClass(function(){
this.treeNode = null;
this.source = null;
this.fileName = null;
this.jsvp = null;
this.id = null;
this.legend = null;
this.isSelected = false;
this.isView = false;
this.isSimulation = false;
this.frameTitle = null;
Clazz.instantialize(this, arguments);}, JSV.common, "PanelNode", null);
Clazz.makeConstructor(c$, 
function(id, fileName, source, jsvp){
this.id = id;
this.source = source;
this.fileName = fileName;
this.isSimulation = (source.getFilePath().indexOf("http://SIMULATION/") >= 0);
this.jsvp = jsvp;
if (jsvp != null) {
this.pd().getSpectrumAt(0).setId(id);
this.frameTitle = jsvp.getTitle();
}}, "~S,~S,JSV.source.JDXSource,JSV.api.JSVPanel");
Clazz.defineMethod(c$, "setTreeNode", 
function(node){
this.treeNode = node;
}, "JSV.api.JSVTreeNode");
Clazz.defineMethod(c$, "getTreeNode", 
function(){
return this.treeNode;
});
Clazz.defineMethod(c$, "dispose", 
function(){
this.source.dispose();
if (this.jsvp != null) this.jsvp.dispose();
this.source = null;
this.jsvp = null;
this.legend = null;
});
Clazz.defineMethod(c$, "pd", 
function(){
return this.jsvp.getPanelData();
});
Clazz.defineMethod(c$, "getSpectrum", 
function(){
return this.pd().getSpectrum();
});
Clazz.defineMethod(c$, "setLegend", 
function(legend){
if (this.legend != null) this.legend.dispose();
this.legend = legend;
return legend;
}, "JSV.dialog.JSVDialog");
Clazz.overrideMethod(c$, "toString", 
function(){
return ((this.id == null ? "" : this.id + ": ") + (this.frameTitle == null ? this.fileName : this.frameTitle));
});
c$.findSourceByNameOrId = Clazz.defineMethod(c$, "findSourceByNameOrId", 
function(id, panelNodes){
for (var i = panelNodes.size(); --i >= 0; ) {
var node = panelNodes.get(i);
if (id.equals(node.id) || id.equals(node.source.getSpectra().get(0).sourceID) || node.source.matchesFilePath(id)) return node.source;
}
for (var i = panelNodes.size(); --i >= 0; ) {
var node = panelNodes.get(i);
if (id.equals(node.fileName)) return node.source;
}
return null;
}, "~S,JU.Lst");
c$.findNodeById = Clazz.defineMethod(c$, "findNodeById", 
function(id, panelNodes){
if (id != null) for (var i = panelNodes.size(); --i >= 0; ) if (id.equals(panelNodes.get(i).id) || id.equals(panelNodes.get(i).frameTitle)) return panelNodes.get(i);

return null;
}, "~S,JU.Lst");
c$.findNode = Clazz.defineMethod(c$, "findNode", 
function(jsvp, panelNodes){
for (var i = panelNodes.size(); --i >= 0; ) if (panelNodes.get(i).jsvp === jsvp) return panelNodes.get(i);

return null;
}, "JSV.api.JSVPanel,JU.Lst");
c$.getSpectrumListAsString = Clazz.defineMethod(c$, "getSpectrumListAsString", 
function(panelNodes){
var sb =  new JU.SB();
for (var i = 0; i < panelNodes.size(); i++) {
var node = panelNodes.get(i);
if (!node.isView) sb.append(" ").append(node.id);
}
return sb.toString().trim();
}, "JU.Lst");
c$.isOpen = Clazz.defineMethod(c$, "isOpen", 
function(panelNodes, filePath){
var pt = -1;
if (filePath != null) for (var i = panelNodes.size(); --i >= 0; ) {
if (panelNodes.get(i).source.matchesFilePath(filePath) || filePath.equals(panelNodes.get(i).frameTitle)) return pt;
}
return -1;
}, "JU.Lst,~S");
Clazz.defineMethod(c$, "setFrameTitle", 
function(name){
this.frameTitle = name;
}, "~S");
c$.getLastFileFirstNode = Clazz.defineMethod(c$, "getLastFileFirstNode", 
function(panelNodes){
var n = panelNodes.size();
var node = (n == 0 ? null : panelNodes.get(n - 1));
for (var i = n - 1; --i >= 0; ) {
if (panelNodes.get(i).source !== node.source) break;
node = panelNodes.get(i);
}
return (node == null ? null : node.jsvp);
}, "JU.Lst");
Clazz.defineMethod(c$, "getInfo", 
function(key){
var info = this.pd().getInfo(false, key);
JSV.common.Parameters.putInfo(key, info, "panelId", this.id);
JSV.common.Parameters.putInfo(key, info, "panelFileName", this.fileName);
JSV.common.Parameters.putInfo(key, info, "panelSource", this.source.getFilePath());
return info;
}, "~S");
});
;//5.0.1-v7 Tue Jul 22 18:14:29 CDT 2025
