提交 142e366c 编写于 作者: J jurgen

RSV Find/Replace update (search in EDIT formatted strings)

Former-commit-id: b7b7ac65
上级 15388175
......@@ -28,12 +28,19 @@ public interface IGridContentProvider extends IStructuredContentProvider {
public int getColumnCount();
/**
* Gets element by position
* Gets raw element value by position
* @param pos grid position
* @return element (may be null)
*/
public Object getElement(GridPos pos);
/**
* Gets element string representation. Returns string in native format
* @param pos grid position
* @return string representation (never null)
*/
public String getElementText(GridPos pos);
/**
* Updates grid column properties.
* Invoked once right after grid columns initialization.
......
......@@ -24,7 +24,6 @@ import org.eclipse.jface.text.IFindReplaceTarget;
import org.eclipse.jface.text.IFindReplaceTargetExtension;
import org.eclipse.jface.text.IFindReplaceTargetExtension3;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
......@@ -80,7 +79,7 @@ class ResultSetFindReplaceTarget implements IFindReplaceTarget, IFindReplaceTarg
if (selection == null) {
return "";
}
String value = resultSet.getSpreadsheet().getContentLabelProvider().getText(selection);
String value = resultSet.getSpreadsheet().getContentProvider().getElementText(selection);
return CommonUtils.toString(value);
}
......@@ -147,7 +146,6 @@ class ResultSetFindReplaceTarget implements IFindReplaceTarget, IFindReplaceTarg
public int findAndSelect(int offset, String findString, boolean searchForward, boolean caseSensitive, boolean wholeWord, boolean regExSearch)
{
IGridContentProvider contentProvider = resultSet.getSpreadsheet().getContentProvider();
ILabelProvider labelProvider = resultSet.getSpreadsheet().getContentLabelProvider();
ResultSetModel model = resultSet.getModel();
int rowCount = model.getRowCount();
int columnCount = model.getVisibleColumns().length;
......@@ -202,7 +200,7 @@ class ResultSetFindReplaceTarget implements IFindReplaceTarget, IFindReplaceTarg
return -1;
}
}
String cellText = labelProvider.getText(curPosition);
String cellText = contentProvider.getElementText(curPosition);
if (matchesValue(findString, findPattern, cellText, caseSensitive, wholeWord)) {
resultSet.setSelection(
new StructuredSelection(curPosition), true);
......
......@@ -2362,6 +2362,14 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
}
}
@Override
public String getElementText(GridPos pos)
{
Object value = getElement(pos);
DBDAttributeBinding column = model.getVisibleColumn(translateGridPos(pos).col);
return column.getValueHandler().getValueDisplayString(column.getAttribute(), value, DBDDisplayFormat.EDIT);
}
@Override
public void updateColumn(GridColumn column)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册