]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/view/RemoveEntriesAction.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.diagram.profile / src / org / simantics / diagram / profile / view / RemoveEntriesAction.java
1 package org.simantics.diagram.profile.view;\r
2 \r
3 import java.util.List;\r
4 \r
5 import org.eclipse.jface.viewers.ISelection;\r
6 import org.simantics.Simantics;\r
7 import org.simantics.browsing.ui.swt.ModelledActionImpl;\r
8 import org.simantics.db.Resource;\r
9 import org.simantics.db.WriteGraph;\r
10 import org.simantics.db.common.request.WriteRequest;\r
11 import org.simantics.db.common.utils.OrderedSetUtils;\r
12 import org.simantics.db.exception.DatabaseException;\r
13 import org.simantics.db.layer0.SelectionHints;\r
14 import org.simantics.diagram.stubs.DiagramResource;\r
15 import org.simantics.utils.ui.ISelectionUtils;\r
16 \r
17 public class RemoveEntriesAction extends ModelledActionImpl<Resource> {\r
18 \r
19         public RemoveEntriesAction(Resource configuration) {\r
20                 super(configuration);\r
21         }\r
22         \r
23         public void run(Resource runtimeDiagram) {\r
24 \r
25                 ISelection selection = getParameter(DiagramResource.URIs.ProfilesView_SelectedEntries);\r
26         final List<ResourcePair> selectedEntries = ISelectionUtils.getPossibleKeys(selection, SelectionHints.KEY_MAIN, ResourcePair.class);\r
27         if(selectedEntries != null && !selectedEntries.isEmpty()) {\r
28                 System.err.println("RemoveEntriesAction has " + selection + " for " + runtimeDiagram);\r
29             try {\r
30                 Simantics.getSession().syncRequest(new WriteRequest() {\r
31 \r
32                     @Override\r
33                     public void perform(WriteGraph graph) throws DatabaseException {\r
34                         \r
35                         DiagramResource DIA = DiagramResource.getInstance(graph);\r
36                         for(ResourcePair entry : selectedEntries) {\r
37                                 Resource list = graph.getPossibleObject(entry.getFirst(), DIA.HasEntries);\r
38                                 OrderedSetUtils.remove(graph, list, entry.getSecond());\r
39                         }\r
40                         \r
41                     }\r
42 \r
43                 });\r
44             } catch (DatabaseException e) {\r
45                 e.printStackTrace();\r
46             }\r
47         }\r
48 \r
49         }\r
50 \r
51 }\r