提交 a8f8511e 编写于 作者: S serge-rider

RSV presentation model refactoring (links visibility)


Former-commit-id: 978f1e08
上级 0b395d82
......@@ -32,6 +32,7 @@ public interface IResultSetDecorator {
long FEATURE_PANELS = 4;
long FEATURE_EDIT = 8;
long FEATURE_PRESENTATIONS = 16;
long FEATURE_LINKS = 32;
long getDecoratorFeatures();
......
......@@ -25,7 +25,7 @@ public class QueryResultsDecorator extends ResultSetDecoratorBase {
@Override
public long getDecoratorFeatures() {
return FEATURE_FILTERS | FEATURE_STATUS_BAR | FEATURE_PANELS | FEATURE_PRESENTATIONS | FEATURE_EDIT;
return FEATURE_FILTERS | FEATURE_STATUS_BAR | FEATURE_PANELS | FEATURE_PRESENTATIONS | FEATURE_EDIT | FEATURE_LINKS;
}
@Override
......
......@@ -33,7 +33,7 @@ public class ReferencesResultsDecorator extends QueryResultsDecorator {
@Override
public long getDecoratorFeatures() {
return FEATURE_PRESENTATIONS;
return FEATURE_LINKS | FEATURE_PRESENTATIONS;
}
@Override
......
......@@ -1648,20 +1648,22 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe
int state = STATE_NONE;
boolean recordMode = controller.isRecordMode();
DBDAttributeBinding attr = (DBDAttributeBinding)(recordMode ? rowElement : colElement);
ResultSetRow row = (ResultSetRow)(recordMode ? colElement : rowElement);
Object value = controller.getModel().getCellValue(attr, row);
if (isShowAsCheckbox(attr)) {
state |= STATE_LINK;
} else if (!CommonUtils.isEmpty(attr.getReferrers()) && !DBUtils.isNullValue(value)) {
state |= STATE_LINK;
} else {
String strValue = cellText != null ? cellText : attr.getValueHandler().getValueDisplayString(attr, value, DBDDisplayFormat.UI);
if (strValue.contains("://")) {
try {
new URL(strValue);
state |= STATE_HYPER_LINK;
} catch (MalformedURLException e) {
// Not a hyperlink
if ((controller.getDecorator().getDecoratorFeatures() & IResultSetDecorator.FEATURE_LINKS) != 0) {
ResultSetRow row = (ResultSetRow) (recordMode ? colElement : rowElement);
Object value = controller.getModel().getCellValue(attr, row);
if (isShowAsCheckbox(attr)) {
state |= STATE_LINK;
} else if (!CommonUtils.isEmpty(attr.getReferrers()) && !DBUtils.isNullValue(value)) {
state |= STATE_LINK;
} else {
String strValue = cellText != null ? cellText : attr.getValueHandler().getValueDisplayString(attr, value, DBDDisplayFormat.UI);
if (strValue.contains("://")) {
try {
new URL(strValue);
state |= STATE_HYPER_LINK;
} catch (MalformedURLException e) {
// Not a hyperlink
}
}
}
}
......
......@@ -194,7 +194,7 @@ public class CursorViewDialog extends ValueViewDialog implements IResultSetConta
return new QueryResultsDecorator() {
@Override
public long getDecoratorFeatures() {
return FEATURE_PANELS | FEATURE_PRESENTATIONS | FEATURE_STATUS_BAR;
return FEATURE_PANELS | FEATURE_PRESENTATIONS | FEATURE_STATUS_BAR | FEATURE_LINKS;
}
};
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册