@Override public List<BaseColumnFieldDiff> diff( BaseColumn otherColumn ) { if ( otherColumn == null ) { return null; } List<BaseColumnFieldDiff> result = super.diff( otherColumn ); LimitedEntryActionRetractFactCol52 other = (LimitedEntryActionRetractFactCol52) otherColumn; // Field: default value. if ( !BaseColumnFieldDiffImpl.isEqualOrNull( this.getValue(), other.getValue() ) ) { result.add( new BaseColumnFieldDiffImpl( FIELD_VALUE, extractDefaultValue( this.getValue() ), extractDefaultValue( other.getValue() ) ) ); } return result; }
@Override public List<BaseColumnFieldDiff> update(final ColumnMetaData originalMetaData, final ColumnMetaData editedMetaData) throws VetoException { //Check operation is supported if (!(handlesUpdate(originalMetaData) && handlesUpdate(editedMetaData))) { return Collections.emptyList(); } //Get differences between original and edited column final ActionRetractFactCol52 originalColumn = (ActionRetractFactCol52) originalMetaData.getColumn(); final ActionRetractFactCol52 editedColumn = (ActionRetractFactCol52) editedMetaData.getColumn(); final List<BaseColumnFieldDiff> diffs = originalColumn.diff(editedColumn); update(originalColumn, editedColumn); final boolean isHideUpdated = BaseColumnFieldDiffImpl.hasChanged(ActionRetractFactCol52.FIELD_HIDE_COLUMN, diffs); final boolean isHeaderUpdated = BaseColumnFieldDiffImpl.hasChanged(ActionRetractFactCol52.FIELD_HEADER, diffs); synchroniseUpdateColumn(originalColumn); if (isHideUpdated) { setColumnVisibility(originalColumn, originalColumn.isHideColumn()); } if (isHeaderUpdated) { setColumnHeader(originalColumn, originalColumn.getHeader()); } return diffs; }
@Override public List<BaseColumnFieldDiff> update(final ColumnMetaData originalMetaData, final ColumnMetaData editedMetaData) throws VetoException { //Check operation is supported if (!(handlesUpdate(originalMetaData) && handlesUpdate(editedMetaData))) { return Collections.emptyList(); } //Get differences between original and edited column final ActionRetractFactCol52 originalColumn = (ActionRetractFactCol52) originalMetaData.getColumn(); final ActionRetractFactCol52 editedColumn = (ActionRetractFactCol52) editedMetaData.getColumn(); final List<BaseColumnFieldDiff> diffs = originalColumn.diff(editedColumn); update(originalColumn, editedColumn); final boolean isHideUpdated = BaseColumnFieldDiffImpl.hasChanged(ActionRetractFactCol52.FIELD_HIDE_COLUMN, diffs); final boolean isHeaderUpdated = BaseColumnFieldDiffImpl.hasChanged(ActionRetractFactCol52.FIELD_HEADER, diffs); synchroniseUpdateColumn(originalColumn); if (isHideUpdated) { setColumnVisibility(originalColumn, originalColumn.isHideColumn()); } if (isHeaderUpdated) { setColumnHeader(originalColumn, originalColumn.getHeader()); } return diffs; }
@Test public void testUpdate() throws VetoException { final ActionRetractFactCol52 column = spy(new ActionRetractFactCol52()); column.setHeader("col1"); modelSynchronizer.appendColumn(column); final ActionRetractFactCol52 edited = new ActionRetractFactCol52(); edited.setWidth(column.getWidth()); edited.setHideColumn(true); edited.setHeader("updated"); List<BaseColumnFieldDiff> diffs = modelSynchronizer.updateColumn(column, edited); assertEquals(2, diffs.size()); verify(column).diff(edited); assertEquals(1, model.getActionCols().size()); assertEquals(3, uiModel.getColumns().size()); assertTrue(uiModel.getColumns().get(2) instanceof BoundFactUiColumn); assertEquals("updated", uiModel.getColumns().get(2).getHeaderMetaData().get(0).getTitle()); assertEquals(false, uiModel.getColumns().get(2).isVisible()); }
@Test public void getSafeHtml_ActionRetract() { ActionRetractFactCol52 originalColumn = new ActionRetractFactCol52(); originalColumn.setHeader("action1"); originalColumn.setHideColumn(false); originalColumn.setDefaultValue(new DTCellValue52("def1")); ActionRetractFactCol52 newColumn = new ActionRetractFactCol52(); newColumn.setHeader("action2"); newColumn.setHideColumn(true); newColumn.setDefaultValue(new DTCellValue52("def2")); List<BaseColumnFieldDiff> diffs = originalColumn.diff(newColumn); SafeHtml result = helper.getSafeHtml(new UpdateColumnAuditLogEntry("mock user", originalColumn, newColumn, diffs)); assertEquals(getHeaderRepre(newColumn.getHeader()) + getDiffRepre(diffs), result.asString()); }