7 public errordomain Error {
14 public abstract class Palete : Object
20 //public Gee.ArrayList<Usage> map;
22 public Gee.HashMap<string,GirObject> classes; // used in roo..
23 public Gee.HashMap<string,Gee.ArrayList<string>> dropCache;
24 public Project.Project project;
26 public void aconstruct(Project.Project project)
29 this.project = project;
32 this.dropCache = new Gee.HashMap<string,Gee.ArrayList<string>>() ;
36 public void saveTemplate (string name, JsRender.Node data)
40 // store it in user's directory..
41 var appdir = GLib.Environment.get_home_dir() + "/.Builder";
44 if (!GLib.FileUtils.test(appdir+ "/" + gn, GLib.FileTest.IS_DIR)) {
45 GLib.File.new_for_path (appdir+ "/" + gn).make_directory ();
48 GLib.FileUtils.set_contents(appdir+ "/" + gn + "/" + name + ".json", data.toJsonString());
49 } catch (GLib.Error e) {
50 GLib.debug("Error : %s", e.message);
55 * list templates - in home directory (and app dir in future...)
56 * @param {String} name - eg. Gtk.Window..
57 * @return {Array} list of templates available..
60 public GLib.List<string> listTemplates (JsRender.Node node)
65 var ret = new GLib.List<string>();
66 var dir= GLib.Environment.get_home_dir() + "/.Builder/" + gn;
67 if (!GLib.FileUtils.test(dir, GLib.FileTest.IS_DIR)) {
74 var f = File.new_for_path(dir);
76 var file_enum = f.enumerate_children(GLib.FileAttribute.STANDARD_DISPLAY_NAME, GLib.FileQueryInfoFlags.NONE, null);
79 while ((next_file = file_enum.next_file(null)) != null) {
80 var n = next_file.get_display_name();
81 if (!Regex.match_simple ("\\.json$", n)) {
84 ret.append( dir + "/" + n);
86 } catch (GLib.Error e) {
87 GLib.debug("Error : %s", e.message);
93 public JsRender.Node? loadTemplate(string path)
96 var pa = new Json.Parser();
98 pa.load_from_file(path);
99 } catch(GLib.Error e) {
100 GLib.debug("Error : %s", e.message);
103 var node = pa.get_root();
105 if (node.get_node_type () != Json.NodeType.OBJECT) {
108 var obj = node.get_object ();
110 var ret = new JsRender.Node();
113 ret.loadFromJson(obj, 1);
114 ret.ref(); // not sure if needed -- but we had a case where ret became uninitialized?
124 //public abstract void on_child_added(JsRender.Node? parent,JsRender.Node child);
125 public abstract void load();
126 public abstract Gee.HashMap<string,GirObject> getPropertiesFor(string ename, JsRender.NodePropType ptype);
127 public abstract GirObject? getClass(string ename);
129 public abstract bool typeOptions(string fqn, string key, string type, out string[] opts);
130 public abstract Gee.ArrayList<CompletionProposal> suggestComplete(
131 JsRender.JsRender file,
133 JsRender.NodeProp? prop,
134 string complete_string
136 public abstract Gee.ArrayList<string> getChildList(string in_rval, bool with_prop);
137 public abstract Gee.ArrayList<string> getDropList(string rval);
138 public abstract JsRender.Node fqnToNode(string fqn);