Updated the resizing functionallity of the preview panel. Now it can be used in any other position in webapp
This commit is contained in:
parent
466b83f398
commit
19e503842b
@ -29,7 +29,9 @@ Zarafa.plugins.fileviewer.ViewerPanel = Ext.extend(Ext.Panel, {
|
|||||||
title: '',
|
title: '',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @cfg {Boolean} autoResize This flag specifies if the panel gets automatically resized if the window size has changed.
|
* @cfg {Boolean|Ext.Component} autoResize This flag specifies if the panel gets automatically resized if the window size has changed.
|
||||||
|
* If it is set to true the panel will listen on the Window update event. Otherwise it will listen to the component
|
||||||
|
* resize event.
|
||||||
* Defaults to false.
|
* Defaults to false.
|
||||||
*/
|
*/
|
||||||
autoResize: false,
|
autoResize: false,
|
||||||
@ -57,6 +59,14 @@ Zarafa.plugins.fileviewer.ViewerPanel = Ext.extend(Ext.Panel, {
|
|||||||
|
|
||||||
if (Ext.isDefined(config.autoResize)) {
|
if (Ext.isDefined(config.autoResize)) {
|
||||||
this.autoResize = config.autoResize;
|
this.autoResize = config.autoResize;
|
||||||
|
} else {
|
||||||
|
this.autoResize = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Ext.isDefined(config.defaultScale)) {
|
||||||
|
this.defaultScale = config.defaultScale;
|
||||||
|
} else {
|
||||||
|
this.defaultScale = 0.8;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ext.applyIf(config, {
|
Ext.applyIf(config, {
|
||||||
@ -90,8 +100,16 @@ Zarafa.plugins.fileviewer.ViewerPanel = Ext.extend(Ext.Panel, {
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
initEvents: function () {
|
initEvents: function () {
|
||||||
if (this.autoResize) {
|
if (this.autoResize === true) {
|
||||||
Ext.EventManager.onWindowResize(this.resizePanel, this);
|
Ext.EventManager.onWindowResize(this.resizePanel, this);
|
||||||
|
} else if(this.autoResize !== false) {
|
||||||
|
this.autoResize.on('resize', this.resizePanel, this);
|
||||||
|
|
||||||
|
// save old autoscroll value and disable autoscrolling
|
||||||
|
if(Ext.isDefined(this.autoResize.autoScroll)) {
|
||||||
|
this.autoResize.initialAutoScrollValue = this.autoResize.autoScroll;
|
||||||
|
this.autoResize.setAutoScroll(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -100,19 +118,35 @@ Zarafa.plugins.fileviewer.ViewerPanel = Ext.extend(Ext.Panel, {
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
onDestroy: function () {
|
onDestroy: function () {
|
||||||
if (this.autoResize) {
|
if (this.autoResize === true) {
|
||||||
Ext.EventManager.removeResizeListener(this.resizePanel, this);
|
Ext.EventManager.removeResizeListener(this.resizePanel, this);
|
||||||
|
} else if(this.autoResize !== false) {
|
||||||
|
this.autoResize.un('resize', this.resizePanel, this);
|
||||||
|
|
||||||
|
// re-enable autoscrolling if it was enabled before
|
||||||
|
if(Ext.isDefined(this.autoResize.autoScroll)) {
|
||||||
|
this.autoResize.setAutoScroll(this.autoResize.initialAutoScrollValue);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Zarafa.plugins.fileviewer.ViewerPanel.superclass.onDestroy.call(this, arguments);
|
Zarafa.plugins.fileviewer.ViewerPanel.superclass.onDestroy.call(this, arguments);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This functions resizes the panel to the given width. It will be called on the resize event if autoResize is enabled.
|
||||||
*
|
*
|
||||||
* @param {Number} width The window width.
|
* @param {Number} width The window width.
|
||||||
* @param {Number} height The window height.
|
* @param {Number} height The window height.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
resizePanel: function (width, height) {
|
resizePanel: function (width, height) {
|
||||||
|
// the element event will pass more arguments
|
||||||
|
// than the window resize event
|
||||||
|
if(arguments.length > 2) {
|
||||||
|
var autoResizeElement = arguments[0];
|
||||||
|
width = autoResizeElement.getInnerWidth();
|
||||||
|
height = autoResizeElement.getInnerHeight();
|
||||||
|
}
|
||||||
this.setWidth(width * this.defaultScale);
|
this.setWidth(width * this.defaultScale);
|
||||||
this.setHeight(height * this.defaultScale);
|
this.setHeight(height * this.defaultScale);
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!DOCTYPE plugin SYSTEM "manifest.dtd">
|
<!DOCTYPE plugin SYSTEM "manifest.dtd">
|
||||||
<plugin version="2">
|
<plugin version="2">
|
||||||
<info>
|
<info>
|
||||||
<version>1.0</version>
|
<version>1.0.1</version>
|
||||||
<name>fileviewer</name>
|
<name>fileviewer</name>
|
||||||
<title>PDF and ODF attachments preview</title>
|
<title>PDF and ODF attachments preview</title>
|
||||||
<author>Christoph Haas</author>
|
<author>Christoph Haas</author>
|
||||||
|
Loading…
Reference in New Issue
Block a user