private void setupName() {
		GridBagConstraints gridBagConstraints = new GridBagConstraints();

		JLabel nameLabel = new GDLabel("Name:");
		gridBagConstraints.insets = LEFT_INSETS;
		gridBagConstraints.anchor = GridBagConstraints.LINE_END;
		gridBagConstraints.fill = GridBagConstraints.NONE;
		gridBagConstraints.weightx = 0;
		gridBagConstraints.gridx = 0;
		gridBagConstraints.gridy = 1;
		infoPanel.add(nameLabel, gridBagConstraints);

		nameTextField = new GFormattedTextField(new DefaultFormatterFactory(), "");
		nameTextField.setToolTipText("Structure Name");
		nameTextField.setEditable(true);

		gridBagConstraints.insets = VERTICAL_INSETS;
		gridBagConstraints.anchor = GridBagConstraints.LINE_START;
		gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
		gridBagConstraints.weightx = 1;
		gridBagConstraints.gridx = 1;
		gridBagConstraints.gridy = 1;
		gridBagConstraints.gridwidth = 4;
		infoPanel.add(nameTextField, gridBagConstraints);

		provider.registerHelp(nameTextField, "Name");

		nameTextField.setInputVerifier(new InputVerifier() {
			@Override
			public boolean verify(JComponent input) {
				model.clearStatus();
				String newName = nameTextField.getText().trim();
				if (!DataUtilities.isValidDataTypeName(newName)) {
					if (newName.length() == 0) {
						model.setStatus("Name is required.");
					}
					else {
						model.setStatus(newName + " is not a valid name.");
					}
					return false;
				}
				if (!newName.equals(model.getOriginalDataTypeName()) &&
					model.getOriginalDataTypeManager()
							.getDataType(model.originalDataTypePath.getCategoryPath(),
								newName) != null) {
					model.setStatus("A data type named " + newName + " already exists.");
					return false;
				}
				updateEntryAcceptanceStatus();
				return true;
			}
		});

		nameTextField.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
					e.consume();
					setStatus("");
					// revert to model state when escape is hit
					setCompositeName(model.getCompositeName());
				}
			}
		});

		nameTextField.addTextEntryStatusListener(c -> provider.contextChanged());

		nameTextField.addActionListener(e -> updatedName());

		nameTextField.addFocusListener(new FocusAdapter() {
			@Override
			public void focusLost(FocusEvent e) {
				updatedName();
			}
		});
	}
Create the Info Panel that is horizontally resizable. The panel contains
the name, category, data type, size, and edit mode for the current
structure in the editor.

@return JPanel the completed composite data type information panel
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompEditorPanel.java