You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
256 lines
6.6 KiB
256 lines
6.6 KiB
<html>
|
|
<head>
|
|
<script language="javascript" src="../dom.js"></script>
|
|
<script language="javascript" src="../palette.js"></script>
|
|
<script language="javascript" src="../menu.js"></script>
|
|
<script language="javascript" src="../bolist.js"></script>
|
|
|
|
<script language="javascript">
|
|
var skin=parent._skin?parent._skin:"skin_standard";
|
|
var lang=parent._lang?parent._lang:"en";
|
|
|
|
initDom("../images/"+skin+"/",lang)
|
|
styleSheet()
|
|
</script>
|
|
|
|
<script language="javascript">
|
|
|
|
|
|
var _globW=500
|
|
|
|
function setListW()
|
|
{
|
|
if (_globW==500)
|
|
_globW=300
|
|
else
|
|
_globW=500
|
|
|
|
filterListCont.resize(_globW,null)
|
|
}
|
|
|
|
var _globH=300
|
|
function setListH()
|
|
{
|
|
if (_globH==300)
|
|
_globH=200
|
|
else
|
|
_globH=300
|
|
|
|
filterListCont.resize(null,_globH)
|
|
}
|
|
|
|
function loadCB()
|
|
{
|
|
filterListCont.init()
|
|
addCombo.init()
|
|
addLabel.init()
|
|
addButton.init()
|
|
addCustomButton.init()
|
|
|
|
addCombo.add("Dimension","0",true)
|
|
addCombo.add("Measure","1")
|
|
addCombo.add("Detail","2")
|
|
addCombo.add("Filter","3")
|
|
}
|
|
|
|
function changeCB()
|
|
{
|
|
//alert("ChangeCB")
|
|
}
|
|
|
|
function dblClickCB()
|
|
{
|
|
alert("Double click on a leaf item. value=" + this.getSelection().value)
|
|
}
|
|
|
|
function moveCB()
|
|
{
|
|
alert("item moved. value=" + filterList.getSelection().value)
|
|
}
|
|
|
|
function newNodeCB()
|
|
{
|
|
alert("Node created. value=" + filterList.getSelection().value)
|
|
}
|
|
|
|
function andOrCB()
|
|
{
|
|
alert("Node changed. value=" + this.getSelection().value + " operator=" + (this.getSelection().isAnd?"AND":"OR") )
|
|
}
|
|
|
|
_counter=0
|
|
|
|
function addElement(elemType)
|
|
{
|
|
var sel=filterList.getSelection()
|
|
|
|
if (!sel.isNode())
|
|
sel=sel.getParentNode()
|
|
|
|
switch(elemType)
|
|
{
|
|
case 0:
|
|
sel.addItem(addLabel.getValue(),parseInt(addCombo.getSelection().value),"id_4"+(_counter++),"tip",0)
|
|
break
|
|
|
|
case 1:
|
|
sel.addNode(true, "id_4"+(_counter++))
|
|
break
|
|
|
|
case 2:
|
|
sel.addNode(false, "id_4"+(_counter++))
|
|
break
|
|
case 3:
|
|
sel.addAdvFilterItem(addLabel.getValue(),parseInt(addCombo.getSelection().value),"id_4"+(_counter++),"tip",0)
|
|
break
|
|
|
|
}
|
|
}
|
|
|
|
function getIndex()
|
|
{
|
|
var sel=filterList.getSelection()
|
|
if (sel)
|
|
alert("Index in parent = "+sel.getIndexInParent())
|
|
}
|
|
|
|
function removeSelection()
|
|
{
|
|
var sel=filterList.getSelection()
|
|
sel.remove()
|
|
}
|
|
|
|
// ---------------------------------------------
|
|
// Drag and Drop
|
|
// ---------------------------------------------
|
|
|
|
|
|
function dragCB(source)
|
|
{
|
|
//status="dragCB()"
|
|
}
|
|
|
|
function acceptDropCB(source, target, ctrl, shift)
|
|
{
|
|
//status="acceptDropCB()"
|
|
return true
|
|
}
|
|
|
|
function dropCB(source, target, ctrl, shift)
|
|
{
|
|
var sourceItem = source.selection
|
|
var targetItem = target.dropWidget
|
|
var index = target.dropIndex
|
|
|
|
if (ctrl)
|
|
{
|
|
if (sourceItem.isNode())
|
|
targetItem.addCopyNode(sourceItem, index)
|
|
else
|
|
targetItem.addItem(sourceItem.text,sourceItem.imgIndex,sourceItem.value,sourceItem.tooltip,index)
|
|
}
|
|
else
|
|
target.move(sourceItem, targetItem, index)
|
|
}
|
|
|
|
|
|
|
|
//filterList = newAndOrBOListWidget("test",500,300,"qualif.gif",changeCB,dblClickCB,andOrCB)
|
|
filterListCont = newAndOrContainerWidget("filterListCont",500,300,"qualif.gif",changeCB,dblClickCB,andOrCB,moveCB,newNodeCB,removeSelection,true)
|
|
filterList = filterListCont.getList()
|
|
|
|
|
|
filterList.setDragDrop(dragCB,acceptDropCB,dropCB)
|
|
|
|
//newAndOrBOListWidget("test",500,300,"qualif.gif",changeCB,dblClickCB)
|
|
|
|
addCombo = newComboWidget("addCombo")
|
|
addButton = newButtonWidget("addButton","Add","addElement(0)",100)
|
|
addCustomButton = newButtonWidget("addCustomButton","Add Custom","addElement(3)",100)
|
|
addLabel = newTextFieldWidget("addLabel",null,null,null,addElement,false,null,100)
|
|
|
|
|
|
addANDButton = newButtonWidget("addANDButton","add AND Node","addElement(1)",100)
|
|
addORButton = newButtonWidget("addORButton","add OR Node","addElement(2)",100)
|
|
remButton = newButtonWidget("remButton","Remove Selection","removeSelection()",100)
|
|
idxButton = newButtonWidget("idxButton","Get Index","getIndex()",100)
|
|
|
|
setW = newButtonWidget("setW","Width","setListW()",100)
|
|
setH = newButtonWidget("setH","Height","setListH()",100)
|
|
|
|
// Build filter list
|
|
var root=filterList.getRoot()
|
|
b1=root.addNode(true,"branche1")
|
|
b1.addItem("Net Income > 200000",1,"f1")
|
|
b1.addItem("Country in list France,US",0,"f2")
|
|
b2=root.addNode(false,"branche2")
|
|
b2.addItem("Age du capitaine > 50",2,"f3")
|
|
root.addItem("This Year",3,"f4")
|
|
root.addItem("Year 1999",3,"f4")
|
|
root.addItem("Year 2000",3,"f4")
|
|
|
|
// Select the OR node
|
|
filterList.select(filterList.getElementByValue("branche2"))
|
|
|
|
|
|
</script>
|
|
</head>
|
|
<body onload="loadCB()">
|
|
|
|
<table width="100%"><tr><td align="center" valign="middle">
|
|
<div class="insetBorder"><div class="dialogzone" style="padding:15px">
|
|
|
|
<u><b>Filter List</b></u><br><br>
|
|
Drag and Drop is enabled (CTRL to copy). You can use DEL to delete an item<br>Double click on a node to change is kind (AND or OR)<br>
|
|
<script language="javascript">filterListCont.write()</script>
|
|
<br>
|
|
<br>
|
|
<table class="dialogzone" border="0" cellspacing="5">
|
|
<tr>
|
|
<td align="left">Add an item</td>
|
|
<td align="left"><script language="javascript">addButton.write();</script></td>
|
|
<td></td>
|
|
<td><script language="javascript">addCombo.write();addLabel.write()</script></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left">Add a custom item</td>
|
|
<td align="left"><script language="javascript">addCustomButton.write();</script></td>
|
|
<td></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left">Add a node</td>
|
|
<td align="left"><script language="javascript">addANDButton.write();</script></td>
|
|
<td><script language="javascript">addORButton.write();</script></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left">Remove a node or an item</td>
|
|
<td align="left"><script language="javascript">remButton.write();</script></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left">index</td>
|
|
<td align="left"><script language="javascript">idxButton.write();</script></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left"></td>
|
|
<td align="left"><script language="javascript">setW.write();</script></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left"></td>
|
|
<td align="left"><script language="javascript">setH.write();</script></td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
|
|
</div></div>
|
|
</td></tr></table>
|
|
|
|
</body>
|
|
|
|
</html> |