private void addProperty(PropertyDescriptor propertyDescriptor,
			JComponent editor, GridBagLayout grid) {
		String text = propertyDescriptor.getDisplayName();
		String newText = "";

		for (int i = 0; i < text.length(); i++) {
			char c = text.charAt(i);

			if (((c >= 'A') && (c <= 'Z')) || (i == 0)) {
				if (i == 0) {
					c += ('A' - 'a');
				}

				newText += (" " + c);
			} else {
				newText += c;
			}
		}

		JLabel label = new JLabel(newText + ": ", null, JLabel.RIGHT);
		GridBagConstraints c = new GridBagConstraints();
		c.weightx = 1.0;
		c.fill = GridBagConstraints.BOTH;
		grid.setConstraints(label, c);
		propertyPanel.add(label);
		c.gridwidth = GridBagConstraints.REMAINDER;
		grid.setConstraints(editor, c);
		propertyPanel.add(editor);

		JPanel blankLine = new JPanel() {
			private static final long serialVersionUID = 4514530330521503732L;

			public Dimension getPreferredSize() {
				return new Dimension(10, 2);
			}
		};
		grid.setConstraints(blankLine, c);
		propertyPanel.add(blankLine);
	}