{"action":"created","comment":{"url":"https://api.github.com/repos/wandernauta/viskell/pulls/comments/33920751","id":33920751,"diff_hunk":"@@ -22,105 +25,126 @@\n  * <p>\n  * It is possible for a connection to exist without both anchors being present,\n  * whenever the position of either the start or end anchor changes the\n- * {@link #invalidateConnectionState()} should be called to refresh the visual\n+ * {@link #invalidateAnchorPositions()} should be called to refresh the visual\n  * representation of the connection.\n  * </p>\n+ * \n+ * Connection is also a changeListener for a Transform, in order to be able to\n+ * update the Line's position when the anchor's positions change.\n  */\n public class Connection extends ConnectionLine implements\n-        ChangeListener<Number> {\n-    /** Starting point of this Line that can be Anchored onto other objects */\n+        ChangeListener<Transform> {\n+    /** Starting point of this Line that can be Anchored onto other objects. */\n     private Optional<OutputAnchor> startAnchor = Optional.empty();\n-    /** Ending point of this Line that can be Anchored onto other objects */\n+    /** Ending point of this Line that can be Anchored onto other objects. */\n     private Optional<InputAnchor> endAnchor = Optional.empty();\n \n+    /** The Pane this Connection is on. */\n     private CustomUIPane pane;\n+    \n+    /** Property describing the error state. */\n+    private BooleanProperty errorState;\n \n-    /** The connection state this Connection is in */\n-    private int connectionState;\n-\n+    /** \n+     * Construct a new Connection.\n+     * @param pane The Pane this Connection is on.\n+     */\n     public Connection(CustomUIPane pane) {\n         this.pane = pane;\n+        this.errorState = new SimpleBooleanProperty(false);\n+        this.errorStateProperty().addListener(this::checkErrorListener);\n     }\n \n+    /** \n+     * Construct a new Connection.\n+     * @param pane The Pane this Connection is on.\n+     * @param from The OutputAnchor of this Connection.\n+     */\n     public Connection(CustomUIPane pane, OutputAnchor from) {\n-        this.pane = pane;\n+        this(pane);\n         tryAddAnchor(from);\n-        setEndPosition(from.getCenterInPane());\n+        setEndPositionParent(getAnchorPositionInPane(from));","path":"Code/src/main/java/nl/utwente/group10/ui/components/lines/Connection.java","position":79,"original_position":79,"commit_id":"782043f02a0f8e594e2bc1c86d6138308ffa423a","original_commit_id":"29e7bde4b2d29e6fce76a172c51ee80a5bbca4a8","user":{"login":"i3anaan","id":2911348,"avatar_url":"https://avatars.githubusercontent.com/u/2911348?v=3","gravatar_id":"","url":"https://api.github.com/users/i3anaan","html_url":"https://github.com/i3anaan","followers_url":"https://api.github.com/users/i3anaan/followers","following_url":"https://api.github.com/users/i3anaan/following{/other_user}","gists_url":"https://api.github.com/users/i3anaan/gists{/gist_id}","starred_url":"https://api.github.com/users/i3anaan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/i3anaan/subscriptions","organizations_url":"https://api.github.com/users/i3anaan/orgs","repos_url":"https://api.github.com/users/i3anaan/repos","events_url":"https://api.github.com/users/i3anaan/events{/privacy}","received_events_url":"https://api.github.com/users/i3anaan/received_events","type":"User","site_admin":false},"body":"Apperantly not, not sure why. Leaving it this way.","created_at":"2015-07-06T10:07:32Z","updated_at":"2015-07-06T10:07:32Z","html_url":"https://github.com/wandernauta/viskell/pull/123#discussion_r33920751","pull_request_url":"https://api.github.com/repos/wandernauta/viskell/pulls/123","_links":{"self":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/comments/33920751"},"html":{"href":"https://github.com/wandernauta/viskell/pull/123#discussion_r33920751"},"pull_request":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/123"}}},"pull_request":{"url":"https://api.github.com/repos/wandernauta/viskell/pulls/123","id":38990417,"html_url":"https://github.com/wandernauta/viskell/pull/123","diff_url":"https://github.com/wandernauta/viskell/pull/123.diff","patch_url":"https://github.com/wandernauta/viskell/pull/123.patch","issue_url":"https://api.github.com/repos/wandernauta/viskell/issues/123","number":123,"state":"open","locked":false,"title":"UI version 2","user":{"login":"i3anaan","id":2911348,"avatar_url":"https://avatars.githubusercontent.com/u/2911348?v=3","gravatar_id":"","url":"https://api.github.com/users/i3anaan","html_url":"https://github.com/i3anaan","followers_url":"https://api.github.com/users/i3anaan/followers","following_url":"https://api.github.com/users/i3anaan/following{/other_user}","gists_url":"https://api.github.com/users/i3anaan/gists{/gist_id}","starred_url":"https://api.github.com/users/i3anaan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/i3anaan/subscriptions","organizations_url":"https://api.github.com/users/i3anaan/orgs","repos_url":"https://api.github.com/users/i3anaan/repos","events_url":"https://api.github.com/users/i3anaan/events{/privacy}","received_events_url":"https://api.github.com/users/i3anaan/received_events","type":"User","site_admin":false},"body":"- Type system usage overhaul\r\n- Invalidation overhaul\r\n- New error display icon\r\n- Lots of visual glitches are fixed\r\n\r\nCleaning / documenting still needs to happen.\r\n","created_at":"2015-07-01T14:53:51Z","updated_at":"2015-07-06T10:07:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6b98b3d1cc479f28a154507a268122300504c2cf","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/wandernauta/viskell/pulls/123/commits","review_comments_url":"https://api.github.com/repos/wandernauta/viskell/pulls/123/comments","review_comment_url":"https://api.github.com/repos/wandernauta/viskell/pulls/comments{/number}","comments_url":"https://api.github.com/repos/wandernauta/viskell/issues/123/comments","statuses_url":"https://api.github.com/repos/wandernauta/viskell/statuses/782043f02a0f8e594e2bc1c86d6138308ffa423a","head":{"label":"wandernauta:ui-2","ref":"ui-2","sha":"782043f02a0f8e594e2bc1c86d6138308ffa423a","user":{"login":"wandernauta","id":126832,"avatar_url":"https://avatars.githubusercontent.com/u/126832?v=3","gravatar_id":"","url":"https://api.github.com/users/wandernauta","html_url":"https://github.com/wandernauta","followers_url":"https://api.github.com/users/wandernauta/followers","following_url":"https://api.github.com/users/wandernauta/following{/other_user}","gists_url":"https://api.github.com/users/wandernauta/gists{/gist_id}","starred_url":"https://api.github.com/users/wandernauta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wandernauta/subscriptions","organizations_url":"https://api.github.com/users/wandernauta/orgs","repos_url":"https://api.github.com/users/wandernauta/repos","events_url":"https://api.github.com/users/wandernauta/events{/privacy}","received_events_url":"https://api.github.com/users/wandernauta/received_events","type":"User","site_admin":false},"repo":{"id":30242992,"name":"viskell","full_name":"wandernauta/viskell","owner":{"login":"wandernauta","id":126832,"avatar_url":"https://avatars.githubusercontent.com/u/126832?v=3","gravatar_id":"","url":"https://api.github.com/users/wandernauta","html_url":"https://github.com/wandernauta","followers_url":"https://api.github.com/users/wandernauta/followers","following_url":"https://api.github.com/users/wandernauta/following{/other_user}","gists_url":"https://api.github.com/users/wandernauta/gists{/gist_id}","starred_url":"https://api.github.com/users/wandernauta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wandernauta/subscriptions","organizations_url":"https://api.github.com/users/wandernauta/orgs","repos_url":"https://api.github.com/users/wandernauta/repos","events_url":"https://api.github.com/users/wandernauta/events{/privacy}","received_events_url":"https://api.github.com/users/wandernauta/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/wandernauta/viskell","description":"Ontwerpproject.","fork":false,"url":"https://api.github.com/repos/wandernauta/viskell","forks_url":"https://api.github.com/repos/wandernauta/viskell/forks","keys_url":"https://api.github.com/repos/wandernauta/viskell/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wandernauta/viskell/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wandernauta/viskell/teams","hooks_url":"https://api.github.com/repos/wandernauta/viskell/hooks","issue_events_url":"https://api.github.com/repos/wandernauta/viskell/issues/events{/number}","events_url":"https://api.github.com/repos/wandernauta/viskell/events","assignees_url":"https://api.github.com/repos/wandernauta/viskell/assignees{/user}","branches_url":"https://api.github.com/repos/wandernauta/viskell/branches{/branch}","tags_url":"https://api.github.com/repos/wandernauta/viskell/tags","blobs_url":"https://api.github.com/repos/wandernauta/viskell/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wandernauta/viskell/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wandernauta/viskell/git/refs{/sha}","trees_url":"https://api.github.com/repos/wandernauta/viskell/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wandernauta/viskell/statuses/{sha}","languages_url":"https://api.github.com/repos/wandernauta/viskell/languages","stargazers_url":"https://api.github.com/repos/wandernauta/viskell/stargazers","contributors_url":"https://api.github.com/repos/wandernauta/viskell/contributors","subscribers_url":"https://api.github.com/repos/wandernauta/viskell/subscribers","subscription_url":"https://api.github.com/repos/wandernauta/viskell/subscription","commits_url":"https://api.github.com/repos/wandernauta/viskell/commits{/sha}","git_commits_url":"https://api.github.com/repos/wandernauta/viskell/git/commits{/sha}","comments_url":"https://api.github.com/repos/wandernauta/viskell/comments{/number}","issue_comment_url":"https://api.github.com/repos/wandernauta/viskell/issues/comments{/number}","contents_url":"https://api.github.com/repos/wandernauta/viskell/contents/{+path}","compare_url":"https://api.github.com/repos/wandernauta/viskell/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wandernauta/viskell/merges","archive_url":"https://api.github.com/repos/wandernauta/viskell/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wandernauta/viskell/downloads","issues_url":"https://api.github.com/repos/wandernauta/viskell/issues{/number}","pulls_url":"https://api.github.com/repos/wandernauta/viskell/pulls{/number}","milestones_url":"https://api.github.com/repos/wandernauta/viskell/milestones{/number}","notifications_url":"https://api.github.com/repos/wandernauta/viskell/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wandernauta/viskell/labels{/name}","releases_url":"https://api.github.com/repos/wandernauta/viskell/releases{/id}","created_at":"2015-02-03T13:04:49Z","updated_at":"2015-06-09T07:28:51Z","pushed_at":"2015-07-06T05:52:52Z","git_url":"git://github.com/wandernauta/viskell.git","ssh_url":"git@github.com:wandernauta/viskell.git","clone_url":"https://github.com/wandernauta/viskell.git","svn_url":"https://github.com/wandernauta/viskell","homepage":null,"size":6621,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":7,"forks":0,"open_issues":7,"watchers":0,"default_branch":"master"}},"base":{"label":"wandernauta:master","ref":"master","sha":"b0340309573607ebe144b0367ab3b66dbd38e4c3","user":{"login":"wandernauta","id":126832,"avatar_url":"https://avatars.githubusercontent.com/u/126832?v=3","gravatar_id":"","url":"https://api.github.com/users/wandernauta","html_url":"https://github.com/wandernauta","followers_url":"https://api.github.com/users/wandernauta/followers","following_url":"https://api.github.com/users/wandernauta/following{/other_user}","gists_url":"https://api.github.com/users/wandernauta/gists{/gist_id}","starred_url":"https://api.github.com/users/wandernauta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wandernauta/subscriptions","organizations_url":"https://api.github.com/users/wandernauta/orgs","repos_url":"https://api.github.com/users/wandernauta/repos","events_url":"https://api.github.com/users/wandernauta/events{/privacy}","received_events_url":"https://api.github.com/users/wandernauta/received_events","type":"User","site_admin":false},"repo":{"id":30242992,"name":"viskell","full_name":"wandernauta/viskell","owner":{"login":"wandernauta","id":126832,"avatar_url":"https://avatars.githubusercontent.com/u/126832?v=3","gravatar_id":"","url":"https://api.github.com/users/wandernauta","html_url":"https://github.com/wandernauta","followers_url":"https://api.github.com/users/wandernauta/followers","following_url":"https://api.github.com/users/wandernauta/following{/other_user}","gists_url":"https://api.github.com/users/wandernauta/gists{/gist_id}","starred_url":"https://api.github.com/users/wandernauta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wandernauta/subscriptions","organizations_url":"https://api.github.com/users/wandernauta/orgs","repos_url":"https://api.github.com/users/wandernauta/repos","events_url":"https://api.github.com/users/wandernauta/events{/privacy}","received_events_url":"https://api.github.com/users/wandernauta/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/wandernauta/viskell","description":"Ontwerpproject.","fork":false,"url":"https://api.github.com/repos/wandernauta/viskell","forks_url":"https://api.github.com/repos/wandernauta/viskell/forks","keys_url":"https://api.github.com/repos/wandernauta/viskell/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wandernauta/viskell/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wandernauta/viskell/teams","hooks_url":"https://api.github.com/repos/wandernauta/viskell/hooks","issue_events_url":"https://api.github.com/repos/wandernauta/viskell/issues/events{/number}","events_url":"https://api.github.com/repos/wandernauta/viskell/events","assignees_url":"https://api.github.com/repos/wandernauta/viskell/assignees{/user}","branches_url":"https://api.github.com/repos/wandernauta/viskell/branches{/branch}","tags_url":"https://api.github.com/repos/wandernauta/viskell/tags","blobs_url":"https://api.github.com/repos/wandernauta/viskell/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wandernauta/viskell/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wandernauta/viskell/git/refs{/sha}","trees_url":"https://api.github.com/repos/wandernauta/viskell/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wandernauta/viskell/statuses/{sha}","languages_url":"https://api.github.com/repos/wandernauta/viskell/languages","stargazers_url":"https://api.github.com/repos/wandernauta/viskell/stargazers","contributors_url":"https://api.github.com/repos/wandernauta/viskell/contributors","subscribers_url":"https://api.github.com/repos/wandernauta/viskell/subscribers","subscription_url":"https://api.github.com/repos/wandernauta/viskell/subscription","commits_url":"https://api.github.com/repos/wandernauta/viskell/commits{/sha}","git_commits_url":"https://api.github.com/repos/wandernauta/viskell/git/commits{/sha}","comments_url":"https://api.github.com/repos/wandernauta/viskell/comments{/number}","issue_comment_url":"https://api.github.com/repos/wandernauta/viskell/issues/comments{/number}","contents_url":"https://api.github.com/repos/wandernauta/viskell/contents/{+path}","compare_url":"https://api.github.com/repos/wandernauta/viskell/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wandernauta/viskell/merges","archive_url":"https://api.github.com/repos/wandernauta/viskell/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wandernauta/viskell/downloads","issues_url":"https://api.github.com/repos/wandernauta/viskell/issues{/number}","pulls_url":"https://api.github.com/repos/wandernauta/viskell/pulls{/number}","milestones_url":"https://api.github.com/repos/wandernauta/viskell/milestones{/number}","notifications_url":"https://api.github.com/repos/wandernauta/viskell/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wandernauta/viskell/labels{/name}","releases_url":"https://api.github.com/repos/wandernauta/viskell/releases{/id}","created_at":"2015-02-03T13:04:49Z","updated_at":"2015-06-09T07:28:51Z","pushed_at":"2015-07-06T05:52:52Z","git_url":"git://github.com/wandernauta/viskell.git","ssh_url":"git@github.com:wandernauta/viskell.git","clone_url":"https://github.com/wandernauta/viskell.git","svn_url":"https://github.com/wandernauta/viskell","homepage":null,"size":6621,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":7,"forks":0,"open_issues":7,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/123"},"html":{"href":"https://github.com/wandernauta/viskell/pull/123"},"issue":{"href":"https://api.github.com/repos/wandernauta/viskell/issues/123"},"comments":{"href":"https://api.github.com/repos/wandernauta/viskell/issues/123/comments"},"review_comments":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/123/comments"},"review_comment":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/123/commits"},"statuses":{"href":"https://api.github.com/repos/wandernauta/viskell/statuses/782043f02a0f8e594e2bc1c86d6138308ffa423a"}}}}