Hello stackOverflow Community
Мне нужно показать диалоговое окно переопределения при двойном щелчке и настроить пользовательские параметры.
Проблема в том, что когда я не устанавливаю пользовательские параметры, диалоговое окно переопределения этоотображается успешно при двойном щелчке, но мне нужно показать Geogebra с пользовательскими параметрами.
Escenario работает без пользовательских параметров
HTML
<div id="ggb-element"></div>
JavaScript
var width = window.innerWidth;
var height = window.innerHeight;
var ggbApp = new GGBApplet({
"id": "ggbGraph",
"appName": "graphing",
"width": width,
"height": height,
"showToolBar": true,
"showAlgebraInput": true,
"showMenuBar": true,
"appletOnLoad": afterLoad,
}, true);
window.addEventListener("load", function () {
ggbApp.inject('ggb-element');
});
function afterLoad() {
let app = window['ggbGraph'];
let points = [{
x: 0,
y: 0
}, {
x: 1,
y: 1
}, {
x: 2,
y: 4
}, {
x: 4,
y: 16
}];
points.forEach(function(p){
app.evalCommandGetLabels(`(${p.x},${p.y})`)[0];
});
};
Сценарий работы с пользовательскими параметрами
HTML
<div id="ggb-element"></div>
JavaScript
var width = window.innerWidth;
var height = window.innerHeight;
var ggbApp = new GGBApplet({
"id": "ggbGraph",
"perspective": "G",
"width": width,
"height": height,
"showToolBar": false,
"customToolBar": " ",
"showAlgebraInput": false,
"language": "en",
"showResetIcon": false,
"showLogging": false,
"showMenuBar": false,
"enableRightClick": false,
"preventFocus": false,
"errorDialogsActive": false,
"showToolBarHelp": false,
"enableLabelDrags": false,
"useBrowserForJS": true,
"appletOnLoad": afterLoad,
}, true);
window.addEventListener("load", function () {
ggbApp.inject('ggb-element');
});
function afterLoad() {
let app = window['ggbGraph'];
let points = [{
x: 0,
y: 0
}, {
x: 1,
y: 1
}, {
x: 2,
y: 4
}, {
x: 4,
y: 16
}];
points.forEach(function(p){
app.evalCommandGetLabels(`(${p.x},${p.y})`)[0];
});
};
ОТВЕТ
Для шоудиалоговое окно переопределения при двойном щелчке мыши и пользовательских настройках. Необходимо добавить параметр showMenuBar: false
и удалить ненужные кнопки с помощью JavaScript.
Рабочая демонстрация
HTML
<div id="ggb-element"></div>
JavaScript
var width = window.innerWidth;
var height = window.innerHeight;
var parameters = {
"id": "ggbGraph",
"perspective": "G",
"width": width,
"height": height,
"showToolBar": true,
"customToolBar": " 0 1 ",
"borderColor": null,
"showMenuBar": true,
"allowStyleBar": false,
"showAlgebraInput": true,
"enableLabelDrags": true,
"enableShiftDragZoom": true,
"capturingThreshold": null,
"showToolBarHelp": false,
"errorDialogsActive": true,
"showTutorialLink": false,
"showLogging": false,
"useBrowserForJS": true,
"appletOnLoad": afterLoad,
};
var ggbApp = new GGBApplet(parameters, true);
window.addEventListener("load", function () {
ggbApp.inject('ggb-element');
});
function afterLoad() {
let app = window['ggbGraph'];
removeMenuButtons();
preparePropertiesView();
app.setGridVisible(true);
app.enableShiftDragZoom(true);
let points = [{
x: 0,
y: 0
}, {
x: 1,
y: 1
}, {
x: 2,
y: 4
}, {
x: 4,
y: 16
}];
points.forEach(function(p){
app.evalCommandGetLabels(`(${p.x},${p.y})`)[0];
});
};
function removeMenuButtons(){
$('#ggb-element').find('.toolbarPanel').find('.rightButtonPanel').find('.button[tabindex="-1"]').remove();
$('#ggb-element').find('.gwt-SplitLayoutPanel').find('.TitleBarPanel').remove();
}
function preparePropertiesView(){
$('#ggb-element').find('.gwt-SplitLayoutPanel').find('.ggbdockpanelhack').find('.PropertiesViewW').find('.contentsPanel').css('width', '300px');
}