Skip to content
Snippets Groups Projects
Commit 9b79a691 authored by buczekp's avatar buczekp
Browse files

[LMS-1362] changed automagical column names and fixed problems with link renderers

SVN: 14871
parent c07d6ab6
No related branches found
No related tags found
No related merge requests found
...@@ -51,24 +51,21 @@ public class LinkRenderer ...@@ -51,24 +51,21 @@ public class LinkRenderer
}; };
} }
public static GridCellRenderer<BaseEntityModel<?>> createLinkRenderer(final String text, public static GridCellRenderer<BaseEntityModel<?>> createLinkRenderer(final String text)
final boolean openInNewWindow)
{ {
return new GridCellRenderer<BaseEntityModel<?>>() return new GridCellRenderer<BaseEntityModel<?>>()
{ {
public Object render(BaseEntityModel<?> model, String property, ColumnData config, public Object render(BaseEntityModel<?> model, String property, ColumnData config,
int rowIndex, int colIndex, ListStore<BaseEntityModel<?>> store, int rowIndex, int colIndex, ListStore<BaseEntityModel<?>> store,
Grid<BaseEntityModel<?>> grid) Grid<BaseEntityModel<?>> grid)
{ {
String originalValue = String.valueOf(model.get(property)); return LinkRenderer.renderAsLinkWithAnchor(text);
return LinkRenderer
.renderAsLinkWithAnchor(text, originalValue, openInNewWindow);
} }
}; };
} }
public static GridCellRenderer<BaseEntityModel<?>> createExternalLinkRenderer() public static GridCellRenderer<BaseEntityModel<?>> createExternalLinkRenderer(
final String overridenLinkTextOrNull)
{ {
return new GridCellRenderer<BaseEntityModel<?>>() return new GridCellRenderer<BaseEntityModel<?>>()
{ {
...@@ -77,12 +74,20 @@ public class LinkRenderer ...@@ -77,12 +74,20 @@ public class LinkRenderer
int rowIndex, int colIndex, ListStore<BaseEntityModel<?>> store, int rowIndex, int colIndex, ListStore<BaseEntityModel<?>> store,
Grid<BaseEntityModel<?>> grid) Grid<BaseEntityModel<?>> grid)
{ {
return LinkRenderer.renderAsLinkWithAnchor(model.get(property).toString(), String originalValue = String.valueOf(model.get(property));
model.get(property).toString(), true); String linkText =
overridenLinkTextOrNull != null ? overridenLinkTextOrNull
: originalValue;
return LinkRenderer.renderAsLinkWithAnchor(linkText, originalValue, true);
} }
}; };
} }
public static GridCellRenderer<BaseEntityModel<?>> createExternalLinkRenderer()
{
return createExternalLinkRenderer(null);
}
/** renders a div witch looks like an anchor (hand cursor is on div - block) */ /** renders a div witch looks like an anchor (hand cursor is on div - block) */
public static String renderAsLink(final String message) public static String renderAsLink(final String message)
{ {
......
...@@ -242,8 +242,8 @@ public abstract class AbstractEntityBrowserGrid<T extends IEntityPropertiesHolde ...@@ -242,8 +242,8 @@ public abstract class AbstractEntityBrowserGrid<T extends IEntityPropertiesHolde
protected final GridCellRenderer<BaseEntityModel<?>> createShowDetailsLinkCellRenderer() protected final GridCellRenderer<BaseEntityModel<?>> createShowDetailsLinkCellRenderer()
{ {
return LinkRenderer.createLinkRenderer(viewContext return LinkRenderer.createExternalLinkRenderer(viewContext
.getMessage(Dict.SHOW_DETAILS_LINK_TEXT_VALUE), true); .getMessage(Dict.SHOW_DETAILS_LINK_TEXT_VALUE));
} }
......
...@@ -256,7 +256,7 @@ public class ReportGrid extends AbstractBrowserGrid<TableModelRow, BaseEntityMod ...@@ -256,7 +256,7 @@ public class ReportGrid extends AbstractBrowserGrid<TableModelRow, BaseEntityMod
EntityKind entityKind) EntityKind entityKind)
{ {
return LinkRenderer.createLinkRenderer(viewContext.getMessage( return LinkRenderer.createLinkRenderer(viewContext.getMessage(
Dict.SHOW_ENTITY_DETAILS_LINK_TEXT_TEMPLATE, entityKind.getDescription()), false); Dict.SHOW_ENTITY_DETAILS_LINK_TEXT_TEMPLATE, entityKind.getDescription()));
} }
private void showEntityViewer(EntityKind entityKind, String permId) private void showEntityViewer(EntityKind entityKind, String permId)
......
...@@ -70,6 +70,12 @@ class DAO extends SimpleJdbcDaoSupport implements IDAO ...@@ -70,6 +70,12 @@ class DAO extends SimpleJdbcDaoSupport implements IDAO
return entityKindByColumnName.get(columnName.toUpperCase()); return entityKindByColumnName.get(columnName.toUpperCase());
} }
private static String removeEntityColumnNameSuffix(String columnName)
{
assert columnName.toUpperCase().endsWith(ENTITY_COLUMN_NAME_SUFFIX);
return columnName.substring(0, columnName.length() - ENTITY_COLUMN_NAME_SUFFIX.length());
}
private static DataTypeCode getDataTypeCode(int sqlType) private static DataTypeCode getDataTypeCode(int sqlType)
{ {
if (isInteger(sqlType)) if (isInteger(sqlType))
...@@ -120,10 +126,15 @@ class DAO extends SimpleJdbcDaoSupport implements IDAO ...@@ -120,10 +126,15 @@ class DAO extends SimpleJdbcDaoSupport implements IDAO
for (int i = 1; i <= columnCount; i++) for (int i = 1; i <= columnCount; i++)
{ {
String columnName = JdbcUtils.lookupColumnName(metaData, i); String columnName = JdbcUtils.lookupColumnName(metaData, i);
EntityKind entityKindOrNull = tryGetEntityKind(columnName);
if (entityKindOrNull != null)
{
columnName = removeEntityColumnNameSuffix(columnName);
}
TableModelColumnHeader header = TableModelColumnHeader header =
new TableModelColumnHeader(columnName, i - 1); new TableModelColumnHeader(columnName, i - 1);
header.setDataType(getDataTypeCode(metaData.getColumnType(i))); header.setDataType(getDataTypeCode(metaData.getColumnType(i)));
header.setEntityKind(tryGetEntityKind(columnName)); header.setEntityKind(entityKindOrNull);
headers.add(header); headers.add(header);
} }
List<TableModelRow> rows = new ArrayList<TableModelRow>(); List<TableModelRow> rows = new ArrayList<TableModelRow>();
...@@ -152,6 +163,7 @@ class DAO extends SimpleJdbcDaoSupport implements IDAO ...@@ -152,6 +163,7 @@ class DAO extends SimpleJdbcDaoSupport implements IDAO
JdbcUtils.closeResultSet(resultSet); JdbcUtils.closeResultSet(resultSet);
return new TableModel(headers, rows); return new TableModel(headers, rows);
} }
}; };
return (TableModel) getJdbcTemplate().execute( return (TableModel) getJdbcTemplate().execute(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment