String id = model.getKey(component);
TableCellSettings cellSettings = model.getCellSettings(id);
String propertyName = "EVALUATOR_" + id;
String currentValue = getViewProperties().getProperty(
propertyName, String.class);
ExtendedProperties viewProperties = getViewProperties();
if (currentValue == null) {
currentValue = "";
}
String newValue = (cellSettings.getEvaluator() == null) ? ""
: cellSettings.getEvaluator().getId();
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
LabelAbbreviations abbrevs = model.getCellLabelAbbreviations(id);
propertyName = "LABEL_ABBREVIATIONS_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = abbrevs.toString();
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
propertyName = "DECIMAL_PLACES_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = Integer.toString(cellSettings.getNumberOfDecimals());
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
propertyName = "ALIGNMENT_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = cellSettings.getAlignment().toString();
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
propertyName = "BORDER_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = cellSettings.getCellBorderState().toString();
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
propertyName = "AS_DATE_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = cellSettings.getDateFormat().toString();
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
propertyName = "FONT_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = cellSettings.getCellFont().name();
newValue = (newValue == null ? "" : newValue);
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
propertyName = "FONT_SIZE_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = String.valueOf(cellSettings.getFontSize());
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
propertyName = "FONT_COLOR_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = (cellSettings.getForegroundColor() != null ?
String.valueOf(cellSettings.getForegroundColor().getRGB()) : "");
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
propertyName = "BG_COLOR_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = (cellSettings.getBackgroundColor() != null ?
String.valueOf(cellSettings.getBackgroundColor().getRGB()) : "");
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
propertyName = "FONT_STYLE_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = String.valueOf(cellSettings.getFontStyle());
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
propertyName = "FONT_UNDERLINE_" + id;
currentValue = getViewProperties().getProperty(propertyName, String.class);
if (currentValue == null) {
currentValue = "";
}
newValue = String.valueOf(cellSettings.getTextAttributeUnderline());
if (!currentValue.equals(newValue)) {
viewProperties.setProperty(propertyName, newValue);
settingsChanged = true;
}
return settingsChanged;