{"action":"created","comment":{"url":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/comments/49934498","id":49934498,"diff_hunk":"@@ -0,0 +1,390 @@\n+package jsettlers.mapcreator.main.window;\n+\n+import java.awt.BorderLayout;\n+import java.awt.Desktop;\n+import java.awt.Image;\n+import java.awt.event.ActionEvent;\n+import java.awt.event.WindowAdapter;\n+import java.awt.event.WindowEvent;\n+import java.beans.PropertyChangeEvent;\n+import java.beans.PropertyChangeListener;\n+import java.io.IOException;\n+import java.net.URI;\n+import java.net.URISyntaxException;\n+import java.net.URL;\n+import java.util.Properties;\n+\n+import javax.swing.AbstractAction;\n+import javax.swing.Action;\n+import javax.swing.ActionMap;\n+import javax.swing.ImageIcon;\n+import javax.swing.JButton;\n+import javax.swing.JCheckBoxMenuItem;\n+import javax.swing.JComponent;\n+import javax.swing.JFrame;\n+import javax.swing.JLabel;\n+import javax.swing.JMenu;\n+import javax.swing.JMenuBar;\n+import javax.swing.JMenuItem;\n+import javax.swing.JPanel;\n+import javax.swing.JSplitPane;\n+import javax.swing.JToolBar;\n+import javax.swing.KeyStroke;\n+import javax.swing.SwingConstants;\n+import javax.swing.event.ChangeEvent;\n+import javax.swing.event.ChangeListener;\n+\n+import jsettlers.exceptionhandler.ExceptionHandler;\n+import jsettlers.mapcreator.localization.EditorLabels;\n+\n+/**\n+ * Editor JFrame, Main Wndow\n+ * \n+ * @author Andreas Butti\n+ */\n+public abstract class EditorFrame extends JFrame {\n+\tprivate static final long serialVersionUID = 1L;\n+\n+\t/**\n+\t * Menu / Toolbar configuration\n+\t */\n+\tprivate Properties menuconfig = new Properties();\n+\n+\t/**\n+\t * Shortcut configuration\n+\t */\n+\tprivate Properties shortcut = new Properties();\n+\n+\t/**\n+\t * Split editor / sidebar\n+\t */\n+\tprivate JSplitPane splitter;\n+\n+\t/**\n+\t * Display icon AND text in toolbar, default display only icon and text as tooltip\n+\t */\n+\tpublic static final String DISPLAY_TEXT_IN_TOOLBAR = \"display-text-in-toolbar\";\n+\n+\t/**\n+\t * Display as Check menu\n+\t */\n+\tpublic static final String DISPLAY_CHECKBOX = \"display-checkbox\";\n+\n+\t/**\n+\t * Value of the checkbox (for DISPLAY_CHECKBOX)\n+\t */\n+\tpublic static final String CHECKBOX_VALUE = \"checkbox-value\";\n+\n+\t/**\n+\t * Logo for windows\n+\t */\n+\tpublic static final Image APP_ICON = new ImageIcon(EditorFrame.class.getResource(\"icon.png\")).getImage();\n+\n+\t/**\n+\t * Constructor\n+\t * \n+\t * @param root\n+\t *            Root panel\n+\t * @param sidebar\n+\t *            Sidebar panel\n+\t */\n+\tpublic EditorFrame(JComponent root, JComponent sidebar) {\n+\t\tsuper();\n+\t\tsetDefaultCloseOperation(DO_NOTHING_ON_CLOSE);\n+\t\tsetFilename(\"unnamed\");\n+\n+\t\tsetLayout(new BorderLayout());\n+\t\tsetIconImage(APP_ICON);\n+\n+\t\tregisterActions();\n+\n+\t\taddWindowListener(new WindowAdapter() {\n+\n+\t\t\t@Override\n+\t\t\tpublic void windowClosing(WindowEvent e) {\n+\t\t\t\tActionMap actionMap = ((JPanel) getContentPane()).getActionMap();\n+\t\t\t\tAction quitAction = actionMap.get(\"quit\");\n+\t\t\t\tquitAction.actionPerformed(new ActionEvent(this, 0, \"quit\"));\n+\t\t\t}\n+\t\t});\n+\n+\t\tthis.splitter = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, root, sidebar);\n+\t\tadd(splitter, BorderLayout.CENTER);\n+\t\tsplitter.setDividerLocation(1000);\n+\n+\t}\n+\n+\t/**\n+\t * @return Split editor / sidebar\n+\t */\n+\tpublic JSplitPane getSplitter() {\n+\t\treturn splitter;\n+\t}\n+\n+\t/**\n+\t * Initialize menubar and toolbar\n+\t */\n+\tpublic void initMenubarAndToolbar() {\n+\t\tcreateMenu();\n+\t\tcreateToolbar();\n+\t}\n+\n+\t/**\n+\t * Register actions\n+\t */\n+\tprivate void registerActions() {\n+\t\tregisterAction(\"manual\", new AbstractAction() {\n+\t\t\tprivate static final long serialVersionUID = 1L;\n+\n+\t\t\t@Override\n+\t\t\tpublic void actionPerformed(ActionEvent e) {\n+\t\t\t\ttry {\n+\t\t\t\t\tDesktop.getDesktop().browse(new URI(\"http://www.settlers-android-clone.com/the-map-editor/\"));\n+\t\t\t\t} catch (IOException | URISyntaxException e1) {\n+\t\t\t\t\tExceptionHandler.displayError(e1, \"Could not open URL\");\n+\t\t\t\t}\n+\t\t\t}\n+\t\t});\n+\t\tregisterAction(\"about\", new AbstractAction() {\n+\t\t\tprivate static final long serialVersionUID = 1L;\n+\n+\t\t\t@Override\n+\t\t\tpublic void actionPerformed(ActionEvent e) {\n+\t\t\t\tAboutDialog dlg = new AboutDialog(EditorFrame.this);\n+\t\t\t\tdlg.setVisible(true);\n+\t\t\t}\n+\t\t});\n+\t}\n+\n+\t/**\n+\t * Register a menu / toolbar action\n+\t * \n+\t * @param actionName\n+\t *            Name of the action\n+\t * @param action\n+\t *            Action to execute\n+\t */\n+\tpublic void registerAction(String actionName, Action action) {\n+\t\tActionMap actionMap = ((JPanel) this.getContentPane()).getActionMap();\n+\n+\t\t// try to load icon, if any\n+\t\tURL icon = EditorFrame.class.getResource(\"icons/\" + actionName + \".png\");\n+\t\tif (icon != null) {\n+\t\t\taction.putValue(Action.SMALL_ICON, new ImageIcon(icon));\n+\t\t}\n+\n+\t\taction.putValue(Action.NAME, EditorLabels.getLabel(\"action.\" + actionName));\n+\n+\t\tactionMap.put(actionName, action);\n+\t}\n+\n+\t/**\n+\t * Enable / disable an action\n+\t * \n+\t * @param actionName\n+\t *            Action name\n+\t * @param enable\n+\t *            enabled / disabled\n+\t */\n+\tpublic void enableAction(String actionName, boolean enable) {\n+\t\tActionMap actionMap = ((JPanel) this.getContentPane()).getActionMap();\n+\n+\t\tAction action = actionMap.get(actionName);\n+\t\tif (action == null) {\n+\t\t\tSystem.err.println(\"Could not find action \\\"\" + action + \"\\\" to enable / disable\");\n+\t\t\treturn;\n+\t\t}\n+\n+\t\taction.setEnabled(enable);\n+\t}\n+\n+\t/**\n+\t * Create the menu from menu.properties\n+\t */\n+\tprivate void createMenu() {\n+\t\ttry {\n+\t\t\tmenuconfig.load(EditorFrame.class.getResourceAsStream(\"menu.properties\"));\n+\t\t} catch (Exception e) {\n+\t\t\te.printStackTrace();\n+\t\t\tSystem.err.println(\"Could not load menu.properties\");\n+\t\t}\n+\t\ttry {\n+\t\t\tshortcut.load(EditorFrame.class.getResourceAsStream(\"shortcut.properties\"));\n+\t\t} catch (Exception e) {\n+\t\t\te.printStackTrace();\n+\t\t\tSystem.err.println(\"Could not load shortcut.properties\");\n+\t\t}\n+\n+\t\tActionMap actionMap = ((JPanel) this.getContentPane()).getActionMap();\n+\t\tJMenuBar menuBar = new JMenuBar();\n+\n+\t\tfor (String menuName : menuconfig.getProperty(\"menubar\", \"\").split(\",\")) {\n+\t\t\tmenuName = menuName.trim();\n+\t\t\tif (menuName.isEmpty()) {\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\t\t\tJMenu menu = new JMenu(EditorLabels.getLabel(\"menu.\" + menuName));\n+\n+\t\t\t// because of the open gl context\n+\t\t\tmenu.getPopupMenu().setLightWeightPopupEnabled(false);\n+\n+\t\t\tfor (String menuAction : menuconfig.getProperty(\"menu.\" + menuName, \"\").split(\",\")) {\n+\t\t\t\tmenuAction = menuAction.trim();\n+\t\t\t\tif (menuAction.isEmpty()) {\n+\t\t\t\t\tcontinue;\n+\t\t\t\t}\n+\n+\t\t\t\tif (\"---\".equals(menuAction)) {\n+\t\t\t\t\tmenu.addSeparator();\n+\t\t\t\t} else {\n+\t\t\t\t\tfinal Action action = actionMap.get(menuAction);\n+\t\t\t\t\tif (action == null) {\n+\t\t\t\t\t\tSystem.err.println(\"Action \\\"\" + menuAction + \"\\\" not found!\");\n+\t\t\t\t\t\tcontinue;\n+\t\t\t\t\t}\n+\n+\t\t\t\t\tfinal JMenuItem it;\n+\t\t\t\t\tBoolean displayAsCheckbox = (Boolean) action.getValue(EditorFrame.DISPLAY_CHECKBOX);\n+\t\t\t\t\tif (displayAsCheckbox != null && displayAsCheckbox) {\n+\t\t\t\t\t\tit = new JCheckBoxMenuItem();\n+\t\t\t\t\t\tit.setAction(action);\n+\t\t\t\t\t\tit.addChangeListener(new ChangeListener() {\n+\n+\t\t\t\t\t\t\t@Override\n+\t\t\t\t\t\t\tpublic void stateChanged(ChangeEvent e) {\n+\t\t\t\t\t\t\t\tObject oldValue = action.getValue(EditorFrame.CHECKBOX_VALUE);\n+\n+\t\t\t\t\t\t\t\tif (oldValue != null && oldValue.equals(it.isSelected())) {\n+\t\t\t\t\t\t\t\t\treturn;\n+\t\t\t\t\t\t\t\t}\n+\n+\t\t\t\t\t\t\t\taction.putValue(EditorFrame.CHECKBOX_VALUE, it.isSelected());\n+\t\t\t\t\t\t\t\taction.actionPerformed(new ActionEvent(it, 0, \"changed\"));\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t});\n+\t\t\t\t\t\taction.addPropertyChangeListener(new PropertyChangeListener() {\n+\n+\t\t\t\t\t\t\t@Override\n+\t\t\t\t\t\t\tpublic void propertyChange(PropertyChangeEvent evt) {\n+\t\t\t\t\t\t\t\tif (EditorFrame.CHECKBOX_VALUE.equals(evt.getPropertyName())) {\n+\t\t\t\t\t\t\t\t\tBoolean checked = (Boolean) evt.getNewValue();\n+\t\t\t\t\t\t\t\t\tif (it.isSelected() != checked) {\n+\t\t\t\t\t\t\t\t\t\tit.setSelected(checked);\n+\t\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t});\n+\t\t\t\t\t} else {\n+\t\t\t\t\t\tit = menu.add(action);\n+\t\t\t\t\t}","path":"jsettlers.mapcreator/src/jsettlers/mapcreator/main/window/EditorFrame.java","position":279,"original_position":279,"commit_id":"ad35c500934e765a30ac516a1c53dc9d89fcf9a6","original_commit_id":"ad35c500934e765a30ac516a1c53dc9d89fcf9a6","user":{"login":"michaelzangl","id":5981823,"avatar_url":"https://avatars.githubusercontent.com/u/5981823?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelzangl","html_url":"https://github.com/michaelzangl","followers_url":"https://api.github.com/users/michaelzangl/followers","following_url":"https://api.github.com/users/michaelzangl/following{/other_user}","gists_url":"https://api.github.com/users/michaelzangl/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelzangl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelzangl/subscriptions","organizations_url":"https://api.github.com/users/michaelzangl/orgs","repos_url":"https://api.github.com/users/michaelzangl/repos","events_url":"https://api.github.com/users/michaelzangl/events{/privacy}","received_events_url":"https://api.github.com/users/michaelzangl/received_events","type":"User","site_admin":false},"body":"---end---\r\nCan you move this to a new method?","created_at":"2016-01-16T17:19:36Z","updated_at":"2016-01-16T17:19:36Z","html_url":"https://github.com/jsettlers/settlers-remake/pull/272#discussion_r49934498","pull_request_url":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/272","_links":{"self":{"href":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/comments/49934498"},"html":{"href":"https://github.com/jsettlers/settlers-remake/pull/272#discussion_r49934498"},"pull_request":{"href":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/272"}}},"pull_request":{"url":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/272","id":55543879,"html_url":"https://github.com/jsettlers/settlers-remake/pull/272","diff_url":"https://github.com/jsettlers/settlers-remake/pull/272.diff","patch_url":"https://github.com/jsettlers/settlers-remake/pull/272.patch","issue_url":"https://api.github.com/repos/jsettlers/settlers-remake/issues/272","number":272,"state":"open","locked":false,"title":"Enhancement new Mapeditor UI (follow up of #258)","user":{"login":"andreas-eberle","id":9267365,"avatar_url":"https://avatars.githubusercontent.com/u/9267365?v=3","gravatar_id":"","url":"https://api.github.com/users/andreas-eberle","html_url":"https://github.com/andreas-eberle","followers_url":"https://api.github.com/users/andreas-eberle/followers","following_url":"https://api.github.com/users/andreas-eberle/following{/other_user}","gists_url":"https://api.github.com/users/andreas-eberle/gists{/gist_id}","starred_url":"https://api.github.com/users/andreas-eberle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andreas-eberle/subscriptions","organizations_url":"https://api.github.com/users/andreas-eberle/orgs","repos_url":"https://api.github.com/users/andreas-eberle/repos","events_url":"https://api.github.com/users/andreas-eberle/events{/privacy}","received_events_url":"https://api.github.com/users/andreas-eberle/received_events","type":"User","site_admin":false},"body":"This PR is the follow up PR of #258.","created_at":"2016-01-09T14:54:15Z","updated_at":"2016-01-16T17:19:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"304dc84285c0a1abf07779acb303643a9b0b75b9","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/272/commits","review_comments_url":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/272/comments","review_comment_url":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jsettlers/settlers-remake/issues/272/comments","statuses_url":"https://api.github.com/repos/jsettlers/settlers-remake/statuses/ad35c500934e765a30ac516a1c53dc9d89fcf9a6","head":{"label":"jsettlers:enhancement-new-mapeditor-ui","ref":"enhancement-new-mapeditor-ui","sha":"ad35c500934e765a30ac516a1c53dc9d89fcf9a6","user":{"login":"jsettlers","id":10380489,"avatar_url":"https://avatars.githubusercontent.com/u/10380489?v=3","gravatar_id":"","url":"https://api.github.com/users/jsettlers","html_url":"https://github.com/jsettlers","followers_url":"https://api.github.com/users/jsettlers/followers","following_url":"https://api.github.com/users/jsettlers/following{/other_user}","gists_url":"https://api.github.com/users/jsettlers/gists{/gist_id}","starred_url":"https://api.github.com/users/jsettlers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsettlers/subscriptions","organizations_url":"https://api.github.com/users/jsettlers/orgs","repos_url":"https://api.github.com/users/jsettlers/repos","events_url":"https://api.github.com/users/jsettlers/events{/privacy}","received_events_url":"https://api.github.com/users/jsettlers/received_events","type":"Organization","site_admin":false},"repo":{"id":25301488,"name":"settlers-remake","full_name":"jsettlers/settlers-remake","owner":{"login":"jsettlers","id":10380489,"avatar_url":"https://avatars.githubusercontent.com/u/10380489?v=3","gravatar_id":"","url":"https://api.github.com/users/jsettlers","html_url":"https://github.com/jsettlers","followers_url":"https://api.github.com/users/jsettlers/followers","following_url":"https://api.github.com/users/jsettlers/following{/other_user}","gists_url":"https://api.github.com/users/jsettlers/gists{/gist_id}","starred_url":"https://api.github.com/users/jsettlers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsettlers/subscriptions","organizations_url":"https://api.github.com/users/jsettlers/orgs","repos_url":"https://api.github.com/users/jsettlers/repos","events_url":"https://api.github.com/users/jsettlers/events{/privacy}","received_events_url":"https://api.github.com/users/jsettlers/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jsettlers/settlers-remake","description":"A Remake of \"The Settlers III\" for Windows, Linux, Mac and Android","fork":false,"url":"https://api.github.com/repos/jsettlers/settlers-remake","forks_url":"https://api.github.com/repos/jsettlers/settlers-remake/forks","keys_url":"https://api.github.com/repos/jsettlers/settlers-remake/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jsettlers/settlers-remake/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jsettlers/settlers-remake/teams","hooks_url":"https://api.github.com/repos/jsettlers/settlers-remake/hooks","issue_events_url":"https://api.github.com/repos/jsettlers/settlers-remake/issues/events{/number}","events_url":"https://api.github.com/repos/jsettlers/settlers-remake/events","assignees_url":"https://api.github.com/repos/jsettlers/settlers-remake/assignees{/user}","branches_url":"https://api.github.com/repos/jsettlers/settlers-remake/branches{/branch}","tags_url":"https://api.github.com/repos/jsettlers/settlers-remake/tags","blobs_url":"https://api.github.com/repos/jsettlers/settlers-remake/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jsettlers/settlers-remake/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jsettlers/settlers-remake/git/refs{/sha}","trees_url":"https://api.github.com/repos/jsettlers/settlers-remake/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jsettlers/settlers-remake/statuses/{sha}","languages_url":"https://api.github.com/repos/jsettlers/settlers-remake/languages","stargazers_url":"https://api.github.com/repos/jsettlers/settlers-remake/stargazers","contributors_url":"https://api.github.com/repos/jsettlers/settlers-remake/contributors","subscribers_url":"https://api.github.com/repos/jsettlers/settlers-remake/subscribers","subscription_url":"https://api.github.com/repos/jsettlers/settlers-remake/subscription","commits_url":"https://api.github.com/repos/jsettlers/settlers-remake/commits{/sha}","git_commits_url":"https://api.github.com/repos/jsettlers/settlers-remake/git/commits{/sha}","comments_url":"https://api.github.com/repos/jsettlers/settlers-remake/comments{/number}","issue_comment_url":"https://api.github.com/repos/jsettlers/settlers-remake/issues/comments{/number}","contents_url":"https://api.github.com/repos/jsettlers/settlers-remake/contents/{+path}","compare_url":"https://api.github.com/repos/jsettlers/settlers-remake/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jsettlers/settlers-remake/merges","archive_url":"https://api.github.com/repos/jsettlers/settlers-remake/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jsettlers/settlers-remake/downloads","issues_url":"https://api.github.com/repos/jsettlers/settlers-remake/issues{/number}","pulls_url":"https://api.github.com/repos/jsettlers/settlers-remake/pulls{/number}","milestones_url":"https://api.github.com/repos/jsettlers/settlers-remake/milestones{/number}","notifications_url":"https://api.github.com/repos/jsettlers/settlers-remake/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jsettlers/settlers-remake/labels{/name}","releases_url":"https://api.github.com/repos/jsettlers/settlers-remake/releases{/id}","created_at":"2014-10-16T12:41:40Z","updated_at":"2016-01-10T17:56:46Z","pushed_at":"2016-01-16T14:23:04Z","git_url":"git://github.com/jsettlers/settlers-remake.git","ssh_url":"git@github.com:jsettlers/settlers-remake.git","clone_url":"https://github.com/jsettlers/settlers-remake.git","svn_url":"https://github.com/jsettlers/settlers-remake","homepage":"http://www.settlers-android-clone.com","size":281193,"stargazers_count":77,"watchers_count":77,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":32,"mirror_url":null,"open_issues_count":72,"forks":32,"open_issues":72,"watchers":77,"default_branch":"master"}},"base":{"label":"jsettlers:master","ref":"master","sha":"418f5f6eafef6a2aea03a07ceb93937ab9d1407d","user":{"login":"jsettlers","id":10380489,"avatar_url":"https://avatars.githubusercontent.com/u/10380489?v=3","gravatar_id":"","url":"https://api.github.com/users/jsettlers","html_url":"https://github.com/jsettlers","followers_url":"https://api.github.com/users/jsettlers/followers","following_url":"https://api.github.com/users/jsettlers/following{/other_user}","gists_url":"https://api.github.com/users/jsettlers/gists{/gist_id}","starred_url":"https://api.github.com/users/jsettlers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsettlers/subscriptions","organizations_url":"https://api.github.com/users/jsettlers/orgs","repos_url":"https://api.github.com/users/jsettlers/repos","events_url":"https://api.github.com/users/jsettlers/events{/privacy}","received_events_url":"https://api.github.com/users/jsettlers/received_events","type":"Organization","site_admin":false},"repo":{"id":25301488,"name":"settlers-remake","full_name":"jsettlers/settlers-remake","owner":{"login":"jsettlers","id":10380489,"avatar_url":"https://avatars.githubusercontent.com/u/10380489?v=3","gravatar_id":"","url":"https://api.github.com/users/jsettlers","html_url":"https://github.com/jsettlers","followers_url":"https://api.github.com/users/jsettlers/followers","following_url":"https://api.github.com/users/jsettlers/following{/other_user}","gists_url":"https://api.github.com/users/jsettlers/gists{/gist_id}","starred_url":"https://api.github.com/users/jsettlers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsettlers/subscriptions","organizations_url":"https://api.github.com/users/jsettlers/orgs","repos_url":"https://api.github.com/users/jsettlers/repos","events_url":"https://api.github.com/users/jsettlers/events{/privacy}","received_events_url":"https://api.github.com/users/jsettlers/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jsettlers/settlers-remake","description":"A Remake of \"The Settlers III\" for Windows, Linux, Mac and Android","fork":false,"url":"https://api.github.com/repos/jsettlers/settlers-remake","forks_url":"https://api.github.com/repos/jsettlers/settlers-remake/forks","keys_url":"https://api.github.com/repos/jsettlers/settlers-remake/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jsettlers/settlers-remake/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jsettlers/settlers-remake/teams","hooks_url":"https://api.github.com/repos/jsettlers/settlers-remake/hooks","issue_events_url":"https://api.github.com/repos/jsettlers/settlers-remake/issues/events{/number}","events_url":"https://api.github.com/repos/jsettlers/settlers-remake/events","assignees_url":"https://api.github.com/repos/jsettlers/settlers-remake/assignees{/user}","branches_url":"https://api.github.com/repos/jsettlers/settlers-remake/branches{/branch}","tags_url":"https://api.github.com/repos/jsettlers/settlers-remake/tags","blobs_url":"https://api.github.com/repos/jsettlers/settlers-remake/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jsettlers/settlers-remake/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jsettlers/settlers-remake/git/refs{/sha}","trees_url":"https://api.github.com/repos/jsettlers/settlers-remake/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jsettlers/settlers-remake/statuses/{sha}","languages_url":"https://api.github.com/repos/jsettlers/settlers-remake/languages","stargazers_url":"https://api.github.com/repos/jsettlers/settlers-remake/stargazers","contributors_url":"https://api.github.com/repos/jsettlers/settlers-remake/contributors","subscribers_url":"https://api.github.com/repos/jsettlers/settlers-remake/subscribers","subscription_url":"https://api.github.com/repos/jsettlers/settlers-remake/subscription","commits_url":"https://api.github.com/repos/jsettlers/settlers-remake/commits{/sha}","git_commits_url":"https://api.github.com/repos/jsettlers/settlers-remake/git/commits{/sha}","comments_url":"https://api.github.com/repos/jsettlers/settlers-remake/comments{/number}","issue_comment_url":"https://api.github.com/repos/jsettlers/settlers-remake/issues/comments{/number}","contents_url":"https://api.github.com/repos/jsettlers/settlers-remake/contents/{+path}","compare_url":"https://api.github.com/repos/jsettlers/settlers-remake/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jsettlers/settlers-remake/merges","archive_url":"https://api.github.com/repos/jsettlers/settlers-remake/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jsettlers/settlers-remake/downloads","issues_url":"https://api.github.com/repos/jsettlers/settlers-remake/issues{/number}","pulls_url":"https://api.github.com/repos/jsettlers/settlers-remake/pulls{/number}","milestones_url":"https://api.github.com/repos/jsettlers/settlers-remake/milestones{/number}","notifications_url":"https://api.github.com/repos/jsettlers/settlers-remake/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jsettlers/settlers-remake/labels{/name}","releases_url":"https://api.github.com/repos/jsettlers/settlers-remake/releases{/id}","created_at":"2014-10-16T12:41:40Z","updated_at":"2016-01-10T17:56:46Z","pushed_at":"2016-01-16T14:23:04Z","git_url":"git://github.com/jsettlers/settlers-remake.git","ssh_url":"git@github.com:jsettlers/settlers-remake.git","clone_url":"https://github.com/jsettlers/settlers-remake.git","svn_url":"https://github.com/jsettlers/settlers-remake","homepage":"http://www.settlers-android-clone.com","size":281193,"stargazers_count":77,"watchers_count":77,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":32,"mirror_url":null,"open_issues_count":72,"forks":32,"open_issues":72,"watchers":77,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/272"},"html":{"href":"https://github.com/jsettlers/settlers-remake/pull/272"},"issue":{"href":"https://api.github.com/repos/jsettlers/settlers-remake/issues/272"},"comments":{"href":"https://api.github.com/repos/jsettlers/settlers-remake/issues/272/comments"},"review_comments":{"href":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/272/comments"},"review_comment":{"href":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jsettlers/settlers-remake/pulls/272/commits"},"statuses":{"href":"https://api.github.com/repos/jsettlers/settlers-remake/statuses/ad35c500934e765a30ac516a1c53dc9d89fcf9a6"}}}}