method_draw 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +148 -0
- data/Rakefile +23 -0
- data/app/assets/javascripts/method_draw.js +9 -0
- data/app/assets/javascripts/method_draw/base64.js +95 -0
- data/app/assets/javascripts/method_draw_embed.js +76 -0
- data/app/assets/stylesheets/sketchily.css +6 -0
- data/app/helpers/method_draw_helper.rb +35 -0
- data/app/views/method_draw/_embed.html.erb +51 -0
- data/app/views/method_draw/_method_draw.html.erb +19 -0
- data/app/views/method_draw/_method_draw_tag.html.erb +14 -0
- data/lib/method_draw.rb +16 -0
- data/lib/method_draw/engine.rb +4 -0
- data/lib/method_draw/method_draw.rb +37 -0
- data/lib/method_draw/method_draw_tag.rb +20 -0
- data/lib/method_draw/version.rb +3 -0
- data/spec/app/helpers/method_draw_helper_spec.rb +8 -0
- data/spec/dummy/README.md +3 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/controllers/drawings_controller.rb +18 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/drawing.rb +2 -0
- data/spec/dummy/app/views/drawings/method_draw.html.erb +3 -0
- data/spec/dummy/app/views/drawings/method_draw_tag.html.erb +3 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +27 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +80 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +8 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/0_create_drawings.rb +7 -0
- data/spec/dummy/db/schema.rb +20 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +922 -0
- data/spec/dummy/log/test.log +181 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/01e63791dcd008779246d1eeeace9408 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/061f36c32f08daef6eca93b74eaf74fd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1dbfe77fba798ba3dc24571c3b6d7eed +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1fd7477d83ec1798c2bc740be42bd6b2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/203471220004cb0cc667b886fb87dc46 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/213e12fc648032455ca0b118e987cca6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/296bbe63b0505bc5be472fc1c8a1a5fd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3239b44c026d7c1646c17a10c72905bf +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/38c8fbf05056bbe66399b6923521dc20 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3e30c8cfdf7deeda4607e4a8298f09a5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4bdd61ba53e8d9b7c19afea13c6e8985 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/52b0b11efea48f1fe5e46eeb4aa20193 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5ef314d6f1af1570631d60b7f9a96d6c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6215f00c593e1789ef865a545b17fc14 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/624fdd5478edd235a86af4b6168d0f75 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6299190ac3952cf7eee042e60c9aee89 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/62a95a2d67ec78570de6d0b31436206a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/65ed942dea29700b739c2292791eb65e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/66eb709561f77a29885af4423a3eb193 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6f8f2c21bc49ae5ebad6e8a96cea4fe6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/85dab60ed9ec9625b7ee22d4342fe26c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/86358bce0bfd5de6ac8afb1bfa9d675b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8b835ce894c1218dea1e7c83a9109d2d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8e177cc7106653a1e053bb2444bb43a5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8f41435d82ae4df55ae7dfdc1e99b0bb +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/94be0a0bca76437d0766c265a9cdecda +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9a093e6973aa150a0a4388167364593d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a280ac195f56a87267d2ec5d3e22ebcd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b13cddebc9106da6cfaf949ab3856d1f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b29ac216cb03ce2f30655a0d9bed77d4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c39d32e3ef6cc89f9c522212e65c49e1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c9910a0652952be02900dc71594d4384 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cb14e22baac3ab2cc947628f283e117b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d1475c156face9f06092c9cf89905372 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d22aa5a4d864d00cced2437352fe8fe4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d46cc5e60d1b2a20d622cdf9bab35fad +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d7f27a7f35278e87c69668a65683360a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e0080336bb31d78e9efab59b234e0d85 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e06104d99b055e792effca7bd66ad384 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e095df19da361d5f53d90f6749a38ea6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e5fb97d39fdd2e383e61115ef06079fd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e6d1ec9817258cfda7c68499a841a9d2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/edec019e8f1d7e758eb45524a913fd47 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f37cf330dccb15bee2a195f643f3ba29 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fc84011813992cacde5880c6b21701de +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/061f36c32f08daef6eca93b74eaf74fd +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/38c8fbf05056bbe66399b6923521dc20 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3e30c8cfdf7deeda4607e4a8298f09a5 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/52b0b11efea48f1fe5e46eeb4aa20193 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5ef314d6f1af1570631d60b7f9a96d6c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/6299190ac3952cf7eee042e60c9aee89 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/62a95a2d67ec78570de6d0b31436206a +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/65ed942dea29700b739c2292791eb65e +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/85dab60ed9ec9625b7ee22d4342fe26c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/a280ac195f56a87267d2ec5d3e22ebcd +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/cb14e22baac3ab2cc947628f283e117b +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d1475c156face9f06092c9cf89905372 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e0080336bb31d78e9efab59b234e0d85 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/pids/server.pid +1 -0
- data/spec/features/method_draw_spec.rb +10 -0
- data/spec/features/method_draw_tag_spec.rb +11 -0
- data/spec/lib/method_draw/method_draw_spec.rb +27 -0
- data/spec/lib/method_draw/method_draw_tag_spec.rb +19 -0
- data/spec/lib/method_draw_spec.rb +11 -0
- data/spec/test_helper.rb +24 -0
- data/vendor/assets/javascripts/method-draw-js/browser-not-supported.html +27 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Anivers-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Anivers-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Anivers-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Arvo-Regular-webfont.svg +145 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Arvo-Regular-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.svg +133 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.svg +235 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab_Italic-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab_Italic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab_Italic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-bold-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-bolditalic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-italic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-regular-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/euphoriascript-regular-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.svg +939 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.svg +682 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fertigo-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fertigo-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fertigo-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/oswald-bold-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/oswald-light-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/shadowsintolight-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-black-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-blackitalic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-italic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-regular-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test.html +62 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test.svg +15 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test_ff.svg +16 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test_ffsvg.svg +13 -0
- data/vendor/assets/javascripts/method-draw-js/css/fonts.css +72 -0
- data/vendor/assets/javascripts/method-draw-js/css/method-draw.compiled.css +417 -0
- data/vendor/assets/javascripts/method-draw-js/css/method-draw.css +2083 -0
- data/vendor/assets/javascripts/method-draw-js/embedapi.html +56 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/closepath_icons.svg +41 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-arrows.js +298 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-closepath.js +92 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-connector.js +587 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-eyedropper.js +135 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-foreignobject.js +277 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-grid.js +186 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-helloworld.js +78 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-imagelib.js +444 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-imagelib.xml +14 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-markers.js +576 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-server_moinsave.js +56 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-server_opensave.js +180 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-shapes.js +358 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-shapes.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-shapes.xml +8 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/eyedropper-icon.xml +17 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/eyedropper.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/eyedropper.svg +15 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/fileopen.php +31 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/filesave.php +44 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/foreignobject-icons.xml +96 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/grid-icon.xml +30 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/helloworld-icon.xml +21 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/imagelib/index.html +64 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/imagelib/smiley.svg +12 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/markers-icons.xml +115 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/arrow.json +40 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/dialog_balloon.json +14 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/flowchart.json +20 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/game.json +13 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/math.json +8 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/misc.json +6 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/music.json +21 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/nature.json +36 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/object.json +30 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/raphael.txt +12 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/raphael_1.json +7 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/social.json +21 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/symbol.json +35 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/ui.json +57 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/weather.json +26 -0
- data/vendor/assets/javascripts/method-draw-js/icons/jquery.svgicons.js +471 -0
- data/vendor/assets/javascripts/method-draw-js/images/AlphaBar.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/Bars.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/Maps.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/NoColor.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/README.txt +61 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-bottom.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-bottom.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-center.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-center.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-left.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-left.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-middle.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-middle.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-right.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-right.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-top.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-top.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/bar-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/bold.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/cancel.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/circle.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/clear.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/clone.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/conn.svg +29 -0
- data/vendor/assets/javascripts/method-draw-js/images/copy.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/cross.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/cut.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/delete.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/document-properties.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/drag.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/dragging.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/dropdown.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/ellipse.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/ellipse.svg +8 -0
- data/vendor/assets/javascripts/method-draw-js/images/eye.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/eye.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/eyedropper.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/eyedropper_tool.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/fhpath.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/flyouth.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/flyup.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/freehand-circle.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/freehand-square.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/go-down.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/go-up.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/image.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/image.svg +12 -0
- data/vendor/assets/javascripts/method-draw-js/images/italic.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/italic.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/line.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/link_controls.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/logo.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/map-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/mappoint.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/mappoint_c.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/mappoint_f.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/move_bottom.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/move_top.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/node_clone.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/node_delete.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/none.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/open.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/paste.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/path.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/path.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/pencil.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/pencil.svg +11 -0
- data/vendor/assets/javascripts/method-draw-js/images/pencil_cursor.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/picker.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/placeholder.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/polygon.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/polygon.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/preview-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rangearrows.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rangearrows2.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rect.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/redo.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/reorient.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rotate.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/save.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/select.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/select.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/select_node.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/sep.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/shape_group.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/shape_ungroup.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/source.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/spinbtn_updn_big.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/square.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/svg_edit_icons.svg +455 -0
- data/vendor/assets/javascripts/method-draw-js/images/svg_edit_icons.svgz +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/text.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/text.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/to_path.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/undo.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/view-refresh.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/wave.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/wireframe.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/zoom.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/zoom.svg +12 -0
- data/vendor/assets/javascripts/method-draw-js/index.html +631 -0
- data/vendor/assets/javascripts/method-draw-js/lib/canvg/canvg.js +2620 -0
- data/vendor/assets/javascripts/method-draw-js/lib/canvg/rgbcolor.js +287 -0
- data/vendor/assets/javascripts/method-draw-js/lib/contextmenu.js +68 -0
- data/vendor/assets/javascripts/method-draw-js/lib/contextmenu/jquery.contextMenu.js +223 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/LICENSE +202 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/README +3 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/css/jPicker.css +250 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/css/jgraduate.css +332 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/AlphaBar.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/Bars.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/Maps.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/NoColor.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/bar-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/eyedropper.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/map-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/mappoint.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/mappoint_c.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/mappoint_f.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/picker.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/preview-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/rangearrows.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/rangearrows2.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/jpicker.min.js +2087 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/jquery.jgraduate.js +1175 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/jquery.jgraduate.min.js +37 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery-draginput.js +181 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery-ui/jquery-ui-1.8.17.custom.min.js +54 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery-ui/jquery-ui-1.8.custom.min.js +84 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery.js +2 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquerybbq/jquery.bbq.min.js +18 -0
- data/vendor/assets/javascripts/method-draw-js/lib/js-hotkeys/README.md +45 -0
- data/vendor/assets/javascripts/method-draw-js/lib/js-hotkeys/jquery.hotkeys.min.js +15 -0
- data/vendor/assets/javascripts/method-draw-js/lib/mousewheel.js +84 -0
- data/vendor/assets/javascripts/method-draw-js/lib/requestanimationframe.js +24 -0
- data/vendor/assets/javascripts/method-draw-js/lib/taphold.js +136 -0
- data/vendor/assets/javascripts/method-draw-js/lib/touch.js +28 -0
- data/vendor/assets/javascripts/method-draw-js/method-draw.compiled.css +417 -0
- data/vendor/assets/javascripts/method-draw-js/method-draw.compiled.js +692 -0
- data/vendor/assets/javascripts/method-draw-js/method-draw.manifest +121 -0
- data/vendor/assets/javascripts/method-draw-js/src/browser.js +181 -0
- data/vendor/assets/javascripts/method-draw-js/src/dialog.js +49 -0
- data/vendor/assets/javascripts/method-draw-js/src/dragupload.js +11 -0
- data/vendor/assets/javascripts/method-draw-js/src/draw.js +533 -0
- data/vendor/assets/javascripts/method-draw-js/src/embedapi.js +173 -0
- data/vendor/assets/javascripts/method-draw-js/src/history.js +601 -0
- data/vendor/assets/javascripts/method-draw-js/src/math.js +247 -0
- data/vendor/assets/javascripts/method-draw-js/src/method-draw.js +4140 -0
- data/vendor/assets/javascripts/method-draw-js/src/path.js +979 -0
- data/vendor/assets/javascripts/method-draw-js/src/sanitize.js +273 -0
- data/vendor/assets/javascripts/method-draw-js/src/select.js +608 -0
- data/vendor/assets/javascripts/method-draw-js/src/svgcanvas.js +9047 -0
- data/vendor/assets/javascripts/method-draw-js/src/svgtransformlist.js +291 -0
- data/vendor/assets/javascripts/method-draw-js/src/svgutils.js +648 -0
- data/vendor/assets/javascripts/method-draw-js/src/units.js +281 -0
- data/vendor/assets/javascripts/method-draw-js/svgedit.compiled.css +417 -0
- data/vendor/assets/javascripts/method-draw-js/svgedit.compiled.js +691 -0
- data/vendor/assets/javascripts/method-draw-js/temp.css +2665 -0
- metadata +619 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" >
|
3
|
+
<head>
|
4
|
+
<title></title>
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
|
8
|
+
<script type="text/javascript" src="embedapi.js"></script>
|
9
|
+
<script type="text/javascript">
|
10
|
+
var svgCanvas = null;
|
11
|
+
|
12
|
+
function init_embed() {
|
13
|
+
var frame = document.getElementById('svgedit');
|
14
|
+
svgCanvas = new embedded_svg_edit(frame);
|
15
|
+
|
16
|
+
// Hide main button, as we will be controlling new/load/save etc from the host document
|
17
|
+
var doc;
|
18
|
+
doc = frame.contentDocument;
|
19
|
+
if (!doc)
|
20
|
+
{
|
21
|
+
doc = frame.contentWindow.document;
|
22
|
+
}
|
23
|
+
|
24
|
+
var mainButton = doc.getElementById('main_button');
|
25
|
+
mainButton.style.display = 'none';
|
26
|
+
}
|
27
|
+
|
28
|
+
function handleSvgData(data, error) {
|
29
|
+
if (error)
|
30
|
+
{
|
31
|
+
alert('error ' + error);
|
32
|
+
}
|
33
|
+
else
|
34
|
+
{
|
35
|
+
alert('Congratulations. Your SVG string is back in the host page, do with it what you will\n\n' + data);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
function loadSvg() {
|
40
|
+
var svgexample = '<svg width="640" height="480" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><g><title>Layer 1</title><rect stroke-width="5" stroke="#000000" fill="#FF0000" id="svg_1" height="35" width="51" y="35" x="32"/><ellipse ry="15" rx="24" stroke-width="5" stroke="#000000" fill="#0000ff" id="svg_2" cy="60" cx="66"/></g></svg>';
|
41
|
+
svgCanvas.setSvgString(svgexample);
|
42
|
+
}
|
43
|
+
|
44
|
+
function saveSvg() {
|
45
|
+
svgCanvas.getSvgString()(handleSvgData);
|
46
|
+
}
|
47
|
+
</script>
|
48
|
+
|
49
|
+
|
50
|
+
<button onclick="loadSvg();">Load example</button>
|
51
|
+
<button onclick="saveSvg();">Save data</button>
|
52
|
+
<br/>
|
53
|
+
|
54
|
+
<iframe src="index.html" width="900px" height="600px" id="svgedit" onload="init_embed()"></iframe>
|
55
|
+
</body>
|
56
|
+
</html>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<g id="tool_closepath">
|
3
|
+
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
4
|
+
<g>
|
5
|
+
<title>Layer 1</title>
|
6
|
+
<path stroke="#000" stroke-width="15" fill="#ffc8c8" d="m121.5,40l-84,106l27,115l166,2l29,-111"/>
|
7
|
+
<line x1="240" y1="136" x2="169.5" y2="74" stroke="#A00" stroke-width="25" fill="none"/>
|
8
|
+
<path stroke="none" fill ="#A00" d="m158,65l31,74l-3,-50l51,-3z"/>
|
9
|
+
<g stroke-width="15" stroke="#00f" fill="#0ff">
|
10
|
+
<circle r="30" cy="41" cx="123"/>
|
11
|
+
<circle r="30" cy="146" cx="40"/>
|
12
|
+
<circle r="30" cy="260" cx="69"/>
|
13
|
+
<circle r="30" cy="260" cx="228"/>
|
14
|
+
<circle r="30" cy="148" cx="260"/>
|
15
|
+
</g>
|
16
|
+
</g>
|
17
|
+
</svg>
|
18
|
+
</g>
|
19
|
+
<g id="tool_openpath">
|
20
|
+
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
21
|
+
<g>
|
22
|
+
<title>Layer 1</title>
|
23
|
+
<path stroke="#000" stroke-width="15" fill="#ffc8c8" d="m123.5,38l-84,106l27,115l166,2l29,-111"/>
|
24
|
+
<line x1="276.5" y1="153" x2="108.5" y2="24" stroke="#000" stroke-width="10" fill="none"/>
|
25
|
+
<g stroke-width="15" stroke="#00f" fill="#0ff">
|
26
|
+
<circle r="30" cy="41" cx="123"/>
|
27
|
+
<circle r="30" cy="146" cx="40"/>
|
28
|
+
<circle r="30" cy="260" cx="69"/>
|
29
|
+
<circle r="30" cy="260" cx="228"/>
|
30
|
+
<circle r="30" cy="148" cx="260"/>
|
31
|
+
</g>
|
32
|
+
<g stroke="#A00" stroke-width="15" fill="none">
|
33
|
+
<line x1="168" y1="24" x2="210" y2="150"/>
|
34
|
+
<line x1="210" y1="24" x2="168" y2="150"/>
|
35
|
+
</g>
|
36
|
+
</g>
|
37
|
+
</svg>
|
38
|
+
</g>
|
39
|
+
|
40
|
+
<g id="svg_eof"/>
|
41
|
+
</svg>
|
@@ -0,0 +1,298 @@
|
|
1
|
+
/*
|
2
|
+
* ext-arrows.js
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2
|
5
|
+
*
|
6
|
+
* Copyright(c) 2010 Alexis Deveria
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
|
10
|
+
|
11
|
+
methodDraw.addExtension("Arrows", function(S) {
|
12
|
+
var svgcontent = S.svgcontent,
|
13
|
+
addElem = S.addSvgElementFromJson,
|
14
|
+
nonce = S.nonce,
|
15
|
+
randomize_ids = S.randomize_ids,
|
16
|
+
selElems;
|
17
|
+
|
18
|
+
svgCanvas.bind('setnonce', setArrowNonce);
|
19
|
+
svgCanvas.bind('unsetnonce', unsetArrowNonce);
|
20
|
+
|
21
|
+
var lang_list = {
|
22
|
+
"en":[
|
23
|
+
{"id": "arrow_none", "textContent": "No arrow" }
|
24
|
+
],
|
25
|
+
"fr":[
|
26
|
+
{"id": "arrow_none", "textContent": "Sans flèche" }
|
27
|
+
]
|
28
|
+
};
|
29
|
+
|
30
|
+
var prefix = 'se_arrow_';
|
31
|
+
if (randomize_ids) {
|
32
|
+
var arrowprefix = prefix + nonce + '_';
|
33
|
+
} else {
|
34
|
+
var arrowprefix = prefix;
|
35
|
+
}
|
36
|
+
|
37
|
+
var pathdata = {
|
38
|
+
fw: {d:"m0,0l10,5l-10,5l5,-5l-5,-5z", refx:8, id: arrowprefix + 'fw'},
|
39
|
+
bk: {d:"m10,0l-10,5l10,5l-5,-5l5,-5z", refx:2, id: arrowprefix + 'bk'}
|
40
|
+
}
|
41
|
+
|
42
|
+
function setArrowNonce(window, n) {
|
43
|
+
randomize_ids = true;
|
44
|
+
arrowprefix = prefix + n + '_';
|
45
|
+
pathdata.fw.id = arrowprefix + 'fw';
|
46
|
+
pathdata.bk.id = arrowprefix + 'bk';
|
47
|
+
}
|
48
|
+
|
49
|
+
function unsetArrowNonce(window) {
|
50
|
+
randomize_ids = false;
|
51
|
+
arrowprefix = prefix;
|
52
|
+
pathdata.fw.id = arrowprefix + 'fw';
|
53
|
+
pathdata.bk.id = arrowprefix + 'bk';
|
54
|
+
}
|
55
|
+
|
56
|
+
function getLinked(elem, attr) {
|
57
|
+
var str = elem.getAttribute(attr);
|
58
|
+
if(!str) return null;
|
59
|
+
var m = str.match(/\(\#(.*)\)/);
|
60
|
+
if(!m || m.length !== 2) {
|
61
|
+
return null;
|
62
|
+
}
|
63
|
+
return S.getElem(m[1]);
|
64
|
+
}
|
65
|
+
|
66
|
+
function showPanel(on) {
|
67
|
+
$('#arrow_panel').toggle(on);
|
68
|
+
|
69
|
+
if(on) {
|
70
|
+
var el = selElems[0];
|
71
|
+
var end = el.getAttribute("marker-end");
|
72
|
+
var start = el.getAttribute("marker-start");
|
73
|
+
var mid = el.getAttribute("marker-mid");
|
74
|
+
var val;
|
75
|
+
|
76
|
+
if(end && start) {
|
77
|
+
val = "both";
|
78
|
+
} else if(end) {
|
79
|
+
val = "end";
|
80
|
+
} else if(start) {
|
81
|
+
val = "start";
|
82
|
+
} else if(mid) {
|
83
|
+
val = "mid";
|
84
|
+
if(mid.indexOf("bk") != -1) {
|
85
|
+
val = "mid_bk";
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
if(!start && !mid && !end) {
|
90
|
+
val = "none";
|
91
|
+
}
|
92
|
+
|
93
|
+
$("#arrow_list").val(val);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
function resetMarker() {
|
98
|
+
var el = selElems[0];
|
99
|
+
el.removeAttribute("marker-start");
|
100
|
+
el.removeAttribute("marker-mid");
|
101
|
+
el.removeAttribute("marker-end");
|
102
|
+
}
|
103
|
+
|
104
|
+
function addMarker(dir, type, id) {
|
105
|
+
// TODO: Make marker (or use?) per arrow type, since refX can be different
|
106
|
+
id = id || arrowprefix + dir;
|
107
|
+
|
108
|
+
var marker = S.getElem(id);
|
109
|
+
|
110
|
+
var data = pathdata[dir];
|
111
|
+
|
112
|
+
if(type == "mid") {
|
113
|
+
data.refx = 5;
|
114
|
+
}
|
115
|
+
|
116
|
+
if(!marker) {
|
117
|
+
marker = addElem({
|
118
|
+
"element": "marker",
|
119
|
+
"attr": {
|
120
|
+
"viewBox": "0 0 10 10",
|
121
|
+
"id": id,
|
122
|
+
"refY": 5,
|
123
|
+
"markerUnits": "strokeWidth",
|
124
|
+
"markerWidth": 5,
|
125
|
+
"markerHeight": 5,
|
126
|
+
"orient": "auto",
|
127
|
+
"style": "pointer-events:none" // Currently needed for Opera
|
128
|
+
}
|
129
|
+
});
|
130
|
+
var arrow = addElem({
|
131
|
+
"element": "path",
|
132
|
+
"attr": {
|
133
|
+
"d": data.d,
|
134
|
+
"fill": "#000000"
|
135
|
+
}
|
136
|
+
});
|
137
|
+
marker.appendChild(arrow);
|
138
|
+
S.findDefs().appendChild(marker);
|
139
|
+
}
|
140
|
+
|
141
|
+
marker.setAttribute('refX', data.refx);
|
142
|
+
|
143
|
+
return marker;
|
144
|
+
}
|
145
|
+
|
146
|
+
function setArrow() {
|
147
|
+
var type = this.value;
|
148
|
+
resetMarker();
|
149
|
+
|
150
|
+
if(type == "none") {
|
151
|
+
return;
|
152
|
+
}
|
153
|
+
|
154
|
+
// Set marker on element
|
155
|
+
var dir = "fw";
|
156
|
+
if(type == "mid_bk") {
|
157
|
+
type = "mid";
|
158
|
+
dir = "bk";
|
159
|
+
} else if(type == "both") {
|
160
|
+
addMarker("bk", type);
|
161
|
+
svgCanvas.changeSelectedAttribute("marker-start", "url(#" + pathdata.bk.id + ")");
|
162
|
+
type = "end";
|
163
|
+
dir = "fw";
|
164
|
+
} else if (type == "start") {
|
165
|
+
dir = "bk";
|
166
|
+
}
|
167
|
+
|
168
|
+
addMarker(dir, type);
|
169
|
+
svgCanvas.changeSelectedAttribute("marker-"+type, "url(#" + pathdata[dir].id + ")");
|
170
|
+
S.call("changed", selElems);
|
171
|
+
}
|
172
|
+
|
173
|
+
function colorChanged(elem) {
|
174
|
+
var color = elem.getAttribute('stroke');
|
175
|
+
|
176
|
+
var mtypes = ['start','mid','end'];
|
177
|
+
var defs = S.findDefs();
|
178
|
+
|
179
|
+
$.each(mtypes, function(i, type) {
|
180
|
+
var marker = getLinked(elem, 'marker-'+type);
|
181
|
+
if(!marker) return;
|
182
|
+
|
183
|
+
var cur_color = $(marker).children().attr('fill');
|
184
|
+
var cur_d = $(marker).children().attr('d');
|
185
|
+
var new_marker = null;
|
186
|
+
if(cur_color === color) return;
|
187
|
+
|
188
|
+
var all_markers = $(defs).find('marker');
|
189
|
+
// Different color, check if already made
|
190
|
+
all_markers.each(function() {
|
191
|
+
var attrs = $(this).children().attr(['fill', 'd']);
|
192
|
+
if(attrs.fill === color && attrs.d === cur_d) {
|
193
|
+
// Found another marker with this color and this path
|
194
|
+
new_marker = this;
|
195
|
+
}
|
196
|
+
});
|
197
|
+
|
198
|
+
if(!new_marker) {
|
199
|
+
// Create a new marker with this color
|
200
|
+
var last_id = marker.id;
|
201
|
+
var dir = last_id.indexOf('_fw') !== -1?'fw':'bk';
|
202
|
+
|
203
|
+
new_marker = addMarker(dir, type, arrowprefix + dir + all_markers.length);
|
204
|
+
|
205
|
+
$(new_marker).children().attr('fill', color);
|
206
|
+
}
|
207
|
+
|
208
|
+
$(elem).attr('marker-'+type, "url(#" + new_marker.id + ")");
|
209
|
+
|
210
|
+
// Check if last marker can be removed
|
211
|
+
var remove = true;
|
212
|
+
$(S.svgcontent).find('line, polyline, path, polygon').each(function() {
|
213
|
+
var elem = this;
|
214
|
+
$.each(mtypes, function(j, mtype) {
|
215
|
+
if($(elem).attr('marker-' + mtype) === "url(#" + marker.id + ")") {
|
216
|
+
return remove = false;
|
217
|
+
}
|
218
|
+
});
|
219
|
+
if(!remove) return false;
|
220
|
+
});
|
221
|
+
|
222
|
+
// Not found, so can safely remove
|
223
|
+
if(remove) {
|
224
|
+
$(marker).remove();
|
225
|
+
}
|
226
|
+
|
227
|
+
});
|
228
|
+
|
229
|
+
}
|
230
|
+
|
231
|
+
return {
|
232
|
+
name: "Arrows",
|
233
|
+
context_tools: [{
|
234
|
+
type: "select",
|
235
|
+
panel: "arrow_panel",
|
236
|
+
title: "Select arrow type",
|
237
|
+
id: "arrow_list",
|
238
|
+
options: {
|
239
|
+
none: "No arrow",
|
240
|
+
end: "---->",
|
241
|
+
start: "<----",
|
242
|
+
both: "<--->",
|
243
|
+
mid: "-->--",
|
244
|
+
mid_bk: "--<--"
|
245
|
+
},
|
246
|
+
defval: "none",
|
247
|
+
events: {
|
248
|
+
change: setArrow
|
249
|
+
}
|
250
|
+
}],
|
251
|
+
callback: function() {
|
252
|
+
$('#arrow_panel').hide();
|
253
|
+
// Set ID so it can be translated in locale file
|
254
|
+
$('#arrow_list option')[0].id = 'connector_no_arrow';
|
255
|
+
},
|
256
|
+
addLangData: function(lang) {
|
257
|
+
return {
|
258
|
+
data: lang_list[lang]
|
259
|
+
};
|
260
|
+
},
|
261
|
+
selectedChanged: function(opts) {
|
262
|
+
|
263
|
+
// Use this to update the current selected elements
|
264
|
+
selElems = opts.elems;
|
265
|
+
|
266
|
+
var i = selElems.length;
|
267
|
+
var marker_elems = ['line','path','polyline','polygon'];
|
268
|
+
|
269
|
+
while(i--) {
|
270
|
+
var elem = selElems[i];
|
271
|
+
if(elem && $.inArray(elem.tagName, marker_elems) != -1) {
|
272
|
+
if(opts.selectedElement && !opts.multiselected) {
|
273
|
+
showPanel(true);
|
274
|
+
} else {
|
275
|
+
showPanel(false);
|
276
|
+
}
|
277
|
+
} else {
|
278
|
+
showPanel(false);
|
279
|
+
}
|
280
|
+
}
|
281
|
+
},
|
282
|
+
elementChanged: function(opts) {
|
283
|
+
var elem = opts.elems[0];
|
284
|
+
if(elem && (
|
285
|
+
elem.getAttribute("marker-start") ||
|
286
|
+
elem.getAttribute("marker-mid") ||
|
287
|
+
elem.getAttribute("marker-end")
|
288
|
+
)) {
|
289
|
+
// var start = elem.getAttribute("marker-start");
|
290
|
+
// var mid = elem.getAttribute("marker-mid");
|
291
|
+
// var end = elem.getAttribute("marker-end");
|
292
|
+
// Has marker, so see if it should match color
|
293
|
+
colorChanged(elem);
|
294
|
+
}
|
295
|
+
|
296
|
+
}
|
297
|
+
};
|
298
|
+
});
|
@@ -0,0 +1,92 @@
|
|
1
|
+
/*
|
2
|
+
* ext-closepath.js
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2
|
5
|
+
*
|
6
|
+
* Copyright(c) 2010 Jeff Schiller
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
|
10
|
+
// This extension adds a simple button to the contextual panel for paths
|
11
|
+
// The button toggles whether the path is open or closed
|
12
|
+
methodDraw.addExtension("ClosePath", function(S) {
|
13
|
+
var selElems,
|
14
|
+
updateButton = function(path) {
|
15
|
+
var seglist = path.pathSegList,
|
16
|
+
closed = seglist.getItem(seglist.numberOfItems - 1).pathSegType==1,
|
17
|
+
showbutton = closed ? '#tool_openpath' : '#tool_closepath',
|
18
|
+
hidebutton = closed ? '#tool_closepath' : '#tool_openpath';
|
19
|
+
$(hidebutton).hide();
|
20
|
+
$(showbutton).show();
|
21
|
+
},
|
22
|
+
showPanel = function(on) {
|
23
|
+
$('#closepath_panel').toggle(on);
|
24
|
+
if (on) {
|
25
|
+
var path = selElems[0];
|
26
|
+
if (path) updateButton(path);
|
27
|
+
}
|
28
|
+
},
|
29
|
+
|
30
|
+
toggleClosed = function() {
|
31
|
+
var path = selElems[0];
|
32
|
+
if (path) {
|
33
|
+
var seglist = path.pathSegList,
|
34
|
+
last = seglist.numberOfItems - 1;
|
35
|
+
// is closed
|
36
|
+
if(seglist.getItem(last).pathSegType == 1) {
|
37
|
+
seglist.removeItem(last);
|
38
|
+
}
|
39
|
+
else {
|
40
|
+
seglist.appendItem(path.createSVGPathSegClosePath());
|
41
|
+
}
|
42
|
+
updateButton(path);
|
43
|
+
}
|
44
|
+
};
|
45
|
+
|
46
|
+
return {
|
47
|
+
name: "ClosePath",
|
48
|
+
svgicons: "extensions/closepath_icons.svg",
|
49
|
+
buttons: [{
|
50
|
+
id: "tool_openpath",
|
51
|
+
type: "context",
|
52
|
+
panel: "closepath_panel",
|
53
|
+
title: "Open path",
|
54
|
+
events: {
|
55
|
+
'click': function() {
|
56
|
+
toggleClosed();
|
57
|
+
}
|
58
|
+
}
|
59
|
+
},
|
60
|
+
{
|
61
|
+
id: "tool_closepath",
|
62
|
+
type: "context",
|
63
|
+
panel: "closepath_panel",
|
64
|
+
title: "Close path",
|
65
|
+
events: {
|
66
|
+
'click': function() {
|
67
|
+
toggleClosed();
|
68
|
+
}
|
69
|
+
}
|
70
|
+
}],
|
71
|
+
callback: function() {
|
72
|
+
$('#closepath_panel').hide();
|
73
|
+
},
|
74
|
+
selectedChanged: function(opts) {
|
75
|
+
selElems = opts.elems;
|
76
|
+
var i = selElems.length;
|
77
|
+
|
78
|
+
while(i--) {
|
79
|
+
var elem = selElems[i];
|
80
|
+
if(elem && elem.tagName == 'path') {
|
81
|
+
if(opts.selectedElement && !opts.multiselected) {
|
82
|
+
showPanel(true);
|
83
|
+
} else {
|
84
|
+
showPanel(false);
|
85
|
+
}
|
86
|
+
} else {
|
87
|
+
showPanel(false);
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
};
|
92
|
+
});
|