]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/celleditor/GraphCellEditorAdapter.java
Adopt spreadsheet changes made in Balas development
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / celleditor / GraphCellEditorAdapter.java
1 package org.simantics.spreadsheet.graph.celleditor;
2
3 import java.util.function.Consumer;
4
5 import org.simantics.databoard.binding.Binding;
6 import org.simantics.databoard.binding.mutable.MutableVariant;
7 import org.simantics.databoard.binding.mutable.Variant;
8 import org.simantics.db.WriteGraph;
9 import org.simantics.db.common.request.WriteRequest;
10 import org.simantics.db.exception.DatabaseException;
11 import org.simantics.db.layer0.util.Layer0Utils;
12 import org.simantics.db.layer0.variable.Variable;
13 import org.simantics.db.request.Write;
14 import org.simantics.spreadsheet.CellEditor;
15 import org.simantics.spreadsheet.OperationMode;
16 import org.simantics.spreadsheet.Transaction;
17 import org.simantics.spreadsheet.util.SpreadsheetUtils;
18
19 public class GraphCellEditorAdapter implements CellEditor<Write> {
20
21     protected final Variable cell;
22
23     public GraphCellEditorAdapter(Variable cell) {
24         this.cell = cell;
25     }
26     
27         public <T> void edit(WriteGraph graph, Transaction<Write> transaction, String location, String property, T value, Binding binding) throws DatabaseException {
28                 
29         }
30         
31         public <T> void edit(WriteGraph graph, Transaction<Write> transaction, String location, Variant value) throws DatabaseException {
32                 
33         }
34         
35         public <T> void copy(WriteGraph graph, Transaction<Write> transaction, String location, MutableVariant variant) throws DatabaseException {
36                 
37         }
38
39         @Override
40         public <T> void edit(Transaction<Write> transaction, final String location, final String property, final T value, final Binding binding, Consumer<?> callback) {
41                 SpreadsheetUtils.schedule(transaction, new WriteRequest() {
42
43                         @Override
44                         public void perform(WriteGraph graph) throws DatabaseException {
45                                 edit(graph, transaction, location, property, value, binding);
46                                 Layer0Utils.addCommentMetadata(graph, "Modified cell in location " + location + " with value " + value);
47                                 if (callback != null)
48                                     callback.accept(null);
49                         }
50                         
51                 });
52         }
53
54         @Override
55         public void edit(Transaction<Write> transaction, final String location, final Variant value, Consumer<?> callback) {
56                 SpreadsheetUtils.schedule(transaction, new WriteRequest() {
57
58                         @Override
59                         public void perform(WriteGraph graph) throws DatabaseException {
60                                 edit(graph, transaction, location, value);
61                                 Layer0Utils.addCommentMetadata(graph, "Modified cell on location " + location + " with value " + value);
62                                 if (callback != null)
63                                     callback.accept(null);
64                         }
65                         
66                 });
67         }
68
69         @Override
70         public void copy(Transaction<Write> transaction, final String location, final MutableVariant variant, Consumer<?> callback) {
71                 SpreadsheetUtils.schedule(transaction, new WriteRequest() {
72
73                         @Override
74                         public void perform(WriteGraph graph) throws DatabaseException {
75                                 copy(graph, transaction, location, variant);
76                         }
77                         
78                 });
79         }
80         
81         @Override
82         public Transaction<Write> startTransaction(OperationMode mode) {
83                 return SpreadsheetUtils.startTransaction(mode);
84         }
85
86 }