{"id":314,"date":"2012-10-02T19:39:04","date_gmt":"2012-10-02T17:39:04","guid":{"rendered":"https:\/\/mihosoft.eu\/?p=314"},"modified":"2014-09-09T18:51:12","modified_gmt":"2014-09-09T16:51:12","slug":"javafx-based-window-system-for-vrl-day-one","status":"publish","type":"post","link":"https:\/\/mihosoft.eu\/?p=314","title":{"rendered":"JavaFX Window System for VRL (Day One)"},"content":{"rendered":"<p>I am relatively new to JavaFX. After some time of reading the documentation and searching the Web I came to the conclusion that JavaFX does not provide an API for window nodes like Swings <code>JInternalFrame<\/code>.<\/p>\n\n<p>Thus, I am going to develop my own one. If you want to contribute just drop me a line. I&#8217;d be more than happy about that! I will mainly use it for <a href=\"http:\/\/vrl.mihosoft.eu\">VRL<\/a>. However, this project will be released as open source and should be usable for may types of applications.<\/p>\n\n<h1>What I did so far<\/h1>\n\n<p>First, I tried some of the basic JavaFX samples. Then I tried to implement a draggable node. This is was my first attempt:<\/p>\n\n<div id=\"attachment_330\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node01-a.png\"><img aria-describedby=\"caption-attachment-330\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node01-a-300x176.png\" alt=\"\" title=\"draggable-node01-a\" width=\"300\" height=\"176\" class=\"size-medium wp-image-330\" srcset=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node01-a-300x176.png 300w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node01-a-1024x602.png 1024w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node01-a-700x411.png 700w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node01-a.png 1598w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-330\" class=\"wp-caption-text\">Draggable Node Application Window<\/p><\/div>\n\n<p>After dragging the nodes around:<\/p>\n\n<div id=\"attachment_331\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node-01-b.png\"><img aria-describedby=\"caption-attachment-331\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node-01-b-300x225.png\" alt=\"\" title=\"draggable-node-01-b\" width=\"300\" height=\"225\" class=\"size-medium wp-image-331\" srcset=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node-01-b-300x225.png 300w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node-01-b-1024x768.png 1024w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node-01-b-268x200.png 268w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node-01-b-700x525.png 700w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node-01-b.png 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-331\" class=\"wp-caption-text\">Draggable Node Application  (after dragging nodes around)<\/p><\/div>\n\n<p>Download the code from <a href=\"https:\/\/gist.github.com\/3821180\">here<\/a>.<\/p>\n\n<p>The code is less then a prototype for now and is just for lerning. Still, it might be useful for someone.<\/p>\n\n<h1>What Comes Next<\/h1>\n\n<p>Next things I want to implement are:<\/p>\n\n<ul>\n<li>resizing<\/li>\n<li>child windows inside windows<\/li>\n<li>scaling support (add scale transform to windows, child windows are scaled down according to parent size)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>I am relatively new to JavaFX. After some time of reading the documentation and searching the Web I came to the conclusion that JavaFX does not provide an API for window nodes like Swings JInternalFrame. Thus, I am going to develop my own one. If you want to contribute just &#8230;<\/p>","protected":false},"author":1,"featured_media":331,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[13,21,5],"tags":[124,26,25,28,29,125,27],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/mihosoft.eu\/wp-content\/uploads\/2012\/10\/draggable-node-01-b.png","jetpack_shortlink":"https:\/\/wp.me\/p2P2yR-54","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/posts\/314"}],"collection":[{"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=314"}],"version-history":[{"count":25,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/posts\/314\/revisions"}],"predecessor-version":[{"id":415,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/posts\/314\/revisions\/415"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/media\/331"}],"wp:attachment":[{"href":"https:\/\/mihosoft.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=314"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}