| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- /**
- * Text extraction plugin.
- */
- Draw.loadPlugin(function(ui)
- {
- // Adds resource for action
- mxResources.parse('page=Reorder pages...');
- // Adds action
- ui.actions.addAction('page', function()
- {
- var graph = ui.editor.graph;
- var pages = ui.pages;
-
- if (pages.length > 1)
- {
- var counter = 0;
- var max = parseInt(prompt('Cycles', '100'));
-
- function schedule()
- {
- var jitter = 1 + 0.3 * (Math.random() - 0.5);
-
- window.setTimeout(function()
- {
- graph.getModel().beginUpdate();
- try
- {
- // permute pages
- var number = pages.length;
- var passes = Math.floor(Math.random() * number) + 1;
- console.log(counter + " - page reordering in " + passes + " passes");
-
- for (var i = 0; i < passes; i++)
- {
- var k = Math.floor(Math.random() * number);
- var l = Math.floor(Math.random() * number);
- ui.movePage(k, l);
- }
- }
- finally
- {
- graph.getModel().endUpdate();
- }
- if (counter++ < max && ui.dialog == null)
- {
- schedule();
- }
- }, 15000 * jitter);
- }
-
- schedule();
- }
- else
- {
- ui.alert(mxResources.get('nothingIsSelected'));
- }
- });
-
- // Adds resource for action
- mxResources.parse('place=Place pages...');
- // Adds action
- ui.actions.addAction('place', function()
- {
- var graph = ui.editor.graph;
- var pages = ui.pages;
-
- if (pages.length > 1)
- {
- var counter = 0;
- var max = parseInt(prompt('Cycles', '100'));
-
- function schedule()
- {
- var jitter = 1 + 0.3 * (Math.random() - 0.5);
-
- window.setTimeout(function()
- {
- graph.getModel().beginUpdate();
- try
- {
- // first insert some pages (at most 3 at a time)
- var n = Math.floor(Math.random() * 4); // how many to insert?
- console.log(counter + " - inserting " + n + " pages");
- for (var i = 0; i < n; i++)
- {
- var k = Math.floor(Math.random() * 4000);
- var page = ui.createPage("Page " + k);
- var change = new ChangePage(ui, page, page, ui.pages.length);
- graph.model.execute(change);
- }
-
- // next delete some pages (at most 3 at a time)
- n = Math.floor(Math.random() * 4); // how many to delete? at least 1 should remain
- n = Math.min(n, ui.pages.length - 1);
- console.log(counter + " - removing " + n + " pages");
- for (var i = 0; i < n; i++)
- {
- var number = ui.pages.length;
- var k = Math.floor(Math.random() * number); // which one to delete?
- ui.removePage(ui.pages[k]);
- }
-
- // permute remaining pages
- pages = ui.pages;
- var number = pages.length;
- var passes = Math.floor(Math.random() * number) + 1;
- console.log(counter + " - moving " + passes + " pages");
-
- for (var i = 0; i < passes; i++)
- {
- var k = Math.floor(Math.random() * number);
- var l = Math.floor(Math.random() * number);
- ui.movePage(k, l);
- }
- }
- finally
- {
- graph.getModel().endUpdate();
- }
- if (counter++ < max && ui.dialog == null)
- {
- schedule();
- }
- }, 15000 * jitter);
- }
-
- schedule();
- }
- else
- {
- ui.alert(mxResources.get('nothingIsSelected'));
- }
- });
-
- var menu = ui.menus.get('extras');
- var oldFunct = menu.funct;
-
- menu.funct = function(menu, parent)
- {
- oldFunct.apply(this, arguments);
-
- ui.menus.addMenuItems(menu, ['-', 'page', 'place'], parent);
- };
- });
|