/* Start of the app, we require everything that is needed */ define(["sugar-web/activity/activity","activity/paint-activity","activity/paint-app","sugar-web/graphics/presencepalette","activity/palettes/color-palette","activity/palettes/stamp-palette","activity/palettes/text-palette","activity/palettes/drawings-palette","activity/palettes/filters-palette","activity/buttons/size-button","activity/buttons/clear-button","activity/buttons/undo-button","activity/buttons/redo-button","activity/modes/modes-pen","activity/modes/modes-eraser","activity/modes/modes-bucket","activity/modes/modes-text","activity/modes/modes-stamp","activity/modes/modes-copy","activity/modes/modes-paste","activity/collaboration","activity/buttons/insertimage-button"], function (activity,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21) { window.PaintApp = p2; PaintApp.libs.activity = activity; /* Fetching and storing of the palettes */ PaintApp.palettes.presencePalette = p3; PaintApp.palettes.colorPalette = p4; PaintApp.palettes.stampPalette = p5; PaintApp.palettes.textPalette = p6; PaintApp.palettes.drawingsPalette = p7; PaintApp.palettes.filtersPalette = p8; /* Fetching and storing of the buttons */ PaintApp.buttons.sizeButton = p9; PaintApp.buttons.clearButton = p10; PaintApp.buttons.undoButton = p11; PaintApp.buttons.redoButton = p12; PaintApp.buttons.insertImageButton = p21; /* Fetching and storing of the modes */ PaintApp.modes.Pen = p13; PaintApp.modes.Eraser = p14; PaintApp.modes.Bucket = p15; PaintApp.modes.Text = p16; PaintApp.modes.Stamp = p17; PaintApp.modes.Copy = p18; PaintApp.modes.Paste = p19; PaintApp.collaboration = p20; requirejs(['domReady!', 'sugar-web/datastore', 'paper-core', 'mustache', 'lzstring', 'humane'], function(doc, datastore, _paper, mustache, lzstring, humane) { /* Fetching and storing libraries */ PaintApp.libs.mustache = mustache; PaintApp.libs.humane = humane; PaintApp.libs.lzstring = lzstring; //Setup of the activity activity.setup(); /* Fetch and store UI elements */ initGui(); document.getElementById("stop-button").addEventListener('click', function(event) { var data = { width: PaintApp.elements.canvas.width / window.devicePixelRatio, height: PaintApp.elements.canvas.height / window.devicePixelRatio, src: PaintApp.collaboration.compress(PaintApp.elements.canvas.toDataURL()) } var jsonData = JSON.stringify(data); activity.getDatastoreObject().setDataAsText(jsonData); activity.getDatastoreObject().save(function(error) {}); }); //Fetch of the history if not starting shared if (!window.top.sugar || !window.top.sugar.environment || !window.top.sugar.environment.sharedId) { activity.getDatastoreObject().loadAsText(function(error, metadata, jsonData) { if (jsonData == null) { return; } var data = JSON.parse(jsonData); PaintApp.clearCanvas(); img = new Image(); img.onload = function() { PaintApp.elements.canvas.getContext('2d').drawImage(img, 0, 0, data.width, data.height); PaintApp.saveCanvas(); }; img.src = PaintApp.collaboration.decompress(data.src); //DISPLAY }); } // If starting in shared mode, we disable undo/redo if (window.top && window.top.sugar && window.top.sugar.environment && window.top.sugar.environment.sharedId) { PaintApp.data.isHost = false; PaintApp.buttons.undoButton.hideGui(); PaintApp.buttons.redoButton.hideGui(); PaintApp.displayUndoRedoButtons(); PaintApp.collaboration.shareActivity(); } }); });