@Override
		public Component getTableCellRendererComponent(GTableCellRenderingData data) {

			JComponent renderer = (JComponent) super.getTableCellRendererComponent(data);

			Object value = data.getValue();
			JTable table = data.getTable();
			int row = data.getRowViewIndex();
			int column = data.getColumnViewIndex();

			// set the tool tips
			String columnName = table.getColumnName(column);
			if (STRUCTURE_COLUMN_NAME.equals(columnName)) {
				StructureWrapper wrapper = (StructureWrapper) table.getValueAt(row, 0);
				if (wrapper != null) {
					Structure structure = wrapper.getStructure();
					renderer.setToolTipText(ToolTipUtils.getToolTipText(structure));
				}
			}
			else if (CATEGORY_COLUMN_NAME.equals(columnName)) {
				if (value != null) {
					renderer.setToolTipText(value.toString());
				}
			}

			return renderer;
		}
Shows a dialog that allows the user to create a new structure.
<p>
This method expects that {@code program} and {@code structure} be
non-null.

@param  program The current program which will be used to obtain current
        structures in the system.
@param  structure The new structure shell that will be used to find
        matching structures in memory.
@return The new structure that will be added to memory.  This will be
        a new structure with a new name, or an existing structure.
@throws NullPointerException if either of the parameters are null.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/data/CreateStructureDialog.java