/*
* Copyright 2017 Anyware Services
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* This class is the simple query model.
* @private
*/
Ext.define('Ametys.plugins.queriesdirectory.model.QueryFormatting', {
extend: 'Ametys.plugins.queriesdirectory.model.AbstractQuery',
statics:
{
/**
* @property {String} [QUERY_TYPE="simple"] The type of query
*/
FORMATTING_TYPE: 'formatting'
},
/**
* @inheritdoc
*/
getTypeLabel: function ()
{
return "{{i18n PLUGINS_QUERIESDIRECTORY_UITOOL_QUERIES_TYPE_FORMATTING}}";
},
getTypeIconCls: function()
{
return 'ametysicon-paintbrush';
},
/**
* @inheritdoc
*/
open : function()
{
// Do nothing
},
/**
* @inheritdoc
*/
execute : function()
{
var content = Ext.JSON.decode(this.content);
var factoryId = content.toolId.split('$')[0];
var currentTool = Ametys.tool.ToolsManager.getFocusedTool();
if (factoryId != currentTool.getFactory().getId())
{
var msg = Ext.String.format("{{i18n PLUGINS_QUERIESDIRECTORY_UITOOL_APPLY_FORMATTING_ERROR_INCOMPATIBLETOOL}}", content.toolTitle ? '<b>' + content.toolTitle + '</b>' : '');
Ametys.Msg.show({
title: "{{i18n PLUGINS_QUERIESDIRECTORY_UITOOL_APPLY_FORMATTING_ERROR_TITLE}}",
msg: msg,
buttons: Ext.Msg.OK,
icon: Ext.Msg.WARNING
})
return;
}
Ametys.tool.Tool.prototype.setParams.apply(currentTool, [Ext.apply(currentTool.getParams(), {
formattingQueryId: this.queryId
})]); // avoid tool refreshing
if (currentTool.applyFormatting)
{
currentTool.applyFormatting(content.formatting);
}
}
});
Ametys.plugins.queriesdirectory.model.QueryFactory.registerQuery (Ametys.plugins.queriesdirectory.model.QueryFormatting.FORMATTING_TYPE, Ametys.plugins.queriesdirectory.model.QueryFormatting);