-package org.simantics.spreadsheet.graph.synchronization;
+package org.simantics.spreadsheet.synchronization;
import java.util.Collection;
import java.util.Map;
import org.simantics.databoard.binding.mutable.Variant;
import org.simantics.datatypes.literal.Font;
import org.simantics.datatypes.literal.RGB;
-import org.simantics.spreadsheet.graph.SpreadsheetBook;
-import org.simantics.spreadsheet.graph.SpreadsheetStyle;
+import org.simantics.spreadsheet.solver.SheetLineComponent;
+import org.simantics.spreadsheet.solver.SpreadsheetBook;
+import org.simantics.spreadsheet.solver.SpreadsheetStyle;
import org.simantics.structural.synchronization.base.CommandBuilder;
import org.simantics.structural.synchronization.base.ModuleUpdateContext;
import org.simantics.structural.synchronization.base.ModuleUpdaterBase;
public String getPropertyName() {
return "foreground";
}
-
+
@Override
public void apply(ModuleUpdateContext<SheetLineComponent> context, boolean isCreating, Map<String, Variant> propertyMap, Map<String, Collection<String>> connectionMap, Variant value) {
StyleCommandBuilder builder = context.getConcreteCommand();
builder.foreground = color;
}
}
-
+
private static class BackgroundUpdateRule implements PropertyUpdateRule<SheetLineComponent> {
@Override
public String getPropertyName() {
builder.background = color;
}
}
-
+
private static class FontUpdateRule implements PropertyUpdateRule<SheetLineComponent> {
@Override
public String getPropertyName() {
builder.align = align;
}
}
-
+
private static class FormatStringUpdateRule implements PropertyUpdateRule<SheetLineComponent> {
@Override
public String getPropertyName() {
builder.border = border;
}
}
-
+
private static class LockedUpdateRule implements PropertyUpdateRule<SheetLineComponent> {
@Override
public String getPropertyName() {
builder.locked = locked;
}
}
-
+
private static class ColumnSpanUpdateRule implements PropertyUpdateRule<SheetLineComponent> {
@Override
public String getPropertyName() {
builder.columnSpan = columnSpan;
}
}
-
+
private static class RowSpanUpdateRule implements PropertyUpdateRule<SheetLineComponent> {
@Override
public String getPropertyName() {
}
}
-
+
public StyleUpdater(String moduleType) {
super(moduleType);
-
+
addPropertyUpdateRule(new ForegroundUpdateRule());
addPropertyUpdateRule(new BackgroundUpdateRule());
addPropertyUpdateRule(new FontUpdateRule());
public CommandBuilder createUpdateCommandBuilder(String name) {
return new StyleCommandBuilder(name, true);
}
-
+
private static class StyleCommandBuilder implements CommandBuilder {
protected int rowSpan;
protected org.simantics.datatypes.literal.RGB.Integer foreground;
protected Font font;
protected int align;
-
- private boolean update;
+
private String name;
-
+
public StyleCommandBuilder(String name, boolean update) {
this.name = name.split("/")[1];
- this.update = update;
}
-
+
@Override
public void apply(Solver solver) {
SpreadsheetBook book = solver.getConcreteSolver();
.columnSpan(columnSpan).formatIndex((short) formatIndex).formatString(formatString).build();
if (book.getStyle(style.getStyleId()) == null)
book.addStyle(style);
-
+
}
@SuppressWarnings("unchecked")
public <T> T getConcrete() {
return (T) this;
}
-
+
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("StyleCommandBuilder for ").append(name).append(" [background=").append(background).append(", foregroung=").append(foreground).append(", font=").append(font).append(", align=").append(align).append("]");
return sb.toString();
}
-
+
}
-
+
}