Skip to content

Commit

Permalink
Fixed links not being opened in browser for attribute columns
Browse files Browse the repository at this point in the history
  • Loading branch information
buchen committed Jun 26, 2022
1 parent ae47b46 commit d8bedab
Showing 1 changed file with 16 additions and 13 deletions.
Expand Up @@ -18,6 +18,7 @@
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.layout.TreeColumnLayout;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.ColumnPixelData;
import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.jface.viewers.TableViewer;
Expand Down Expand Up @@ -93,8 +94,6 @@ private abstract static class ViewerPolicy

void setCommonParameters(Column column, ViewerColumn viewerColumn, Integer direction)
{
viewerColumn.setLabelProvider(column.getLabelProvider().get());

if (column.getSorter() != null)
{
if (direction != null)
Expand Down Expand Up @@ -289,15 +288,18 @@ public Item create(Column column, Object option, Integer direction, int width)

layout.setColumnData(tableColumn, new ColumnPixelData(width));

CellLabelProvider labelProvider = column.getLabelProvider().get();
col.setLabelProvider(labelProvider);

setCommonParameters(column, col, direction);

if (col.getViewer().getLabelProvider() instanceof CellItemImageClickedListener)
setupImageClickedListener(col);
if (labelProvider instanceof CellItemImageClickedListener)
setupImageClickedListener(col, (CellItemImageClickedListener) labelProvider);

return tableColumn;
}

private void setupImageClickedListener(TableViewerColumn viewerColumn)
private void setupImageClickedListener(TableViewerColumn viewerColumn, CellItemImageClickedListener cellImage)
{
org.eclipse.swt.widgets.Listener listener = event -> {

Expand All @@ -313,8 +315,7 @@ private void setupImageClickedListener(TableViewerColumn viewerColumn)

Rectangle rect = tableItem.getImageBounds(columnIndex);
if (rect.contains(pt))
((CellItemImageClickedListener) viewerColumn.getViewer().getLabelProvider())
.onImageClicked(tableItem.getData());
cellImage.onImageClicked(tableItem.getData());
};

table.getTable().addListener(SWT.MouseUp, listener);
Expand Down Expand Up @@ -451,15 +452,18 @@ public Item create(Column column, Object option, Integer direction, int width)

layout.setColumnData(treeColumn, new ColumnPixelData(width));

CellLabelProvider labelProvider = column.getLabelProvider().get();
col.setLabelProvider(labelProvider);

setCommonParameters(column, col, direction);

if (col.getViewer().getLabelProvider() instanceof CellItemImageClickedListener)
setupImageClickedListener(col);
if (labelProvider instanceof CellItemImageClickedListener)
setupImageClickedListener(col, (CellItemImageClickedListener) labelProvider);

return treeColumn;
}

private void setupImageClickedListener(TreeViewerColumn viewerColumn)
private void setupImageClickedListener(TreeViewerColumn viewerColumn, CellItemImageClickedListener cellImage)
{
org.eclipse.swt.widgets.Listener listener = event -> {

Expand All @@ -474,8 +478,7 @@ private void setupImageClickedListener(TreeViewerColumn viewerColumn)

Rectangle rect = treeItem.getImageBounds(columnIndex);
if (rect.contains(pt))
((CellItemImageClickedListener) viewerColumn.getViewer().getLabelProvider())
.onImageClicked(treeItem.getData());
cellImage.onImageClicked(treeItem.getData());
};

tree.getTree().addListener(SWT.MouseUp, listener);
Expand Down Expand Up @@ -848,7 +851,7 @@ public void createColumns(boolean isEditable) // NOSONAR
{
// remember the current column in selectedColumnIndex for
// later use in the context menu

selectedColumnIndex = policy.getColumnIndex(pt);
control.setMenu(headerMenu.getMenu());
}
Expand Down

0 comments on commit d8bedab

Please sign in to comment.