@Override
	public void valueChanged(TreeSelectionEvent arg0) {
		DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();

		if (node == null) return;
		if (node.isLeaf()) {
			if (prevNode != null) {
				detectChange();
			}

			tabbedPane.removeAll();
			listOfColumns.clear();

			GridBagLayout gbl_temp = new GridBagLayout();
			gbl_temp.columnWeights = new double[] { 0, 1.0, Double.MIN_VALUE };
			gbl_temp.rowWeights = new double[] { 1.0, Double.MIN_VALUE };

			GridBagConstraints textFieldConstraints = new GridBagConstraints();
			GridBagConstraints labelConstraints = new GridBagConstraints();

			textFieldConstraints.anchor = GridBagConstraints.FIRST_LINE_START;
			textFieldConstraints.fill = GridBagConstraints.HORIZONTAL;
			textFieldConstraints.insets = new Insets(5, 0, 0, 0);
			textFieldConstraints.gridx = 1;
			textFieldConstraints.gridy = 0;
			textFieldConstraints.weightx = 1.0;
			textFieldConstraints.weightx = 1.0;
			textFieldConstraints.gridwidth = 4;

			labelConstraints.insets = new Insets(5, 0, 0, 10);
			labelConstraints.anchor = GridBagConstraints.FIRST_LINE_START;
			labelConstraints.gridx = 0;
			labelConstraints.gridy = 0;
			labelConstraints.weightx = 0.0;

			for (ModNode columnNode : xmlParser.modList.getChild(node.getParent().getParent().toString()).getChild(node.getParent().toString()).getChild(node.toString()).getChildren()) {
				if (columnNode.getName().contains("Conditions")) {
					listOfColumns.put(new JLabel(columnNode.getName()), createConditionsList(columnNode));
				} else if (columnNode.getName().contains("Properties")) {
					listOfColumns.put(new JLabel(columnNode.getName()), createItemPropsList(columnNode));
				} else {
					JTextPane columnData = new JTextPane();
					columnData.setText(columnNode.getData());
					columnData.setEditable(true);
					listOfColumns.put(new JLabel(columnNode.getName()), columnData);
				}
			}

			for (JLabel label : listOfColumns.keySet()) {
				if (listOfColumns.get(label).getClass().equals(JSplitPane.class)) {
					textFieldConstraints.fill = GridBagConstraints.BOTH;
				} else {
					textFieldConstraints.fill = GridBagConstraints.NONE;
				}

				JPanel tempPanel = new JPanel(gbl_temp);

				tempPanel.add(label, labelConstraints);
				tempPanel.add(listOfColumns.get(label), textFieldConstraints);

				tabbedPane.addTab(label.getText(), tempPanel);
			}
			tabbedPane.updateUI();
			prevNode = node;
		}
	}