package name.abuchen.portfolio.ui.views.columns; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import name.abuchen.portfolio.model.Adaptor; import name.abuchen.portfolio.model.Annotated; import name.abuchen.portfolio.model.Named; import name.abuchen.portfolio.ui.Images; import name.abuchen.portfolio.ui.Messages; import name.abuchen.portfolio.ui.util.viewers.Column; import name.abuchen.portfolio.ui.util.viewers.ColumnViewerSorter; import name.abuchen.portfolio.ui.util.viewers.StringEditingSupport; import name.abuchen.portfolio.util.TextUtil; public class NoteColumn extends Column { public NoteColumn() { super("note", Messages.ColumnNote, SWT.LEFT, 22); //$NON-NLS-1$ setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object e) { Annotated n = Adaptor.adapt(Annotated.class, e); if (n != null) return n.getNote(); Named n2 = Adaptor.adapt(Named.class, e); return n2 != null ? n2.getNote() : null; } @Override public Image getImage(Object e) { String note = getText(e); return note != null && note.length() > 0 ? Images.NOTE.image() : null; } @Override public String getToolTipText(Object e) { return TextUtil.wordwrap(getText(e)); } }); setSorter(ColumnViewerSorter.create(Annotated.class, "note")); //$NON-NLS-1$ new StringEditingSupport(Annotated.class, "note").attachTo(this); //$NON-NLS-1$ } }