mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-26 07:44:56 +01:00
Fix zoom.
This commit is contained in:
parent
046789bb6a
commit
b9ff7f9c03
@ -1,130 +1,118 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
core.Monitor = function(fadeElement, logContentElem)
|
core.Monitor = new Class({
|
||||||
{
|
initialize : function(fadeElement, logContentElem) {
|
||||||
$assert(fadeElement, "fadeElement can not be null");
|
$assert(fadeElement, "fadeElement can not be null");
|
||||||
$assert(logContentElem, "logContentElem can not be null");
|
$assert(logContentElem, "logContentElem can not be null");
|
||||||
|
|
||||||
this.pendingMessages = [];
|
this.pendingMessages = [];
|
||||||
this.inProgress = false;
|
this.inProgress = false;
|
||||||
this._container = fadeElement;
|
this._container = fadeElement;
|
||||||
this._currentMessage = null;
|
this._currentMessage = null;
|
||||||
this._logContentElem = logContentElem;
|
this._logContentElem = logContentElem;
|
||||||
|
|
||||||
this._fxOpacity = fadeElement.effect('opacity', { duration: 6000 });
|
this._fxOpacity = fadeElement.effect('opacity', { duration: 6000 });
|
||||||
|
|
||||||
};
|
},
|
||||||
|
|
||||||
core.Monitor.prototype._logMessage = function(msg, msgKind)
|
_logMessage : function(msg, msgKind) {
|
||||||
{
|
this._fxOpacity.clearTimer();
|
||||||
this._fxOpacity.clearTimer();
|
if (msgKind == core.Monitor.MsgKind.ERROR) {
|
||||||
if (msgKind == core.Monitor.MsgKind.ERROR)
|
msg = "<div id='small_error_icon'>" + msg + "</div>";
|
||||||
{
|
}
|
||||||
msg = "<div id='small_error_icon'>" + msg + "</div>";
|
this._currentMessage = msg;
|
||||||
}
|
this._fxOpacity.start(1, 0);
|
||||||
this._currentMessage = msg;
|
this._logContentElem.innerHTML = msg;
|
||||||
this._fxOpacity.start(1, 0);
|
|
||||||
this._logContentElem.innerHTML = msg;
|
|
||||||
|
|
||||||
};
|
},
|
||||||
|
|
||||||
core.Monitor.prototype.logError = function(userMsg)
|
logError : function(userMsg) {
|
||||||
{
|
this.logMessage(userMsg, core.Monitor.MsgKind.ERROR);
|
||||||
this.logMessage(userMsg, core.Monitor.MsgKind.ERROR);
|
console.log(userMsg);
|
||||||
};
|
},
|
||||||
|
|
||||||
core.Monitor.prototype.logFatal = function(userMsg)
|
logFatal : function(userMsg) {
|
||||||
{
|
this.logMessage(userMsg, core.Monitor.MsgKind.FATAL);
|
||||||
this.logMessage(userMsg, core.Monitor.MsgKind.FATAL);
|
},
|
||||||
};
|
|
||||||
|
|
||||||
core.Monitor.prototype.logMessage = function(msg, msgKind)
|
logMessage : function(msg, msgKind) {
|
||||||
{
|
if (!msgKind) {
|
||||||
if (!msgKind)
|
msgKind = core.Monitor.MsgKind.INFO;
|
||||||
{
|
}
|
||||||
msgKind = core.Monitor.MsgKind.INFO;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (msgKind == core.Monitor.MsgKind.FATAL)
|
if (msgKind == core.Monitor.MsgKind.FATAL) {
|
||||||
{
|
// In this case, a modal dialog must be shown... No recovery is possible.
|
||||||
// In this case, a modal dialog must be shown... No recovery is possible.
|
new Windoo.Alert(msg,
|
||||||
new Windoo.Alert(msg,
|
|
||||||
{
|
|
||||||
'window': { theme:Windoo.Themes.aero,
|
|
||||||
title:"Outch!!. An unexpected error.",
|
|
||||||
'onClose':function() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
var messages = this.pendingMessages;
|
|
||||||
var monitor = this;
|
|
||||||
|
|
||||||
if (!this.executer)
|
|
||||||
{
|
|
||||||
// Log current message ...
|
|
||||||
monitor._logMessage(msg, msgKind);
|
|
||||||
|
|
||||||
// Start worker thread ...
|
|
||||||
var disptacher = function()
|
|
||||||
{
|
|
||||||
if (messages.length > 0)
|
|
||||||
{
|
{
|
||||||
var msgToDisplay = messages.shift();
|
'window': { theme:Windoo.Themes.aero,
|
||||||
monitor._logMessage(msgToDisplay);
|
title:"Outch!!. An unexpected error.",
|
||||||
}
|
'onClose':function() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
var messages = this.pendingMessages;
|
||||||
|
var monitor = this;
|
||||||
|
|
||||||
// Stop thread?
|
if (!this.executer) {
|
||||||
if (messages.length == 0)
|
// Log current message ...
|
||||||
{
|
monitor._logMessage(msg, msgKind);
|
||||||
$clear(monitor.executer);
|
|
||||||
monitor.executer = null;
|
// Start worker thread ...
|
||||||
monitor._fxOpacity.hide();
|
var disptacher = function() {
|
||||||
this._currentMessage = null;
|
if (messages.length > 0) {
|
||||||
|
var msgToDisplay = messages.shift();
|
||||||
|
monitor._logMessage(msgToDisplay);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stop thread?
|
||||||
|
if (messages.length == 0) {
|
||||||
|
$clear(monitor.executer);
|
||||||
|
monitor.executer = null;
|
||||||
|
monitor._fxOpacity.hide();
|
||||||
|
this._currentMessage = null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.executer = disptacher.periodical(600);
|
||||||
|
} else {
|
||||||
|
if (this._currentMessage != msg) {
|
||||||
|
messages.push(msg);
|
||||||
}
|
}
|
||||||
};
|
|
||||||
this.executer = disptacher.periodical(600);
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
if (this._currentMessage != msg)
|
|
||||||
{
|
|
||||||
messages.push(msg);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|
||||||
core.Monitor.setInstance = function(monitor)
|
core.Monitor.setInstance = function(monitor) {
|
||||||
{
|
|
||||||
this.monitor = monitor;
|
this.monitor = monitor;
|
||||||
};
|
};
|
||||||
|
|
||||||
core.Monitor.getInstance = function()
|
core.Monitor.getInstance = function() {
|
||||||
{
|
|
||||||
var result = this.monitor;
|
var result = this.monitor;
|
||||||
if (result == null)
|
if (result == null) {
|
||||||
{
|
|
||||||
result = {
|
result = {
|
||||||
logError: function() {
|
logError: function(msg) {
|
||||||
|
console.log(msg)
|
||||||
},
|
},
|
||||||
logMessage: function() {
|
|
||||||
|
logMessage: function(msg) {
|
||||||
|
console.log(msg)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -30,15 +30,11 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
this._fireEvent("modelUpdate", event);
|
this._fireEvent("modelUpdate", event);
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
mindplot.ActionDispatcher.setInstance(this._actionDispatcher);
|
mindplot.ActionDispatcher.setInstance(this._actionDispatcher);
|
||||||
|
|
||||||
// Initial Zoom
|
|
||||||
this._zoom = profile.zoom;
|
|
||||||
|
|
||||||
this._model = new mindplot.DesignerModel(profile);
|
this._model = new mindplot.DesignerModel(profile);
|
||||||
|
|
||||||
// Init Screen manager..
|
// Init Screen manager..
|
||||||
var screenManager = new mindplot.ScreenManager(profile.width, profile.height, divElement);
|
var screenManager = new mindplot.ScreenManager(profile.width, profile.height, divElement);
|
||||||
this._workspace = new mindplot.Workspace(profile, screenManager, this._zoom);
|
this._workspace = new mindplot.Workspace(profile, screenManager, this._model.getZoom());
|
||||||
this._readOnly = profile.readOnly ? true : false;
|
this._readOnly = profile.readOnly ? true : false;
|
||||||
|
|
||||||
// Init layout managers ...
|
// Init layout managers ...
|
||||||
@ -198,22 +194,6 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
zoomOut : function(factor) {
|
|
||||||
if (!factor)
|
|
||||||
factor = 1.2;
|
|
||||||
|
|
||||||
var model = this.getModel();
|
|
||||||
var scale = model.getZoom() * factor;
|
|
||||||
if (scale <= 4) {
|
|
||||||
model.setZoom(scale);
|
|
||||||
this._workspace.setZoom(this._zoom);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
core.Monitor.getInstance().logMessage('Sorry, no more zoom can be applied. \n Why do you need more?');
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
selectAll : function() {
|
selectAll : function() {
|
||||||
var model = this.getModel();
|
var model = this.getModel();
|
||||||
var objects = model.getObjects();
|
var objects = model.getObjects();
|
||||||
@ -229,15 +209,33 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
zoomOut : function(factor) {
|
||||||
|
if (!factor)
|
||||||
|
factor = 1.2;
|
||||||
|
|
||||||
|
var model = this.getModel();
|
||||||
|
var scale = model.getZoom() * factor;
|
||||||
|
if (scale <= 1.9) {
|
||||||
|
model.setZoom(scale);
|
||||||
|
this._workspace.setZoom(scale);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
core.Monitor.getInstance().logMessage('Sorry, no more zoom can be applied. \n Why do you need more?');
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
zoomIn : function(factor) {
|
zoomIn : function(factor) {
|
||||||
if (!factor)
|
if (!factor)
|
||||||
factor = 1.2;
|
factor = 1.2;
|
||||||
|
|
||||||
var model = this.getModel();
|
var model = this.getModel();
|
||||||
var scale = model.getZoom() / factor;
|
var scale = model.getZoom() / factor;
|
||||||
|
|
||||||
if (scale >= 0.3) {
|
if (scale >= 0.3) {
|
||||||
model.setZoom(scale);
|
model.setZoom(scale);
|
||||||
this._workspace.setZoom(this._zoom);
|
this._workspace.setZoom(scale);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
core.Monitor.getInstance().logMessage('Sorry, no more zoom can be applied. \n Why do you need more?');
|
core.Monitor.getInstance().logMessage('Sorry, no more zoom can be applied. \n Why do you need more?');
|
||||||
@ -383,7 +381,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var persistantManager = mindplot.PersistanceManager;
|
var persistantManager = mindplot.PersistanceManager;
|
||||||
var mindmap = this._mindmap;
|
var mindmap = this._mindmap;
|
||||||
|
|
||||||
var properties = {zoom:this._zoom, layoutManager:this._layoutManager.getClassName()};
|
var properties = {zoom:this.getModel().getZoom(), layoutManager:this._layoutManager.getClassName()};
|
||||||
persistantManager.save(mindmap, properties, onSavedHandler, saveHistory);
|
persistantManager.save(mindmap, properties, onSavedHandler, saveHistory);
|
||||||
this._fireEvent("save", {type:saveHistory});
|
this._fireEvent("save", {type:saveHistory});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user