]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.team.ui/src/org/simantics/team/ui/Preferences.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.team.ui / src / org / simantics / team / ui / Preferences.java
1 package org.simantics.team.ui;\r
2 \r
3 import java.util.Deque;\r
4 import java.util.Iterator;\r
5 import java.util.LinkedList;\r
6 import java.util.Set;\r
7 import java.util.TreeSet;\r
8 \r
9 import org.eclipse.ui.IMemento;\r
10 import org.simantics.utils.ui.workbench.StringMemento;\r
11 \r
12 public final class Preferences {\r
13     public static final String CURRENT_TEAM_FOLDER = "CURRENT_TEAM_FOLDER";\r
14     public static final String RECENT_TEAM_FOLDERS = "RECENT_TEAM_FOLDERS";\r
15     private static final String TAG_PATH = "path";\r
16     private static final String ATTR_NAME = "name";\r
17     public static Deque<String> decodePaths(String recentPathsPref) {\r
18         Deque<String> result = new LinkedList<String>();\r
19         try {\r
20             StringMemento sm = new StringMemento(recentPathsPref);\r
21             for (IMemento m : sm.getChildren(TAG_PATH)) {\r
22                 String name = m.getString(ATTR_NAME);\r
23                 if (name != null && !name.isEmpty())\r
24                     result.add(name);\r
25             }\r
26         } catch (IllegalArgumentException e) {\r
27         }\r
28         return result;\r
29     }\r
30     public static String encodePaths(Deque<String> recentPaths) {\r
31         StringMemento sm = new StringMemento();\r
32         for (String path : recentPaths) {\r
33             IMemento m = sm.createChild(TAG_PATH);\r
34             m.putString(ATTR_NAME, path);\r
35         }\r
36         return sm.toString();\r
37     }\r
38     public static <T> void removeDuplicates(Iterable<String> iter) {\r
39         // Remove duplicates\r
40         Set<String> dups = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);\r
41         for (Iterator<String> it = iter.iterator(); it.hasNext();) {\r
42             String path = it.next();\r
43             if (!dups.add(path)) {\r
44                 it.remove();\r
45             }\r
46         }\r
47     }\r
48 \r
49 }\r