org.apache.myfaces.custom.inputHtml.resource.kupucnftable.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tomahawk Show documentation
Show all versions of tomahawk Show documentation
JSF components and utilities that can be used with any JSF implementation.
This library is compatible with both JSF1.1 and JSF1.2; however for JSF1.2 users there
is an alternative build of Tomahawk available that takes advantage of JSF1.2 features to
offer some additional benefits.
/*****************************************************************************
*
* Copyright (c) 2003-2005 Kupu Contributors. All rights reserved.
*
* This software is distributed under the terms of the Kupu
* License. See LICENSE.txt for license text. For a list of Kupu
* Contributors see CREDITS.txt.
*
*****************************************************************************/
// $Id: kupubasetools.js 6120 2004-08-22 23:23:42Z roku $
TableTool.prototype.setTableRowRepeat = function() {
var selNode = this.editor.getSelectedNode();
var row = this.editor.getNearestParentOfType(selNode, 'tr');
if (!row) {
this.editor.logMessage(_('Not inside a row!'), 1);
return;
};
row.setAttribute('repeatable', 'repeatable');
row.className = 'repeatable';
this.editor.logMessage(_('Row repeated'));
this.updateState(selNode);
};
TableTool.prototype.delTableRowRepeat = function() {
var selNode = this.editor.getSelectedNode();
var row = this.editor.getNearestParentOfType(selNode, 'tr');
if (!row) {
this.editor.logMessage(_('Not inside a row!'), 1);
return;
};
row.removeAttribute('repeatable');
row.className = '';
row.removeAttribute('class');
this.editor.logMessage(_('Row repeat turned off'));
this.updateState(selNode);
};
function CNFTableToolBox(addtabledivid, edittabledivid, newrowsinputid,
newcolsinputid, makeheaderinputid, classselectid, alignselectid, addtablebuttonid,
addrowbuttonid, delrowbuttonid, setrowrepeatbuttonid, delrowrepeatbuttonid,
addcolbuttonid, delcolbuttonid, fixbuttonid,
fixallbuttonid, toolboxid, plainclass, activeclass) {
this.addtablediv = getFromSelector(addtabledivid);
this.edittablediv = getFromSelector(edittabledivid);
this.newrowsinput = getFromSelector(newrowsinputid);
this.newcolsinput = getFromSelector(newcolsinputid);
this.makeheaderinput = getFromSelector(makeheaderinputid);
this.classselect = getFromSelector(classselectid);
this.alignselect = getFromSelector(alignselectid);
this.addtablebutton = getFromSelector(addtablebuttonid);
this.addrowbutton = getFromSelector(addrowbuttonid);
this.delrowbutton = getFromSelector(delrowbuttonid);
this.setrowrepeatbutton = getFromSelector(setrowrepeatbuttonid);
this.delrowrepeatbutton = getFromSelector(delrowrepeatbuttonid);
this.addcolbutton = getFromSelector(addcolbuttonid);
this.delcolbutton = getFromSelector(delcolbuttonid);
this.fixbutton = getFromSelector(fixbuttonid);
this.fixallbutton = getFromSelector(fixallbuttonid);
this.toolboxel = getFromSelector(toolboxid);
this.plainclass = plainclass;
this.activeclass = activeclass;
this.initialize = function(tool, editor) {
/* attach the event handlers */
this.tool = tool;
this.editor = editor;
// build the select list of table classes if configured
if (this.editor.config.table_classes) {
var classes = this.editor.config.table_classes['class'];
while (this.classselect.hasChildNodes()) {
this.classselect.removeChild(this.classselect.firstChild);
};
for (var i=0; i < classes.length; i++) {
var classname = classes[i];
var option = document.createElement('option');
var content = document.createTextNode(classname);
option.appendChild(content);
option.setAttribute('value', classname);
this.classselect.appendChild(option);
};
};
addEventHandler(this.addtablebutton, "click", this.addTable, this);
addEventHandler(this.addrowbutton, "click", this.tool.addTableRow, this.tool);
addEventHandler(this.delrowbutton, "click", this.tool.delTableRow, this.tool);
addEventHandler(this.setrowrepeatbutton, "click", this.tool.setTableRowRepeat, this.tool);
addEventHandler(this.delrowrepeatbutton, "click", this.tool.delTableRowRepeat, this.tool);
addEventHandler(this.addcolbutton, "click", this.tool.addTableColumn, this.tool);
addEventHandler(this.delcolbutton, "click", this.tool.delTableColumn, this.tool);
addEventHandler(this.alignselect, "change", this.setColumnAlign, this);
addEventHandler(this.classselect, "change", this.setTableClass, this);
addEventHandler(this.fixbutton, "click", this.tool.fixTable, this.tool);
addEventHandler(this.fixallbutton, "click", this.tool.fixAllTables, this.tool);
this.addtablediv.style.display = "block";
this.edittablediv.style.display = "none";
this.editor.logMessage(_('Table tool initialized'));
};
this.updateState = function(selNode) {
/* update the state (add/edit) and update the pulldowns (if required) */
var table = this.editor.getNearestParentOfType(selNode, 'table');
if (table) {
this.addtablediv.style.display = "none";
this.edittablediv.style.display = "block";
var align = this.tool._getColumnAlign(selNode);
selectSelectItem(this.alignselect, align);
selectSelectItem(this.classselect, table.className);
if (this.toolboxel) {
this.toolboxel.className = this.activeclass;
};
var row = this.editor.getNearestParentOfType(selNode, 'tr');
var isRepeatable = row.getAttribute('repeatable');
if (isRepeatable) {
this.setrowrepeatbutton.style.display = 'none';
this.delrowrepeatbutton.style.display = 'inline';
} else {
this.setrowrepeatbutton.style.display = 'inline';
this.delrowrepeatbutton.style.display = 'none';
};
} else {
this.edittablediv.style.display = "none";
this.addtablediv.style.display = "block";
this.alignselect.selectedIndex = 0;
this.classselect.selectedIndex = 0;
if (this.toolboxel) {
this.toolboxel.className = this.plainclass;
};
};
};
};
CNFTableToolBox.prototype = new TableToolBox;