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:
dev747368
2019-08-06 13:33:59 -04:00
parent ca6c01268e
commit 9dd36b6788
2 changed files with 28 additions and 1 deletions

View File

@@ -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();

View File

@@ -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;
}