package org.simantics.modeling; import java.util.Collection; import org.simantics.db.Resource; import org.simantics.db.WriteGraph; import org.simantics.db.common.request.WriteRequest; import org.simantics.db.exception.DatabaseException; import org.simantics.diagram.stubs.DiagramResource; public class AssignSymbolGroupRequest extends WriteRequest { Collection addedSymbolGroup; Collection removedSymbolGroup; Collection symbols; public AssignSymbolGroupRequest(Collection addedSymbolGroups, Collection removedSymbolGroups, Collection symbols) { this.addedSymbolGroup = addedSymbolGroups; this.removedSymbolGroup = removedSymbolGroups; this.symbols = symbols; } @Override public void perform(WriteGraph graph) throws DatabaseException { assignSymbolGroup(graph, addedSymbolGroup, removedSymbolGroup, symbols); } public static void assignSymbolGroup(WriteGraph graph, Collection addedSymbolGroups, Collection removedSymbolGroups, Collection symbols) throws DatabaseException { graph.markUndoPoint(); DiagramResource DIA = DiagramResource.getInstance(graph); for (Resource symbol : symbols) { for (Resource group : addedSymbolGroups) graph.claim(group, DIA.HasSymbol, symbol); for (Resource group : removedSymbolGroups) graph.deny(group, DIA.HasSymbol, symbol); } } }