@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(); } final AttributeCol52 originalColumn = (AttributeCol52) originalMetaData.getColumn(); final AttributeCol52 editedColumn = (AttributeCol52) editedMetaData.getColumn(); final List<BaseColumnFieldDiff> diffs = originalColumn.diff(editedColumn); update(originalColumn, editedColumn); final boolean isAttributeUpdated = BaseColumnFieldDiffImpl.hasChanged(AttributeCol52.FIELD_ATTRIBUTE, diffs); final boolean isHideUpdated = BaseColumnFieldDiffImpl.hasChanged(DTColumnConfig52.FIELD_HIDE_COLUMN, diffs); if (isAttributeUpdated) { clearColumnData(originalColumn); } synchroniseUpdateColumn(originalColumn); if (isAttributeUpdated) { setColumnHeader(originalColumn, originalColumn.getAttribute()); } if (isHideUpdated) { setColumnVisibility(originalColumn, originalColumn.isHideColumn()); } 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(); } final AttributeCol52 originalColumn = (AttributeCol52) originalMetaData.getColumn(); final AttributeCol52 editedColumn = (AttributeCol52) editedMetaData.getColumn(); final List<BaseColumnFieldDiff> diffs = originalColumn.diff(editedColumn); update(originalColumn, editedColumn); final boolean isAttributeUpdated = BaseColumnFieldDiffImpl.hasChanged(AttributeCol52.FIELD_ATTRIBUTE, diffs); final boolean isHideUpdated = BaseColumnFieldDiffImpl.hasChanged(DTColumnConfig52.FIELD_HIDE_COLUMN, diffs); if (isAttributeUpdated) { clearColumnData(originalColumn); } synchroniseUpdateColumn(originalColumn); if (isAttributeUpdated) { setColumnHeader(originalColumn, originalColumn.getAttribute()); } if (isHideUpdated) { setColumnVisibility(originalColumn, originalColumn.isHideColumn()); } return diffs; }
@Test public void testUpdate1() throws VetoException { final AttributeCol52 column = spy(new AttributeCol52()); column.setAttribute(RuleAttributeWidget.SALIENCE_ATTR); modelSynchronizer.appendColumn(column); final AttributeCol52 edited = new AttributeCol52(); edited.setWidth(column.getWidth()); edited.setAttribute(RuleAttributeWidget.ENABLED_ATTR); List<BaseColumnFieldDiff> diffs = modelSynchronizer.updateColumn(column, edited); assertEquals(1, diffs.size()); verify(column).diff(edited); assertEquals(1, model.getAttributeCols().size()); assertEquals(RuleAttributeWidget.ENABLED_ATTR, model.getAttributeCols().get(0).getAttribute()); assertEquals(3, uiModel.getColumns().size()); assertTrue(uiModel.getColumns().get(2) instanceof BooleanUiColumn); assertEquals(RuleAttributeWidget.ENABLED_ATTR, uiModel.getColumns().get(2).getHeaderMetaData().get(0).getTitle()); }
@Test public void testUpdate2() throws VetoException { final AttributeCol52 column = spy(new AttributeCol52()); column.setAttribute(RuleAttributeWidget.SALIENCE_ATTR); modelSynchronizer.appendColumn(column); final AttributeCol52 edited = new AttributeCol52(); edited.setWidth(column.getWidth()); edited.setAttribute(RuleAttributeWidget.SALIENCE_ATTR); edited.setHideColumn(true); List<BaseColumnFieldDiff> diffs = modelSynchronizer.updateColumn(column, edited); assertEquals(1, diffs.size()); verify(column).diff(edited); assertEquals(1, model.getAttributeCols().size()); assertEquals(RuleAttributeWidget.SALIENCE_ATTR, model.getAttributeCols().get(0).getAttribute()); assertEquals(3, uiModel.getColumns().size()); assertTrue(uiModel.getColumns().get(2) instanceof IntegerUiColumn); assertEquals(RuleAttributeWidget.SALIENCE_ATTR, uiModel.getColumns().get(2).getHeaderMetaData().get(0).getTitle()); assertEquals(false, uiModel.getColumns().get(2).isVisible()); }
column2.setDefaultValue(new DTCellValue52("default2")); List<BaseColumnFieldDiff> diff = column1.diff(column2); assertNotNull(diff); assertEquals(6, diff.size());
@Test public void getSafeHtml_Attribute() { AttributeCol52 originalColumn = new AttributeCol52(); originalColumn.setReverseOrder(false); originalColumn.setUseRowNumber(false); originalColumn.setHideColumn(false); originalColumn.setDefaultValue(new DTCellValue52("def1")); // header & attribute name of an attribute column cannot be updated in the ui originalColumn.setAttribute("attr"); originalColumn.setHeader("attr"); AttributeCol52 newColumn = new AttributeCol52(); newColumn.setReverseOrder(true); newColumn.setUseRowNumber(true); newColumn.setHideColumn(true); newColumn.setDefaultValue(new DTCellValue52("def2")); // header & attribute name of an attribute column cannot be updated in the ui newColumn.setAttribute("attr"); newColumn.setHeader("attr"); List<BaseColumnFieldDiff> diffs = originalColumn.diff(newColumn); SafeHtml result = helper.getSafeHtml(new UpdateColumnAuditLogEntry("mock user", originalColumn, newColumn, diffs)); assertEquals(getAttributeHeaderRepre(newColumn.getAttribute()) + getDiffRepre(diffs), result.asString()); }