| @@ -21,17 +21,22 @@ import org.eclipse.jface.viewers.ArrayContentProvider; | |||||
| import org.eclipse.jface.viewers.ColumnLabelProvider; | import org.eclipse.jface.viewers.ColumnLabelProvider; | ||||
| import org.eclipse.jface.viewers.ISelectionChangedListener; | import org.eclipse.jface.viewers.ISelectionChangedListener; | ||||
| import org.eclipse.jface.viewers.IStructuredSelection; | import org.eclipse.jface.viewers.IStructuredSelection; | ||||
| import org.eclipse.jface.viewers.OwnerDrawLabelProvider; | |||||
| import org.eclipse.jface.viewers.SelectionChangedEvent; | import org.eclipse.jface.viewers.SelectionChangedEvent; | ||||
| import org.eclipse.jface.viewers.TableViewer; | import org.eclipse.jface.viewers.TableViewer; | ||||
| import org.eclipse.jface.viewers.TableViewerColumn; | import org.eclipse.jface.viewers.TableViewerColumn; | ||||
| import org.eclipse.swt.SWT; | import org.eclipse.swt.SWT; | ||||
| import org.eclipse.swt.events.MouseAdapter; | import org.eclipse.swt.events.MouseAdapter; | ||||
| import org.eclipse.swt.events.MouseEvent; | import org.eclipse.swt.events.MouseEvent; | ||||
| import org.eclipse.swt.graphics.GC; | |||||
| import org.eclipse.swt.graphics.Image; | import org.eclipse.swt.graphics.Image; | ||||
| import org.eclipse.swt.graphics.ImageData; | |||||
| import org.eclipse.swt.graphics.Rectangle; | |||||
| import org.eclipse.swt.layout.GridData; | import org.eclipse.swt.layout.GridData; | ||||
| import org.eclipse.swt.layout.GridLayout; | import org.eclipse.swt.layout.GridLayout; | ||||
| import org.eclipse.swt.widgets.Button; | import org.eclipse.swt.widgets.Button; | ||||
| import org.eclipse.swt.widgets.Composite; | import org.eclipse.swt.widgets.Composite; | ||||
| import org.eclipse.swt.widgets.Event; | |||||
| import org.eclipse.swt.widgets.Label; | import org.eclipse.swt.widgets.Label; | ||||
| import org.eclipse.swt.widgets.Table; | import org.eclipse.swt.widgets.Table; | ||||
| import org.eclipse.swt.widgets.TableColumn; | import org.eclipse.swt.widgets.TableColumn; | ||||
| @@ -44,19 +49,6 @@ import xyz.veronie.bgg.types.EventConstants; | |||||
| import xyz.veronie.bgg.ui.helpers.BatColors; | import xyz.veronie.bgg.ui.helpers.BatColors; | ||||
| import xyz.veronie.bgg.ui.helpers.BatLayouts; | import xyz.veronie.bgg.ui.helpers.BatLayouts; | ||||
| // TODO: import result.txt from bggtool | |||||
| // TODO: image sizes in result table | |||||
| // TODO: fix encoding | |||||
| // TODO: fetch details from BGG | |||||
| // TODO: export to results.txt format | |||||
| // TODO: generate PDF with nandeck | |||||
| // TODO: handle thing list overwrite | |||||
| // TODO: Display selection details on game | |||||
| // TODO: cache family/geeklist descriptions | |||||
| // TODO: allow different screen scalings | |||||
| // TODO: handle existing name | |||||
| @SuppressWarnings("restriction") | @SuppressWarnings("restriction") | ||||
| public class BatMain { | public class BatMain { | ||||
| private static final String UNNAMED_LIST = "(unsaved list)"; | private static final String UNNAMED_LIST = "(unsaved list)"; | ||||
| @@ -231,19 +223,49 @@ public class BatMain { | |||||
| TableViewerColumn colThumbnail = createTableViewerColumn(Thing.ThumbHeader, 120, 0); | TableViewerColumn colThumbnail = createTableViewerColumn(Thing.ThumbHeader, 120, 0); | ||||
| colThumbnail.setLabelProvider(new ColumnLabelProvider() { | |||||
| @Override | |||||
| public Image getImage(Object element) { | |||||
| Thing t = (Thing) element; | |||||
| // colThumbnail.setLabelProvider(new ColumnLabelProvider() { | |||||
| // @Override | |||||
| // public Image getImage(Object element) { | |||||
| // Thing t = (Thing) element; | |||||
| // Image img = t.getThumbnail(); | |||||
| // return img; | |||||
| // } | |||||
| // | |||||
| // @Override | |||||
| // public String getText(Object element) { | |||||
| // return ""; | |||||
| // } | |||||
| // | |||||
| // }); | |||||
| colThumbnail.setLabelProvider(new OwnerDrawLabelProvider() { | |||||
| @Override | |||||
| protected void measure(Event event, Object element) { | |||||
| Thing t = (Thing) element; | |||||
| Image img = t.getThumbnail(); | Image img = t.getThumbnail(); | ||||
| return img; | |||||
| } | |||||
| @Override | |||||
| public String getText(Object element) { | |||||
| return ""; | |||||
| } | |||||
| Rectangle rectangle = img.getBounds(); | |||||
| event.setBounds(new Rectangle( | |||||
| event.x, | |||||
| event.y, | |||||
| rectangle.width/2, | |||||
| rectangle.height/2)); | |||||
| } | |||||
| @Override | |||||
| protected void paint(Event event, Object element) { | |||||
| Thing t = (Thing) element; | |||||
| Image img = t.getThumbnail(); | |||||
| final int width = img.getBounds().width; | |||||
| final int height = img.getBounds().height; | |||||
| final Image scaled050 = new Image(event.display, (int)(width*0.5),(int)(height*0.5)); | |||||
| GC gc = new GC(scaled050); | |||||
| gc.drawImage(img, 0, 0, width, height, 0, 0, (int)(width*0.5), (int)(height*0.5)); | |||||
| gc.dispose(); | |||||
| event.gc.drawImage(scaled050, event.x, event.y); | |||||
| } | |||||
| }); | }); | ||||
| TableViewerColumn colName = createTableViewerColumn(Thing.NameHeader, 400, 1); | TableViewerColumn colName = createTableViewerColumn(Thing.NameHeader, 400, 1); | ||||