Commit | Line | Data |
---|---|---|
3f5430db MM |
1 | package net.mattmccutchen.addins; |
2 | ||
3 | import java.util.*; | |
4 | ||
5 | import com.sun.star.sheet.*; | |
6 | ||
7 | public class AddInBase<AH extends AddInHelper> | |
8 | extends LocalizableBase<AH> implements XAddIn { | |
9 | private static final String addInFunctionCategory = "Add-In"; | |
10 | private static final String ERROR = "ERROR"; | |
11 | ||
12 | protected AddInBase(AH sh, Collection<FunctionInfo> funcInfos) { | |
13 | super(sh); | |
14 | ||
15 | funcsByPname = new LinkedHashMap<String, FunctionInfo>(); | |
16 | funcsByDname = new LinkedHashMap<String, FunctionInfo>(); | |
17 | for (FunctionInfo fi : funcInfos) { | |
18 | funcsByPname.put(fi.programmaticName, fi); | |
19 | funcsByDname.put(fi.displayName, fi); | |
20 | } | |
21 | } | |
22 | ||
23 | private final Map<String, FunctionInfo> funcsByPname; | |
24 | private final Map<String, FunctionInfo> funcsByDname; | |
25 | ||
26 | public String getArgumentDescription(String fpname, int aindex) { | |
27 | FunctionInfo fi = funcsByPname.get(fpname); | |
28 | return (fi != null && aindex >= 0 && aindex < fi.arguments.size()) | |
29 | ? fi.arguments.get(aindex).description : ERROR; | |
30 | } | |
31 | ||
32 | public String getDisplayArgumentName(String fpname, int aindex) { | |
33 | FunctionInfo fi = funcsByPname.get(fpname); | |
34 | return (fi != null && aindex >= 0 && aindex < fi.arguments.size()) | |
35 | ? fi.arguments.get(aindex).displayName : ERROR; | |
36 | } | |
37 | ||
38 | public String getDisplayCategoryName(String fpname) { | |
39 | return addInFunctionCategory; | |
40 | } | |
41 | ||
42 | public String getDisplayFunctionName(String fpname) { | |
43 | FunctionInfo fi = funcsByPname.get(fpname); | |
44 | return (fi != null) ? fi.displayName : ERROR; | |
45 | } | |
46 | ||
47 | public String getFunctionDescription(String fpname) { | |
48 | FunctionInfo fi = funcsByPname.get(fpname); | |
49 | return (fi != null) ? fi.description : ERROR; | |
50 | } | |
51 | ||
52 | public String getProgrammaticCategoryName(String fpname) { | |
53 | return addInFunctionCategory; | |
54 | } | |
55 | ||
56 | public String getProgrammaticFuntionName(String fdname) { | |
57 | FunctionInfo fi = funcsByDname.get(fdname); | |
58 | return (fi != null) ? fi.programmaticName : ERROR; | |
59 | } | |
60 | } |