import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
+import java.util.Collection;
+import java.util.HashSet;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.util.SafeRunnable;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
private MemoryTableContentProvider provider;
private DisplaySettings displaySettings;
+ private Collection<Control> fontDependent = new HashSet<>();
+
private boolean dirty;
private final MemoryCellModifiedListener memListener;
private void createViewer(Composite parent)
{
viewer = new LazyTableViewer(parent, SWT.FULL_SELECTION | SWT.BORDER | SWT.VIRTUAL);
+ fontDependent.add(viewer.getTable());
createColumns();
Table table = viewer.getTable();
table.setHeaderVisible(true);
private void updateFont(ITheme theme)
{
- viewer.getTable().setFont(theme.getFontRegistry().get(font));
+ Font newFont = theme.getFontRegistry().get(font);
+ // TODO: This is a quick fix! Still have to figure out why the CellEditors do not get the appropriate Font on their own
+ fontDependent.forEach(c -> c.setFont(newFont));
}
private void createColumns()
return ((MemoryTableRow) element).getMemory().getDefinition().getCellWidth();
}
});
- dataCol.setEditingSupport(new MemoryCellEditingSupport(viewer, displaySettings));
+ MemoryCellEditingSupport eSup;
+ dataCol.setEditingSupport(eSup = new MemoryCellEditingSupport(viewer, displaySettings));
+ fontDependent.add(eSup.getCellEditorControl());
}
private TableViewerColumn createTableViewerColumn(String title, int width)