{"action":"created","issue":{"url":"https://api.github.com/repos/TomasMikula/RichTextFX/issues/207","labels_url":"https://api.github.com/repos/TomasMikula/RichTextFX/issues/207/labels{/name}","comments_url":"https://api.github.com/repos/TomasMikula/RichTextFX/issues/207/comments","events_url":"https://api.github.com/repos/TomasMikula/RichTextFX/issues/207/events","html_url":"https://github.com/TomasMikula/RichTextFX/pull/207","id":116662514,"number":207,"title":"This branch is NOT intended to be merged, only to help with discussion.","user":{"login":"JordanMartinez","id":8413037,"avatar_url":"https://avatars.githubusercontent.com/u/8413037?v=3","gravatar_id":"","url":"https://api.github.com/users/JordanMartinez","html_url":"https://github.com/JordanMartinez","followers_url":"https://api.github.com/users/JordanMartinez/followers","following_url":"https://api.github.com/users/JordanMartinez/following{/other_user}","gists_url":"https://api.github.com/users/JordanMartinez/gists{/gist_id}","starred_url":"https://api.github.com/users/JordanMartinez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JordanMartinez/subscriptions","organizations_url":"https://api.github.com/users/JordanMartinez/orgs","repos_url":"https://api.github.com/users/JordanMartinez/repos","events_url":"https://api.github.com/users/JordanMartinez/events{/privacy}","received_events_url":"https://api.github.com/users/JordanMartinez/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-11-12T23:08:31Z","updated_at":"2015-11-19T04:03:42Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/TomasMikula/RichTextFX/pulls/207","html_url":"https://github.com/TomasMikula/RichTextFX/pull/207","diff_url":"https://github.com/TomasMikula/RichTextFX/pull/207.diff","patch_url":"https://github.com/TomasMikula/RichTextFX/pull/207.patch"},"body":"First attempt at removing Skin.\r\n\r\nCommit notes:\r\n- Flowless (scroll bar free version) was compiled using a local jar.\r\n- StyledTextAreaView's contents were moved into StyledTextArea. If conflicting names of properties/methods were found, StyledTextArea's names stayed the same whereas StyledTextAreaView's names now had an additional \"_\" character in front of them (\"exampleMethod()\" -> \"_exampleMethod()\")\r\n- Any other skin-related classes were moved to the main `org.fxmisc.richtextfx` package.\r\n- StyledTextAreaBehavior's contents were not included in StyledTextArea. Rather, a modified version of the original object was created using the constructed StyledTextArea and its VirtualFlow.\r\n- RichText demo works and embeds the StyledTextArea within a VirtualizedScrollPane. None of the other demos were tested.\r\n- StyledTextAreaView & StyledTextAreaVisual were commented out, where needed, so that the demo could compile.\r\n\r\n### Questions I have:\r\n1. What can be optimized? (long methods chains that were needed for Control can be better streamlined, properties and other values can be implemented better, etc.)\r\n2. How should Behavior be handled?\r\n  - Include it in the StyledTextArea\r\n  - Exclude it, but provide it in some other class (so that others can customize the behavior they want)\r\n  - Something else?\r\n3. How should the convenience method for creating and then embedding a StyledTextArea inside a VirtualizedScrollPane work?\r\n  - Each subclass of StyledTextArea provides its own static method? Or overrides the super method?\r\n  - Something else?\r\n"},"comment":{"url":"https://api.github.com/repos/TomasMikula/RichTextFX/issues/comments/157944820","html_url":"https://github.com/TomasMikula/RichTextFX/pull/207#issuecomment-157944820","issue_url":"https://api.github.com/repos/TomasMikula/RichTextFX/issues/207","id":157944820,"user":{"login":"JordanMartinez","id":8413037,"avatar_url":"https://avatars.githubusercontent.com/u/8413037?v=3","gravatar_id":"","url":"https://api.github.com/users/JordanMartinez","html_url":"https://github.com/JordanMartinez","followers_url":"https://api.github.com/users/JordanMartinez/followers","following_url":"https://api.github.com/users/JordanMartinez/following{/other_user}","gists_url":"https://api.github.com/users/JordanMartinez/gists{/gist_id}","starred_url":"https://api.github.com/users/JordanMartinez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JordanMartinez/subscriptions","organizations_url":"https://api.github.com/users/JordanMartinez/orgs","repos_url":"https://api.github.com/users/JordanMartinez/repos","events_url":"https://api.github.com/users/JordanMartinez/events{/privacy}","received_events_url":"https://api.github.com/users/JordanMartinez/received_events","type":"User","site_admin":false},"created_at":"2015-11-19T04:03:42Z","updated_at":"2015-11-19T04:03:42Z","body":"With that, I would propose a class with factory methods whose names are the name of the area it embeds in a VirtualizedScrollPane:\r\n````java\r\npublic class AreaFactory {\r\n    public <S, PS> VirtualizedScrollPane<StyledTextArea<S, PS>  StyledTextArea(args) {\r\n        return new VirtualizedScrollPane<>(new StyledTextArea(args));\r\n    }\r\n    // inlineStyleTextArea\r\n    // inlineCssTextArea\r\n}\r\n````"}}