window.js ( File view )
- By 2010-08-11
- View(s):5
- Download(s):0
- Point(s): 1
// Copyright (c) 2006 S茅bastien Gruhier (http://xilinus.com, http://itseb.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // // VERSION 0.96.2 var Window = Class.create(); Window.prototype = { // Constructor // Available parameters : className, title, minWidth, minHeight, maxWidth, maxHeight, width, height, top, left, bottom, right, resizable, zIndex, opacity, // hideEffect, showEffect, showEffectOptions, hideEffectOptions, effectOptions, url, draggable, closable, minimizable, maximizable, parent, onload initialize: function(id) { if ($(id)) alert("Window " + id + " is already register is the DOM!!, be sure to use setDestroyOnClose()") this.hasEffectLib = String.prototype.parseColor != null; this.options = Object.extend({ className: "dialog", minWidth: 100, minHeight: 20, resizable: true, closable: true, minimizable: true, maximizable: true, draggable: true, userData: null, showEffect: (this.hasEffectLib ? Effect.Appear : Element.show), hideEffect: (this.hasEffectLib ? Effect.Fade : Element.hide), showEffectOptions: { }, hideEffectOptions: { }, effectOptions: null, parent: document.getElementsByTagName("body").item(0), title: " ", url: null, onload: Prototype.emptyFunction, width: 200, height: 300, opacity: 1 }, arguments[1] || { }); if (this.options.effectOptions) { Object.extend(this.options.hideEffectOptions, this.options.effectOptions); Object.extend(this.options.showEffectOptions, this.options.effectOptions); } if (this.options.hideEffect == Element.hide) this.options.hideEffect = function(){ Element.hide(this.element); if (this.destroyOnClose) this.destroy(); }.bind(this) this.element = this._createWindow(id); // Bind event listener this.eventMouseDown = this._initDrag.bindAsEventListener(this); this.eventMouseUp = this._endDrag.bindAsEventListener(this); this.eventMouseMove = this._updateDrag.bindAsEventListener(this); this.eventKeyPress = this._keyPress.bindAsEventListener(this); this.eventOnLoad = this._getWindowBorderSize.bindAsEventListener(this); this.eventMouseDownContent = this.toFront.bindAsEventListener(this); this.eventResize = this._recenter.bindAsEventListener(this); this.topbar = $(this.element.id + "_top"); this.bottombar = $(this.element.id + "_bottom"); this.content = $(this.element.id + "_content"); Event.observe(this.topbar, "mousedown", this.eventMouseDown); Event.observe(this.bottombar, "mousedown", this.eventMouseDown); Event.observe(this.content, "mousedown", this.eventMouseDownContent); Event.observe(window, "load", this.eventOnLoad); Event.observe(window, "resize", this.eventResize); Event.observe(window, "scroll", this.eventResize); if (this.options.draggable) { this.bottombar.addClassName("bottom_draggable"); this.topbar.addClassName("top_draggable"); } if (this.options.resizable) { this.sizer = $(this.element.id + "_sizer"); Event.observe(this.sizer, "mousedown", this.eventMouseDown); } this.useLeft = null; this.useTop = null; if (arguments[1].left != null) { this.element.setStyle({ left: parseFloat(arguments[1].left) + 'px' }); this.useLeft = true; } if (arguments[1].right != null) { this.element.setStyle({ right: parseFloat(arguments[1].right) + 'px' }); this.useLeft = false; } if (this.useLeft == null) { this.element.setStyle({ left: "0px" }); this.useLeft = true; } if (arguments[1].top != null) { this.element.setStyle({ top: parseFloat(arguments[1].top) + 'px' }); this.useTop = true; } if (arguments[1].bottom != null) { this.element.setStyle({ bottom: parseFloat(arguments[1].bottom) + 'px' }); this.useTop = false; } if (this.useTop == null) { this.element.setStyle({ top: "0px" }); this.useTop = true; } this.storedLocation = null; this.setOpacity(this.options.opacity); if (this.options.zIndex) this.setZIndex(this.options.zIndex) this.destroyOnClose = false; this._getWindowBorderSize(); this.width = this.options.width; this.height = this.options.height; if (this.width && this.height) this.setSize(this.options.width, this.options.height); this.setTitle(this.options.title) Windows.register(this); }, // Destructor destroy: function() { Windows.notify("onDestroy", this); Event.stopObserving(this.topbar, "mousedown", this.eventMouseDown); Event.stopObserving(this.bottombar, "mousedown", this.eventMouseDown); Event.stopObserving(this.content, "mousedown", this.eventMouseDownContent); Event.stopObserving(window, "load", this.eventOnLoad); Event.stopObserving(window, "resize", this.eventResize); Event.stopObserving(window, "scroll", this.eventResize); Event.stopObserving(this.content, "load", this.options.onload); if (this.sizer) Event.stopObserving(this.sizer, "mousedown", this.eventMouseDown); if (this.options.url) this.content.src = null if(this.iefix) Element.remove(this.iefix); Element.remove(this.element); Windows.unregister(this); }, // Sets window deleagte, should have functions: "canClose(window)" setDelegate: function(delegate) { this.delegate = delegate }, // Gets current window delegate getDelegate: function() { return this.delegate; }, // Gets window content getContent: function () { return this.content; }, // Sets the content with an element id setContent: function(id, autoresize, autoposition) { var d = null; var p = null; if (autoresize) d = Element.getDimensions(id); if (autoposition) p = Position.cumulativeOffset($(id)); var content = this.getContent() content.appendChild($(id)); $(id).show(); if (autoresize) this.setSize(d.width, d.height); if (autoposition) this.setLocation(p[1] - this.heightN, p[0] - this.widthW); }, setAjaxContent: function(url, options, showCentered, showModal) { this.showFunction = showCentered ? "showCenter" : "show"; this.showModal = showModal || false; if (options == null) options = { } this.onComplete = options.onComplete; options.onComplete = this._setAjaxContent.bind(this); new Ajax.Request(url, options); }, _setAjaxContent: function(originalRequest) { this.getContent().innerHTML = originalRequest.responseText; if (this.onComplete) this.onComplete(originalRequest); this[this.showFunction](this.showModal) }, // Stores position/size in a cookie, by default named with window id setCookie: function(name, expires, path, domain, secure) { name = name || this.element.id; this.cookie = [name, expires, path, domain, secure]; // Get cookie var value = WindowUtilities.getCookie(name) // If exists if (value) { var values = value.split(','); var x = values[0].split(':'); var y = values[1].split(':'); var w = parseFloat(values[2]), h = parseFloat(values[3]); var mini = values[4]; var maxi = values[5]; this.setSize(w, h); if (mini == "true") this.doMinimize = true; // Minimize will be done at onload window event else if (maxi == "true") this.doMaximize = true; // Maximize will be done at onload window event this.useLeft = x[0] == "l"; this.useTop = y[0] == "t"; this.element.setStyle(this.useLeft ? { left: x[1] } : { right: x[1] }); this.element.setStyle(this.useTop ? { top: y[1] } : { bottom: y[1] }); } }, // Gets window ID getId: function() { return this.element.id; }, // Detroys itself when closing setDestroyOnClose: function() { Object.extend(this.options.hideEffectOptions, { afterFinish: this.destroy.bind(this) }); this.destroyOnClose = true; }, // initDrag event _initDrag: function(event) { // Get pointer X,Y this.pointer = [Event.pointerX(event), Event.pointerY(event)]; // Resize if (Event.element(event) == this.sizer) { this.doResize = true; this.widthOrg = this.width; this.heightOrg = this.height; this.bottomOrg = parseFloat(this.element.getStyle('bottom')); this.rightOrg = parseFloat(this.element.getStyle('right')); Windows.notify("onStartResize", this); } else { this.doResize = false; // Check if click on close button, var closeButton = $(this.getId() + '_close'); if (closeButton && Position.within(closeButton, this.pointer[0], this.pointer[1])) return; this.toFront(); if (! this.options.draggable) return; Windows.notify("onStartMove", this); } // Register global event to capture mou ... ... (Not finished, please download and read the complete file)
...
Expand> <Close
Sponsored links
File list
Tips: You can preview the content of files by clicking file names^_^Name | Size | Date |
---|---|---|
auto_suggest.html | 1.09 kB | 03-12-07 00:11 |
crud.html | 1.68 kB | 03-12-07 00:11 |
0 | 3.00 B | |
2col_leftNav.css | 6.28 kB | 03-12-07 00:11 |
autosuggest.css | 335.00 B | 03-12-07 00:11 |
debug.png | 399.00 B | 03-12-07 00:11 |
error.png | 289.00 B | 03-12-07 00:11 |
fatal.png | 309.00 B | 03-12-07 00:11 |
info.png | 271.00 B | 03-12-07 00:11 |
logger.css | 1.88 kB | 03-12-07 00:11 |
magnet.png | 430.00 B | 03-12-07 00:11 |
site.css | 1.43 kB | 03-12-07 00:11 |
warn.png | 257.00 B | 03-12-07 00:11 |
0 | 3.00 B | |
auto_suggest.html.txt | 1.09 kB | 03-12-07 00:11 |
auto_suggest.js.txt | 669.00 B | 03-12-07 00:11 |
CountryList.java.txt | 3.00 kB | 03-12-07 00:11 |
crud.html.txt | 1.68 kB | 03-12-07 00:11 |
crud.js.txt | 1.40 kB | 03-12-07 00:11 |
crud.jst.txt | 755.00 B | 03-12-07 00:11 |
index.html.txt | 3.24 kB | 03-12-07 00:11 |
jst_demo.html.txt | 1.68 kB | 03-12-07 00:11 |
LabelValueBean.java.txt | 4.72 kB | 03-12-07 00:11 |
mvcPic.html.txt | 1.05 kB | 03-12-07 00:11 |
rdf.jst.txt | 284.00 B | 03-12-07 00:11 |
rss.jst.txt | 272.00 B | 03-12-07 00:11 |
rss_reader.html.txt | 1.20 kB | 03-12-07 00:11 |
rss_reader.js.txt | 642.00 B | 03-12-07 00:11 |
services.properties.txt | 168.00 B | 03-12-07 00:11 |
services.xml.txt | 435.00 B | 03-12-07 00:11 |
Test.java.txt | 17.36 kB | 03-12-07 00:11 |
TestBean.java.txt | 1.41 kB | 03-12-07 00:11 |
unit_test.html.txt | 1.03 kB | 03-12-07 00:11 |
unit_test.js.txt | 15.89 kB | 03-12-07 00:11 |
unit_test.jst.txt | 493.00 B | 03-12-07 00:11 |
unit_test_js.jst.txt | 765.00 B | 03-12-07 00:11 |
User.java.txt | 2.49 kB | 03-12-07 00:11 |
UserManager.java.txt | 2.04 kB | 03-12-07 00:11 |
web.xml.txt | 1.58 kB | 03-12-07 00:11 |
web.xml_no_spring.txt | 1.58 kB | 03-12-07 00:11 |
0 | 3.00 B | |
check.gif | 604.00 B | 03-12-07 00:11 |
debug.png | 399.00 B | 03-12-07 00:11 |
error.gif | 633.00 B | 03-12-07 00:11 |
error.png | 289.00 B | 03-12-07 00:11 |
fatal.png | 309.00 B | 03-12-07 00:11 |
info.png | 271.00 B | 03-12-07 00:11 |
magnet.png | 430.00 B | 03-12-07 00:11 |
swato_01.png | 5.22 kB | 03-12-07 00:11 |
swato_02.png | 13.94 kB | 03-12-07 00:11 |
swato_04.png | 7.94 kB | 03-12-07 00:11 |
swato_05.png | 14.42 kB | 03-12-07 00:11 |
swato_Layer-5-over.png | 27.12 kB | 03-12-07 00:11 |
swato_Layer_5.png | 28.45 kB | 03-12-07 00:11 |
wait.gif | 1.52 kB | 03-12-07 00:11 |
warn.png | 257.00 B | 03-12-07 00:11 |
index.html | 3.70 kB | 03-12-07 00:11 |
0 | 3.00 B | |
effects.js | 33.07 kB | 03-12-07 00:11 |
jkl-floating.js | 7.22 kB | 03-12-07 00:11 |
jkl-parsexml.js | 14.11 kB | 03-12-07 00:11 |
jkl-resizable.js | 5.05 kB | 03-12-07 00:11 |
json.js | 10.34 kB | 03-12-07 00:11 |
logger.js | 6.77 kB | 03-12-07 00:11 |
pop-it-menu.js | 4.44 kB | 03-12-07 00:11 |
prototype.js | 55.81 kB | 03-12-07 00:11 |
swato-engine.js | 5.06 kB | 03-12-07 00:11 |
swato-form.js | 3.00 kB | 03-12-07 00:11 |
swato-jst.js | 3.91 kB | 03-12-07 00:11 |
swato-select.js | 1.18 kB | 03-12-07 00:11 |
swato-suggest.js | 11.62 kB | 03-12-07 00:11 |
swato.js | 939.00 B | 03-12-07 00:11 |
window.js | 40.77 kB | 03-12-07 00:11 |
0 | 3.00 B | |
crud.jst | 744.00 B | 03-12-07 00:11 |
rdf.jst | 284.00 B | 03-12-07 00:11 |
rss.jst | 272.00 B | 03-12-07 00:11 |
unit_test.jst | 493.00 B | 03-12-07 00:11 |
unit_test_js.jst | 765.00 B | 03-12-07 00:11 |
jst_demo.html | 1.68 kB | 03-12-07 00:11 |
0 | 3.00 B | |
MANIFEST.MF | 106.00 B | 03-12-07 00:11 |
mvcPic.html | 1.05 kB | 03-12-07 00:11 |
rss_reader.html | 1.20 kB | 03-12-07 00:11 |
0 | 3.00 B | |
auto_suggest.js | 665.00 B | 03-12-07 00:11 |
crud.js | 1.41 kB | 03-12-07 00:11 |
portal.js | 4.66 kB | 03-12-07 00:11 |
rss_reader.js | 642.00 B | 03-12-07 00:11 |
unit_test.js | 15.89 kB | 03-12-07 00:11 |
swato.jar | 56.50 kB | 08-04-08 10:57 |
test.html | 18.36 kB | 03-12-07 00:11 |
unit_test.html | 1.03 kB | 03-12-07 00:11 |
0 | 3.00 B | |
0 | 3.00 B | |
0 | 3.00 B | |
0 | 3.00 B | |
JSONArray.class | 8.16 kB | 03-12-07 00:11 |
JSONObject$1.class | 199.00 B | 03-12-07 00:11 |
JSONObject$Null.class | 860.00 B | 03-12-07 00:11 |
JSONObject.class | 10.41 kB | 03-12-07 00:11 |
JSONTokener.class | 5.17 kB | 03-12-07 00:11 |
0 | 3.00 B | |
0 | 3.00 B | |
0 | 3.00 B | |
CountryList.class | 2.52 kB | 03-12-07 00:11 |
LabelValueBean$1.class | 825.00 B | 03-12-07 00:11 |
LabelValueBean.class | 2.15 kB | 03-12-07 00:11 |
LabelValueBeanTest.class | 1.88 kB | 03-12-07 00:11 |
ObjA.class | 571.00 B | 03-12-07 00:11 |
ObjB.class | 571.00 B | 03-12-07 00:11 |
Test$1.class | 565.00 B | 03-12-07 00:11 |
Test$2.class | 714.00 B | 03-12-07 00:11 |
Test$Foo.class | 231.00 B | 03-12-07 00:11 |
Test$InnerFoo.class | 643.00 B | 03-12-07 00:11 |
Test$InnerSubTestBean.class | 520.00 B | 03-12-07 00:11 |
Test$StaticInnerSubTestBean.class | 437.00 B | 03-12-07 00:11 |
Test$TestBeanInvocationHandler.class | 1.56 kB | 03-12-07 00:11 |
Test.class | 13.72 kB | 03-12-07 00:11 |
TestBean.class | 1.27 kB | 03-12-07 00:11 |
User.class | 1.65 kB | 03-12-07 00:11 |
UserManager.class | 2.27 kB | 03-12-07 00:11 |
JSONConverter.class | 8.00 kB | 03-12-07 00:11 |
JSONConverterTest$1.class | 240.00 B | 03-12-07 00:11 |
JSONConverterTest$TestBean.class | 1.73 kB | 03-12-07 00:11 |
JSONConverterTest.class | 6.13 kB | 03-12-07 00:11 |
0 | 3.00 B | |
JSONRequest.class | 2.96 kB | 03-12-07 00:11 |
JSONResponse.class | 2.41 kB | 03-12-07 00:11 |
JSONServlet.class | 4.00 kB | 03-12-07 00:11 |
PropsFileContext.class | 3.48 kB | 03-12-07 00:11 |
RequestAware.class | 198.00 B | 03-12-07 00:11 |
RequestParameterHolder.class | 2.36 kB | 03-12-07 00:11 |
RequestParameterRecorder.class | 2.17 kB | 03-12-07 00:11 |
RequestRedirector.class | 2.78 kB | 03-12-07 00:11 |
ServiceContext.class | 243.00 B | 03-12-07 00:11 |
SessionAware.class | 191.00 B | 03-12-07 00:11 |
SpringContext.class | 1.39 kB | 03-12-07 00:11 |
SwatoActionProxy.class | 4.86 kB | 03-12-07 00:11 |
SwatoVisible.class | 396.00 B | 03-12-07 00:11 |
0 | 3.00 B | |
Pipe.class | 2.02 kB | 03-12-07 00:11 |
Utils.class | 632.00 B | 03-12-07 00:11 |
services.properties | 168.00 B | 03-12-07 00:11 |
services.xml | 881.00 B | 03-12-07 00:11 |
0 | 3.00 B | |
commons-httpclient-2.0.2.jar | 220.09 kB | 03-12-07 00:11 |
commons-logging.jar | 37.12 kB | 03-12-07 00:11 |
spring-beans.jar | 213.99 kB | 03-12-07 00:11 |
spring-context.jar | 100.22 kB | 03-12-07 00:11 |
spring-core.jar | 71.98 kB | 03-12-07 00:11 |
web.xml | 1.58 kB | 03-12-07 00:11 |
Sponsored links