App-SocialCalc-Multiplayer
view release on metacpan or search on metacpan
socialcalc/socialcalcspreadsheetcontrol.js view on Meta::CPAN
divStyle: "border:1px solid black;overflow:auto;",
html: 'Audit Trail'
};
// Comment
this.tabnums.comment = this.tabs.length;
this.tabs.push({name: "comment", text: "Comment", html:
'<div id="%id.commenttools" style="display:none;">'+
'<table cellspacing="0" cellpadding="0"><tr><td>'+
'<textarea id="%id.commenttext" style="font-size:small;height:32px;width:600px;overflow:auto;" onfocus="%s.CmdGotFocus(this);"></textarea>'+
'</td><td style="vertical-align:top;">'+
' <input type="button" value="%loc!Save!" onclick="%s.SpreadsheetControlCommentSet();" style="font-size:x-small;">'+
'</td></tr></table>'+
'</div>',
view: "sheet",
onclick: SocialCalc.SpreadsheetControlCommentOnclick,
onunclick: SocialCalc.SpreadsheetControlCommentOnunclick
});
// Names
this.tabnums.names = this.tabs.length;
this.tabs.push({name: "names", text: "Names", html:
'<div id="%id.namestools" style="display:none;">'+
' <table cellspacing="0" cellpadding="0"><tr>'+
' <td style="vertical-align:top;padding-right:24px;">'+
' <div style="%tbt.">%loc!Existing Names!</div>'+
' <select id="%id.nameslist" size="1" onchange="%s.SpreadsheetControlNamesChangedName();" onfocus="%s.CmdGotFocus(this);"><option selected>[New]</option></select>'+
' </td>'+
' <td style="vertical-align:top;padding-right:6px;">'+
' <div style="%tbt.">%loc!Name!</div>'+
' <input type="text" id="%id.namesname" style="font-size:x-small;width:75px;" onfocus="%s.CmdGotFocus(this);">'+
' </td>'+
' <td style="vertical-align:top;padding-right:6px;">'+
' <div style="%tbt.">%loc!Description!</div>'+
' <input type="text" id="%id.namesdesc" style="font-size:x-small;width:150px;" onfocus="%s.CmdGotFocus(this);">'+
' </td>'+
' <td style="vertical-align:top;padding-right:6px;">'+
' <div style="%tbt.">%loc!Value!</div>'+
' <input type="text" id="%id.namesvalue" width="16" style="font-size:x-small;width:100px;" onfocus="%s.CmdGotFocus(this);">'+
' </td>'+
' <td style="vertical-align:top;padding-right:12px;width:100px;">'+
' <div style="%tbt.">%loc!Set Value To!</div>'+
' <input type="button" id="%id.namesrangeproposal" value="A1" onclick="%s.SpreadsheetControlNamesSetValue();" style="font-size:x-small;">'+
' </td>'+
' <td style="vertical-align:top;padding-right:6px;">'+
' <div style="%tbt."> </div>'+
' <input type="button" value="%loc!Save!" onclick="%s.SpreadsheetControlNamesSave();" style="font-size:x-small;">'+
' <input type="button" value="%loc!Delete!" onclick="%s.SpreadsheetControlNamesDelete()" style="font-size:x-small;">'+
' </td>'+
' </tr></table>'+
'</div>',
view: "sheet",
onclick: SocialCalc.SpreadsheetControlNamesOnclick,
onunclick: SocialCalc.SpreadsheetControlNamesOnunclick
});
// Clipboard
this.tabnums.clipboard = this.tabs.length;
this.tabs.push({name: "clipboard", text: "Clipboard", html:
'<div id="%id.clipboardtools" style="display:none;">'+
' <table cellspacing="0" cellpadding="0"><tr>'+
' <td style="vertical-align:top;padding-right:24px;">'+
' <div style="%tbt.">'+
' '+
' </div>'+
' </td>'+
' </tr></table>'+
'</div>',
view: "clipboard",
onclick: SocialCalc.SpreadsheetControlClipboardOnclick,
onclickFocus: "clipboardtext"
});
this.views["clipboard"] = {name: "clipboard", divStyle: "overflow:auto;", html:
' <div style="font-size:x-small;padding:5px 0px 10px 0px;">'+
' <b>%loc!Display Clipboard in!:</b>'+
' <input type="radio" id="%id.clipboardformat-tab" name="%id.clipboardformat" checked onclick="%s.SpreadsheetControlClipboardFormat(\'tab\');"> %loc!Tab-delimited format! '+
' <input type="radio" id="%id.clipboardformat-csv" name="%id.clipboardformat" onclick="%s.SpreadsheetControlClipboardFormat(\'csv\');"> %loc!CSV format! '+
' <input type="radio" id="%id.clipboardformat-scsave" name="%id.clipboardformat" onclick="%s.SpreadsheetControlClipboardFormat(\'scsave\');"> %loc!SocialCalc-save format!'+
' </div>'+
' <input type="button" value="%loc!Load SocialCalc Clipboard With This!" style="font-size:x-small;" onclick="%s.SpreadsheetControlClipboardLoad();"> '+
' <input type="button" value="%loc!Clear SocialCalc Clipboard!" style="font-size:x-small;" onclick="%s.SpreadsheetControlClipboardClear();"> '+
' <br>'+
' <textarea id="%id.clipboardtext" style="font-size:small;height:350px;width:800px;overflow:auto;" onfocus="%s.CmdGotFocus(this);"></textarea>'
};
return;
}
// Methods:
SocialCalc.SpreadsheetControl.prototype.InitializeSpreadsheetControl =
function(node, height, width, spacebelow) {return SocialCalc.InitializeSpreadsheetControl(this, node, height, width, spacebelow);};
SocialCalc.SpreadsheetControl.prototype.DoOnResize = function() {return SocialCalc.DoOnResize(this);};
SocialCalc.SpreadsheetControl.prototype.SizeSSDiv = function() {return SocialCalc.SizeSSDiv(this);};
SocialCalc.SpreadsheetControl.prototype.ExecuteCommand =
function(combostr, sstr) {return SocialCalc.SpreadsheetControlExecuteCommand(this, combostr, sstr);};
SocialCalc.SpreadsheetControl.prototype.CreateSheetHTML =
function() {return SocialCalc.SpreadsheetControlCreateSheetHTML(this);};
SocialCalc.SpreadsheetControl.prototype.CreateSpreadsheetSave =
function(otherparts) {return SocialCalc.SpreadsheetControlCreateSpreadsheetSave(this, otherparts);};
SocialCalc.SpreadsheetControl.prototype.DecodeSpreadsheetSave =
function(str) {return SocialCalc.SpreadsheetControlDecodeSpreadsheetSave(this, str);};
SocialCalc.SpreadsheetControl.prototype.CreateCellHTML =
function(coord) {return SocialCalc.SpreadsheetControlCreateCellHTML(this, coord);};
SocialCalc.SpreadsheetControl.prototype.CreateCellHTMLSave =
function(range) {return SocialCalc.SpreadsheetControlCreateCellHTMLSave(this, range);};
// Sheet Methods to make things a little easier:
SocialCalc.SpreadsheetControl.prototype.ParseSheetSave = function(str) {return this.sheet.ParseSheetSave(str);};
SocialCalc.SpreadsheetControl.prototype.CreateSheetSave = function() {return this.sheet.CreateSheetSave();};
// Functions:
//
// InitializeSpreadsheetControl(spreadsheet, node, height, width, spacebelow)
//
// Creates the control elements and makes them the child of node (string or element).
// If present, height and width specify size.
// If either is 0 or null (missing), the maximum that fits on the screen
// (taking spacebelow into account) is used.
//
// Displays the tabs and creates the views (other than "sheet").
// The first tab is set as selected, but onclick is not invoked.
//
// You should do a redisplay or recalc (which redisplays) after running this.
//
SocialCalc.InitializeSpreadsheetControl = function(spreadsheet, node, height, width, spacebelow) {
var scc = SocialCalc.Constants;
var SCLoc = SocialCalc.LocalizeString;
var SCLocSS = SocialCalc.LocalizeSubstrings;
var html, child, i, vname, v, style, button, bele;
var tabs = spreadsheet.tabs;
var views = spreadsheet.views;
spreadsheet.requestedHeight = height;
spreadsheet.requestedWidth = width;
socialcalc/socialcalcspreadsheetcontrol.js view on Meta::CPAN
else {
document.getElementById(s.idPrefix+"namesname").value = "";
document.getElementById(s.idPrefix+"namesdesc").value = "";
document.getElementById(s.idPrefix+"namesvalue").value = "";
}
}
SocialCalc.SpreadsheetControlNamesRangeChange = function(editor) {
var s = SocialCalc.GetSpreadsheetControlObject();
var ele = document.getElementById(s.idPrefix+"namesrangeproposal");
if (editor.range.hasrange) {
ele.value = SocialCalc.crToCoord(editor.range.left, editor.range.top) + ":" +
SocialCalc.crToCoord(editor.range.right, editor.range.bottom);
}
else {
ele.value = editor.ecell.coord;
}
}
SocialCalc.SpreadsheetControlNamesOnunclick = function(s, t) {
delete s.editor.RangeChangeCallback.names;
delete s.editor.MoveECellCallback.names;
}
SocialCalc.SpreadsheetControlNamesSetValue = function() {
var s = SocialCalc.GetSpreadsheetControlObject();
document.getElementById(s.idPrefix+"namesvalue").value = document.getElementById(s.idPrefix+"namesrangeproposal").value;
SocialCalc.KeyboardFocus();
}
SocialCalc.SpreadsheetControlNamesSave = function() {
var s = SocialCalc.GetSpreadsheetControlObject();
var name = document.getElementById(s.idPrefix+"namesname").value;
SocialCalc.SetTab(s.tabs[0].name); // return to first tab
SocialCalc.KeyboardFocus();
if (name != "") {
s.ExecuteCommand("name define "+name+" "+document.getElementById(s.idPrefix+"namesvalue").value+"\n"+
"name desc "+name+" "+document.getElementById(s.idPrefix+"namesdesc").value);
}
}
SocialCalc.SpreadsheetControlNamesDelete = function() {
var s = SocialCalc.GetSpreadsheetControlObject();
var name = document.getElementById(s.idPrefix+"namesname").value;
SocialCalc.SetTab(s.tabs[0].name); // return to first tab
SocialCalc.KeyboardFocus();
if (name != "") {
s.ExecuteCommand("name delete "+name);
// document.getElementById(s.idPrefix+"namesname").value = "";
// document.getElementById(s.idPrefix+"namesvalue").value = "";
// document.getElementById(s.idPrefix+"namesdesc").value = "";
// SocialCalc.SpreadsheetControlNamesFillNameList();
}
SocialCalc.KeyboardFocus();
}
// Clipboard
SocialCalc.SpreadsheetControlClipboardOnclick = function(s, t) {
var s = SocialCalc.GetSpreadsheetControlObject();
clipele = document.getElementById(s.idPrefix+"clipboardtext");
document.getElementById(s.idPrefix+"clipboardformat-tab").checked = true;
clipele.value = SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard, "tab");
return;
}
SocialCalc.SpreadsheetControlClipboardFormat = function(which) {
var s = SocialCalc.GetSpreadsheetControlObject();
clipele = document.getElementById(s.idPrefix+"clipboardtext");
clipele.value = SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard, which);
}
SocialCalc.SpreadsheetControlClipboardLoad = function() {
var s = SocialCalc.GetSpreadsheetControlObject();
var savetype = "tab";
SocialCalc.SetTab(s.tabs[0].name); // return to first tab
SocialCalc.KeyboardFocus();
if (document.getElementById(s.idPrefix+"clipboardformat-csv").checked) {
savetype = "csv";
}
else if (document.getElementById(s.idPrefix+"clipboardformat-scsave").checked) {
savetype = "scsave";
}
s.editor.EditorScheduleSheetCommands("loadclipboard "+
SocialCalc.encodeForSave(
SocialCalc.ConvertOtherFormatToSave(document.getElementById(s.idPrefix+"clipboardtext").value, savetype)), true, false);
}
SocialCalc.SpreadsheetControlClipboardClear = function() {
var s = SocialCalc.GetSpreadsheetControlObject();
var clipele = document.getElementById(s.idPrefix+"clipboardtext");
clipele.value = "";
s.editor.EditorScheduleSheetCommands("clearclipboard", true, false);
clipele.focus();
}
SocialCalc.SpreadsheetControlClipboardExport = function() {
var s = SocialCalc.GetSpreadsheetControlObject();
if (s.ExportCallback) {
s.ExportCallback(s);
}
SocialCalc.SetTab(s.tabs[0].name); // return to first tab
SocialCalc.KeyboardFocus();
}
// Settings
SocialCalc.SpreadsheetControlSettingsSwitch = function(target) {
SocialCalc.SettingControlReset();
var s = SocialCalc.GetSpreadsheetControlObject();
var sheettable = document.getElementById(s.idPrefix+"sheetsettingstable");
var celltable = document.getElementById(s.idPrefix+"cellsettingstable");
var sheettoolbar = document.getElementById(s.idPrefix+"sheetsettingstoolbar");
var celltoolbar = document.getElementById(s.idPrefix+"cellsettingstoolbar");
if (target=="sheet") {
sheettable.style.display = "block";
celltable.style.display = "none";
sheettoolbar.style.display = "block";
celltoolbar.style.display = "none";
SocialCalc.SettingsControlSetCurrentPanel(s.views.settings.values.sheetspanel);
}
else {
sheettable.style.display = "none";
celltable.style.display = "block";
sheettoolbar.style.display = "none";
celltoolbar.style.display = "block";
SocialCalc.SettingsControlSetCurrentPanel(s.views.settings.values.cellspanel);
}
}
SocialCalc.SettingsControlSave = function(target) {
var range, cmdstr;
var s = SocialCalc.GetSpreadsheetControlObject();
var sc = SocialCalc.SettingsControls;
var panelobj = sc.CurrentPanel;
var attribs = SocialCalc.SettingsControlUnloadPanel(panelobj);
SocialCalc.SetTab(s.tabs[0].name); // return to first tab
SocialCalc.KeyboardFocus();
if (target=="sheet") {
cmdstr = s.sheet.DecodeSheetAttributes(attribs);
}
else if (target=="cell") {
if (s.editor.range.hasrange) {
range = SocialCalc.crToCoord(s.editor.range.left, s.editor.range.top) + ":" +
SocialCalc.crToCoord(s.editor.range.right, s.editor.range.bottom);
}
cmdstr = s.sheet.DecodeCellAttributes(s.editor.ecell.coord, attribs, range);
}
else { // Cancel
}
if (cmdstr) {
( run in 0.665 second using v1.01-cache-2.11-cpan-2398b32b56e )