mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
GT-2370 - make batch import language selection more user-friendly
If a set of files in batch import didn't have a language set automatically, there wasn't much indication to the user how to set the language by clicking on the column.
This commit is contained in:
@@ -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()
|
||||
: "<html><font size=\"-2\" color=\"gray\">Click to set language</font>";
|
||||
}
|
||||
};
|
||||
|
||||
return cellRenderer;
|
||||
}
|
||||
|
||||
private class SourcesListModel extends AbstractListModel<String> {
|
||||
|
||||
int prevSize = batchInfo.getUserAddedSources().size();
|
||||
|
||||
@@ -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<BatchGroup> {
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user