diff --git a/Ghidra/Features/Base/src/main/java/ghidra/plugins/importer/batch/BatchImportDialog.java b/Ghidra/Features/Base/src/main/java/ghidra/plugins/importer/batch/BatchImportDialog.java index 356b7dfc6a..1710da0e0d 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/plugins/importer/batch/BatchImportDialog.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/plugins/importer/batch/BatchImportDialog.java @@ -156,6 +156,7 @@ public class BatchImportDialog extends DialogComponentProvider { TableColumn langColumn = table.getColumnModel().getColumn(BatchImportTableModel.COLS.LANG.ordinal()); langColumn.setCellEditor(createLangColumnCellEditor()); + langColumn.setCellRenderer(createLangColumnCellRenderer()); JScrollPane scrollPane = new JScrollPane(table); @@ -478,7 +479,6 @@ public class BatchImportDialog extends DialogComponentProvider { private TableCellRenderer createFilesColumnCellRenderer() { TableCellRenderer cellRenderer = new GTableCellRenderer() { - @Override public Component getTableCellRendererComponent(GTableCellRenderingData data) { @@ -524,6 +524,30 @@ public class BatchImportDialog extends DialogComponentProvider { return cellEditor; } + private TableCellRenderer createLangColumnCellRenderer() { + TableCellRenderer cellRenderer = new GTableCellRenderer() { + { + setHTMLRenderingEnabled(true); + } + + @Override + public Component getTableCellRendererComponent(GTableCellRenderingData data) { + JLabel renderer = (JLabel) super.getTableCellRendererComponent(data); + renderer.setToolTipText("Click to set language"); + return renderer; + } + + @Override + protected String getText(Object value) { + BatchGroupLoadSpec bgls = (BatchGroupLoadSpec) value; + return (bgls != null) ? bgls.toString() + : "Click to set language"; + } + }; + + return cellRenderer; + } + private class SourcesListModel extends AbstractListModel { int prevSize = batchInfo.getUserAddedSources().size(); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/plugins/importer/batch/BatchImportTableModel.java b/Ghidra/Features/Base/src/main/java/ghidra/plugins/importer/batch/BatchImportTableModel.java index 1eeaa23660..31be182df2 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/plugins/importer/batch/BatchImportTableModel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/plugins/importer/batch/BatchImportTableModel.java @@ -23,6 +23,7 @@ import javax.swing.table.TableModel; import org.apache.commons.lang3.StringUtils; import docking.widgets.table.AbstractSortedTableModel; +import ghidra.util.Msg; /** * An adapter between {@link BatchInfo} and a {@link TableModel}. @@ -140,6 +141,8 @@ class BatchImportTableModel extends AbstractSortedTableModel { boolean newValue = (Boolean) aValue; // dont allow enable unless there is a lang chosen if (newValue == true && row.getSelectedBatchGroupLoadSpec() == null) { + Msg.showWarn(this, null, "Missing language", + "Select a language for this group before enabling"); return; }