diff options
Diffstat (limited to 'doc/JSON/Editor/JSONTreeView.html')
-rw-r--r-- | doc/JSON/Editor/JSONTreeView.html | 1035 |
1 files changed, 1035 insertions, 0 deletions
diff --git a/doc/JSON/Editor/JSONTreeView.html b/doc/JSON/Editor/JSONTreeView.html new file mode 100644 index 0000000..e80eca0 --- /dev/null +++ b/doc/JSON/Editor/JSONTreeView.html @@ -0,0 +1,1035 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> + + <title>Class: JSON::Editor::JSONTreeView</title> + + <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" /> + + <script src="../../js/jquery.js" type="text/javascript" + charset="utf-8"></script> + <script src="../../js/thickbox-compressed.js" type="text/javascript" + charset="utf-8"></script> + <script src="../../js/quicksearch.js" type="text/javascript" + charset="utf-8"></script> + <script src="../../js/darkfish.js" type="text/javascript" + charset="utf-8"></script> + +</head> +<body class="class"> + + <div id="metadata"> + <div id="file-metadata"> + <div id="file-list-section" class="section"> + <h3 class="section-header">In Files</h3> + <div class="section-body"> + <ul> + + <li><a href="../../lib/json/editor_rb.html?TB_iframe=true&height=550&width=785" + class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li> + + </ul> + </div> + </div> + + + </div> + + <div id="class-metadata"> + + <!-- Parent Class --> + + <div id="parent-class-section" class="section"> + <h3 class="section-header">Parent</h3> + + <p class="link">Gtk::TreeView</p> + + </div> + + + <!-- Namespace Contents --> + + + <!-- Method Quickref --> + + <div id="method-list-section" class="section"> + <h3 class="section-header">Methods</h3> + <ul class="link-list"> + + <li><a href="#M000156">::new</a></li> + + <li><a href="#M000157">#add_columns</a></li> + + <li><a href="#M000161">#add_popup_menu</a></li> + + <li><a href="#M000164">#ask_for_element</a></li> + + <li><a href="#M000166">#ask_for_find_term</a></li> + + <li><a href="#M000163">#ask_for_hash_pair</a></li> + + <li><a href="#M000165">#ask_for_order</a></li> + + <li><a href="#M000159">#cell_edited</a></li> + + <li><a href="#M000160">#configure_value</a></li> + + <li><a href="#M000162">#create_node</a></li> + + <li><a href="#M000167">#expand_collapse</a></li> + + <li><a href="#M000158">#unify_key</a></li> + + </ul> + </div> + + + <!-- Included Modules --> + + <div id="includes-section" class="section"> + <h3 class="section-header">Included Modules</h3> + <ul class="link-list"> + + + <li><a class="include" href="../Editor.html">JSON::Editor</a></li> + + + </ul> + </div> + + </div> + + <div id="project-metadata"> + + + <div id="fileindex-section" class="section project-section"> + <h3 class="section-header">Files</h3> + <ul> + + <li class="file"><a href="../../README.html">README</a></li> + + </ul> + </div> + + + <div id="classindex-section" class="section project-section"> + <h3 class="section-header">Class Index + <span class="search-toggle"><img src="../../images/find.png" + height="16" width="16" alt="[+]" + title="show/hide quicksearch" /></span></h3> + <form action="#" method="get" accept-charset="utf-8" class="initially-hidden"> + <fieldset> + <legend>Quicksearch</legend> + <input type="text" name="quicksearch" value="" + class="quicksearch-field" /> + </fieldset> + </form> + + <ul class="link-list"> + + <li><a href="../../JSON.html">JSON</a></li> + + <li><a href="../../JSON/Editor.html">JSON::Editor</a></li> + + <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li> + + <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li> + + <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li> + + <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li> + + <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li> + + <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li> + + <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li> + + <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li> + + <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li> + + <li><a href="../../JSON/Ext.html">JSON::Ext</a></li> + + <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li> + + <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li> + + <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li> + + <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li> + + <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li> + + <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li> + + <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li> + + <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li> + + <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li> + + <li><a href="../../JSON/Pure.html">JSON::Pure</a></li> + + <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li> + + <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li> + + <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li> + + <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li> + + <li><a href="../../Class.html">Class</a></li> + + <li><a href="../../Date.html">Date</a></li> + + <li><a href="../../DateTime.html">DateTime</a></li> + + <li><a href="../../Enumerable.html">Enumerable</a></li> + + <li><a href="../../Exception.html">Exception</a></li> + + <li><a href="../../Kernel.html">Kernel</a></li> + + <li><a href="../../Object.html">Object</a></li> + + <li><a href="../../Range.html">Range</a></li> + + <li><a href="../../Regexp.html">Regexp</a></li> + + <li><a href="../../Struct.html">Struct</a></li> + + <li><a href="../../Symbol.html">Symbol</a></li> + + <li><a href="../../Time.html">Time</a></li> + + </ul> + <div id="no-class-search-results" style="display: none;">No matching classes.</div> + </div> + + + </div> + </div> + + <div id="documentation"> + <h1 class="class">JSON::Editor::JSONTreeView</h1> + + <div id="description"> + <p> +This class inherits from Gtk::TreeView, to configure it and to add a lot of +behaviour to it. +</p> + + </div> + + <!-- Constants --> + + + <!-- Attributes --> + + <div id="attribute-method-details" class="method-section section"> + <h3 class="section-header">Attributes</h3> + + + <div id="window-attribute-method" class="method-detail"> + <a name="window"></a> + + <div class="method-heading attribute-method-heading"> + <span class="method-name">window</span><span + class="attribute-access-type">[R]</span> + </div> + + <div class="method-description"> + + <p> +Returns the <a href="MainWindow.html">MainWindow</a> instance of this <a +href="JSONTreeView.html">JSONTreeView</a>. +</p> + + </div> + </div> + + <div id="expanded-attribute-method" class="method-detail"> + <a name="expanded"></a> + + <a name="expanded="></a> + + <div class="method-heading attribute-method-heading"> + <span class="method-name">expanded</span><span + class="attribute-access-type">[RW]</span> + </div> + + <div class="method-description"> + + <p> +Returns true, if nodes are autoexpanding, false otherwise. +</p> + + </div> + </div> + + </div> + + + <!-- Methods --> + + <div id="public-class-method-details" class="method-section section"> + <h3 class="section-header">Public Class Methods</h3> + + + <div id="new-method" class="method-detail "> + <a name="M000156"></a> + + <div class="method-heading"> + + <span class="method-name">new</span><span + class="method-args">(window)</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p> +Creates a <a href="JSONTreeView.html">JSONTreeView</a> instance, the +parameter <em>window</em> is a <a href="MainWindow.html">MainWindow</a> +instance and used for self delegation. +</p> + + + + <div class="method-source-code" + id="new-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 701</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">window</span>) + <span class="ruby-ivar">@window</span> = <span class="ruby-identifier">window</span> + <span class="ruby-keyword kw">super</span>(<span class="ruby-constant">TreeStore</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Gdk</span><span class="ruby-operator">::</span><span class="ruby-constant">Pixbuf</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">String</span>)) + <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">selection</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-constant">SELECTION_BROWSE</span> + + <span class="ruby-ivar">@expanded</span> = <span class="ruby-keyword kw">false</span> + <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">headers_visible</span> = <span class="ruby-keyword kw">false</span> + <span class="ruby-identifier">add_columns</span> + <span class="ruby-identifier">add_popup_menu</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + </div> + + <div id="public-instance-method-details" class="method-section section"> + <h3 class="section-header">Public Instance Methods</h3> + + + <div id="ask-for-element-method" class="method-detail "> + <a name="M000164"></a> + + <div class="method-heading"> + + <span class="method-name">ask_for_element</span><span + class="method-args">(parent = nil, default_type = nil, value_text = @content)</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p> +Ask for an element to be appended <em>parent</em>. +</p> + + + + <div class="method-source-code" + id="ask-for-element-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 902</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ask_for_element</span>(<span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">default_type</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">value_text</span> = <span class="ruby-ivar">@content</span>) + <span class="ruby-identifier">type_input</span> = <span class="ruby-identifier">value_input</span> = <span class="ruby-keyword kw">nil</span> + + <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">Dialog</span>.<span class="ruby-identifier">new</span>( + <span class="ruby-node">"New element into #{parent ? parent.type : 'root'}"</span>, + <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, + [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">OK</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> ], + [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">CANCEL</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_REJECT</span> ] + ) + <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Type:"</span>), <span class="ruby-keyword kw">false</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">type_input</span> = <span class="ruby-constant">ComboBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">true</span>)) + <span class="ruby-identifier">default_active</span> = <span class="ruby-value">0</span> + <span class="ruby-identifier">types</span> = <span class="ruby-identifier">parent</span> <span class="ruby-value">? </span><span class="ruby-constant">ALL_TYPES</span> <span class="ruby-operator">:</span> <span class="ruby-constant">CONTAINER_TYPES</span> + <span class="ruby-identifier">types</span>.<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span> + <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">append_text</span>(<span class="ruby-identifier">t</span>) + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">default_type</span> + <span class="ruby-identifier">default_active</span> = <span class="ruby-identifier">i</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span> = <span class="ruby-identifier">default_active</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>) + <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:changed</span>) <span class="ruby-keyword kw">do</span> + <span class="ruby-identifier">configure_value</span>(<span class="ruby-identifier">value_input</span>, <span class="ruby-identifier">types</span>[<span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span>]) + <span class="ruby-keyword kw">end</span> + + <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Value:"</span>), <span class="ruby-keyword kw">false</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">value_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>) + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">width_chars</span> = <span class="ruby-value">60</span> + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">value_text</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value_text</span> + <span class="ruby-identifier">configure_value</span>(<span class="ruby-identifier">value_input</span>, <span class="ruby-identifier">types</span>[<span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span>]) + + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>) + + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'key-press-event'</span>, <span class="ruby-operator">&</span><span class="ruby-constant">DEFAULT_DIALOG_KEY_PRESS_HANDLER</span>) + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span> + <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">focus</span> = <span class="ruby-identifier">dialog</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span> + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> + <span class="ruby-identifier">type</span> = <span class="ruby-identifier">types</span>[<span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span>] + <span class="ruby-ivar">@content</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Numeric'</span> + <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">t</span> = <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span>) <span class="ruby-operator">==</span> <span class="ruby-value str">'Infinity'</span> + <span class="ruby-value">1</span> <span class="ruby-operator">/</span> <span class="ruby-value">0</span><span class="ruby-value">.0</span> + <span class="ruby-keyword kw">else</span> + <span class="ruby-constant">Integer</span>(<span class="ruby-identifier">t</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Float</span>(<span class="ruby-identifier">t</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-value">0</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">else</span> + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> + <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">to_s</span> + <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">type</span>, <span class="ruby-ivar">@content</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">return</span> + <span class="ruby-keyword kw">ensure</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dialog</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + <div id="ask-for-find-term-method" class="method-detail "> + <a name="M000166"></a> + + <div class="method-heading"> + + <span class="method-name">ask_for_find_term</span><span + class="method-args">(search = nil)</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p> +Ask for a find term to search for in the tree. Returns the term as a +string. +</p> + + + + <div class="method-source-code" + id="ask-for-find-term-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 997</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ask_for_find_term</span>(<span class="ruby-identifier">search</span> = <span class="ruby-keyword kw">nil</span>) + <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">Dialog</span>.<span class="ruby-identifier">new</span>( + <span class="ruby-value str">"Find a node matching regex in tree."</span>, + <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, + [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">OK</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> ], + [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">CANCEL</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_REJECT</span> ] + ) + <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>) + + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Regex:"</span>), <span class="ruby-keyword kw">false</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">regex_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">icase_checkbox</span> = <span class="ruby-constant">CheckButton</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Icase'</span>), <span class="ruby-keyword kw">false</span>) + <span class="ruby-identifier">regex_input</span>.<span class="ruby-identifier">width_chars</span> = <span class="ruby-value">60</span> + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">search</span> + <span class="ruby-identifier">regex_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">search</span>.<span class="ruby-identifier">source</span> + <span class="ruby-identifier">icase_checkbox</span>.<span class="ruby-identifier">active</span> = <span class="ruby-identifier">search</span>.<span class="ruby-identifier">casefold?</span> + <span class="ruby-keyword kw">end</span> + + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>) + + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'key-press-event'</span>, <span class="ruby-operator">&</span><span class="ruby-constant">DEFAULT_DIALOG_KEY_PRESS_HANDLER</span>) + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span> + <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">focus</span> = <span class="ruby-identifier">dialog</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span> + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> + <span class="ruby-keyword kw">begin</span> + <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">regex_input</span>.<span class="ruby-identifier">text</span>, <span class="ruby-identifier">icase_checkbox</span>.<span class="ruby-identifier">active?</span> <span class="ruby-value">? </span><span class="ruby-constant">Regexp</span><span class="ruby-operator">::</span><span class="ruby-constant">IGNORECASE</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>) + <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span> + <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">error_dialog</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-node">"Evaluation of regex /#{regex_input.text}/ failed: #{e}!"</span>) + <span class="ruby-keyword kw">return</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">return</span> + <span class="ruby-keyword kw">ensure</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dialog</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + <div id="ask-for-hash-pair-method" class="method-detail "> + <a name="M000163"></a> + + <div class="method-heading"> + + <span class="method-name">ask_for_hash_pair</span><span + class="method-args">(parent)</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p> +Ask for a hash key, value pair to be added to the Hash node +<em>parent</em>. +</p> + + + + <div class="method-source-code" + id="ask-for-hash-pair-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 831</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ask_for_hash_pair</span>(<span class="ruby-identifier">parent</span>) + <span class="ruby-identifier">key_input</span> = <span class="ruby-identifier">type_input</span> = <span class="ruby-identifier">value_input</span> = <span class="ruby-keyword kw">nil</span> + + <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">Dialog</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"New (key, value) pair for Hash"</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, + [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">OK</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> ], + [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">CANCEL</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_REJECT</span> ] + ) + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">width_request</span> = <span class="ruby-value">640</span> + + <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Key:"</span>), <span class="ruby-keyword kw">false</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">key_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>) + <span class="ruby-identifier">key_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-ivar">@key</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>) + <span class="ruby-identifier">key_input</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:activate</span>) <span class="ruby-keyword kw">do</span> + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">content</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">key_input</span>.<span class="ruby-identifier">text</span> } + <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">'Key already exists in Hash!'</span>) + <span class="ruby-identifier">key_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">''</span> + <span class="ruby-keyword kw">else</span> + <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">'Key has been changed.'</span>) + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">end</span> + + <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Type:"</span>), <span class="ruby-keyword kw">false</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">type_input</span> = <span class="ruby-constant">ComboBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">true</span>)) + <span class="ruby-constant">ALL_TYPES</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">append_text</span>(<span class="ruby-identifier">t</span>) } + <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span> = <span class="ruby-ivar">@type</span> <span class="ruby-operator">||</span> <span class="ruby-value">0</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>) + + <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:changed</span>) <span class="ruby-keyword kw">do</span> + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">editable</span> = <span class="ruby-keyword kw">false</span> + <span class="ruby-keyword kw">case</span> <span class="ruby-constant">ALL_TYPES</span>[<span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span>] + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Array'</span>, <span class="ruby-value str">'Hash'</span> + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">''</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'TrueClass'</span> + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'true'</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'FalseClass'</span> + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'false'</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'NilClass'</span> + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'null'</span> + <span class="ruby-keyword kw">else</span> + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">''</span> + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">editable</span> = <span class="ruby-keyword kw">true</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">end</span> + + <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Value:"</span>), <span class="ruby-keyword kw">false</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">value_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>) + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">width_chars</span> = <span class="ruby-value">60</span> + <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-ivar">@value</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>) + + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'key-press-event'</span>, <span class="ruby-operator">&</span><span class="ruby-constant">DEFAULT_DIALOG_KEY_PRESS_HANDLER</span>) + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span> + <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">focus</span> = <span class="ruby-identifier">dialog</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span> + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> + <span class="ruby-ivar">@key</span> = <span class="ruby-identifier">key_input</span>.<span class="ruby-identifier">text</span> + <span class="ruby-identifier">type</span> = <span class="ruby-constant">ALL_TYPES</span>[<span class="ruby-ivar">@type</span> = <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span>] + <span class="ruby-identifier">content</span> = <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> + <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@key</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">return</span> + <span class="ruby-keyword kw">ensure</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + <div id="ask-for-order-method" class="method-detail "> + <a name="M000165"></a> + + <div class="method-heading"> + + <span class="method-name">ask_for_order</span><span + class="method-args">()</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p> +Ask for an order criteria for sorting, using <em>x</em> for the element in +question. Returns the order criterium, and true/false for reverse sorting. +</p> + + + + <div class="method-source-code" + id="ask-for-order-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 964</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ask_for_order</span> + <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">Dialog</span>.<span class="ruby-identifier">new</span>( + <span class="ruby-value str">"Give an order criterium for 'x'."</span>, + <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, + [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">OK</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> ], + [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">CANCEL</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_REJECT</span> ] + ) + <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>) + + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Order:"</span>), <span class="ruby-keyword kw">false</span>) + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">order_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>) + <span class="ruby-identifier">order_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-ivar">@order</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'x'</span> + <span class="ruby-identifier">order_input</span>.<span class="ruby-identifier">width_chars</span> = <span class="ruby-value">60</span> + + <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">reverse_checkbox</span> = <span class="ruby-constant">CheckButton</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Reverse'</span>), <span class="ruby-keyword kw">false</span>) + + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>) + + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'key-press-event'</span>, <span class="ruby-operator">&</span><span class="ruby-constant">DEFAULT_DIALOG_KEY_PRESS_HANDLER</span>) + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span> + <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">focus</span> = <span class="ruby-identifier">dialog</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span> + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> + <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@order</span> = <span class="ruby-identifier">order_input</span>.<span class="ruby-identifier">text</span>, <span class="ruby-identifier">reverse_checkbox</span>.<span class="ruby-identifier">active?</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">return</span> + <span class="ruby-keyword kw">ensure</span> + <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dialog</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + <div id="create-node-method" class="method-detail "> + <a name="M000162"></a> + + <div class="method-heading"> + + <span class="method-name">create_node</span><span + class="method-args">(parent, type, content)</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p> +Create a <em>type</em> node with content <em>content</em>, and add it to +<em>parent</em> in the model. If <em>parent</em> is nil, create a new model +and put it into the editor treeview. +</p> + + + + <div class="method-source-code" + id="create-node-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 817</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_node</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span>) + <span class="ruby-identifier">iter</span> = <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span> + <span class="ruby-identifier">model</span>.<span class="ruby-identifier">append</span>(<span class="ruby-identifier">parent</span>) + <span class="ruby-keyword kw">else</span> + <span class="ruby-identifier">new_model</span> = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-keyword kw">nil</span>) + <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">view_new_model</span>(<span class="ruby-identifier">new_model</span>) + <span class="ruby-identifier">new_model</span>.<span class="ruby-identifier">iter_first</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span> + <span class="ruby-identifier">expand_collapse</span>(<span class="ruby-identifier">parent</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span> + <span class="ruby-identifier">iter</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + <div id="expand-collapse-method" class="method-detail "> + <a name="M000167"></a> + + <div class="method-heading"> + + <span class="method-name">expand_collapse</span><span + class="method-args">(iter)</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p> +Expand or collapse row pointed to by <em>iter</em> according to the <a +href="JSONTreeView.html#expanded">expanded</a> attribute. +</p> + + + + <div class="method-source-code" + id="expand-collapse-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1037</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expand_collapse</span>(<span class="ruby-identifier">iter</span>) + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">expanded</span> + <span class="ruby-identifier">expand_row</span>(<span class="ruby-identifier">iter</span>.<span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">true</span>) + <span class="ruby-keyword kw">else</span> + <span class="ruby-identifier">collapse_row</span>(<span class="ruby-identifier">iter</span>.<span class="ruby-identifier">path</span>) + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + </div> + + <div id="private-instance-method-details" class="method-section section"> + <h3 class="section-header">Private Instance Methods</h3> + + + <div id="add-columns-method" class="method-detail "> + <a name="M000157"></a> + + <div class="method-heading"> + + <span class="method-name">add_columns</span><span + class="method-args">()</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p class="missing-docs">(Not documented)</p> + + + + <div class="method-source-code" + id="add-columns-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 720</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_columns</span> + <span class="ruby-identifier">cell</span> = <span class="ruby-constant">CellRendererPixbuf</span>.<span class="ruby-identifier">new</span> + <span class="ruby-identifier">column</span> = <span class="ruby-constant">TreeViewColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Icon'</span>, <span class="ruby-identifier">cell</span>, + <span class="ruby-value str">'pixbuf'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">ICON_COL</span> + ) + <span class="ruby-identifier">append_column</span>(<span class="ruby-identifier">column</span>) + + <span class="ruby-identifier">cell</span> = <span class="ruby-constant">CellRendererText</span>.<span class="ruby-identifier">new</span> + <span class="ruby-identifier">column</span> = <span class="ruby-constant">TreeViewColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Type'</span>, <span class="ruby-identifier">cell</span>, + <span class="ruby-value str">'text'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">TYPE_COL</span> + ) + <span class="ruby-identifier">append_column</span>(<span class="ruby-identifier">column</span>) + + <span class="ruby-identifier">cell</span> = <span class="ruby-constant">CellRendererText</span>.<span class="ruby-identifier">new</span> + <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">editable</span> = <span class="ruby-keyword kw">true</span> + <span class="ruby-identifier">column</span> = <span class="ruby-constant">TreeViewColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Content'</span>, <span class="ruby-identifier">cell</span>, + <span class="ruby-value str">'text'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">CONTENT_COL</span> + ) + <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:edited</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:cell_edited</span>)) + <span class="ruby-identifier">append_column</span>(<span class="ruby-identifier">column</span>) + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + <div id="add-popup-menu-method" class="method-detail "> + <a name="M000161"></a> + + <div class="method-heading"> + + <span class="method-name">add_popup_menu</span><span + class="method-args">()</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p class="missing-docs">(Not documented)</p> + + + + <div class="method-source-code" + id="add-popup-menu-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 807</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_popup_menu</span> + <span class="ruby-identifier">menu</span> = <span class="ruby-constant">PopUpMenu</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>) + <span class="ruby-identifier">menu</span>.<span class="ruby-identifier">create</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + <div id="cell-edited-method" class="method-detail "> + <a name="M000159"></a> + + <div class="method-heading"> + + <span class="method-name">cell_edited</span><span + class="method-args">(cell, path, value)</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p class="missing-docs">(Not documented)</p> + + + + <div class="method-source-code" + id="cell-edited-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 755</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cell_edited</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">value</span>) + <span class="ruby-identifier">iter</span> = <span class="ruby-identifier">model</span>.<span class="ruby-identifier">get_iter</span>(<span class="ruby-identifier">path</span>) + <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Key'</span> + <span class="ruby-identifier">unify_key</span>(<span class="ruby-identifier">iter</span>, <span class="ruby-identifier">value</span>) + <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">'Key has been changed.'</span>) + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'FalseClass'</span> + <span class="ruby-identifier">value</span>.<span class="ruby-identifier">downcase!</span> + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'true'</span> + <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-value str">'TrueClass'</span>, <span class="ruby-value str">'true'</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'TrueClass'</span> + <span class="ruby-identifier">value</span>.<span class="ruby-identifier">downcase!</span> + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'false'</span> + <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-value str">'FalseClass'</span>, <span class="ruby-value str">'false'</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Numeric'</span> + <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'Infinity'</span> + <span class="ruby-identifier">value</span> + <span class="ruby-keyword kw">else</span> + (<span class="ruby-constant">Integer</span>(<span class="ruby-identifier">value</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Float</span>(<span class="ruby-identifier">value</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-value">0</span>).<span class="ruby-identifier">to_s</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'String'</span> + <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">value</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Hash'</span>, <span class="ruby-value str">'Array'</span> + <span class="ruby-keyword kw">return</span> + <span class="ruby-keyword kw">else</span> + <span class="ruby-identifier">fail</span> <span class="ruby-node">"Unknown type found in model: #{iter.type}"</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + <div id="configure-value-method" class="method-detail "> + <a name="M000160"></a> + + <div class="method-heading"> + + <span class="method-name">configure_value</span><span + class="method-args">(value, type)</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p class="missing-docs">(Not documented)</p> + + + + <div class="method-source-code" + id="configure-value-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 788</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configure_value</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">type</span>) + <span class="ruby-identifier">value</span>.<span class="ruby-identifier">editable</span> = <span class="ruby-keyword kw">false</span> + <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Array'</span>, <span class="ruby-value str">'Hash'</span> + <span class="ruby-identifier">value</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">''</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'TrueClass'</span> + <span class="ruby-identifier">value</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'true'</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'FalseClass'</span> + <span class="ruby-identifier">value</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'false'</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'NilClass'</span> + <span class="ruby-identifier">value</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'null'</span> + <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Numeric'</span>, <span class="ruby-value str">'String'</span> + <span class="ruby-identifier">value</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">''</span> + <span class="ruby-identifier">value</span>.<span class="ruby-identifier">editable</span> = <span class="ruby-keyword kw">true</span> + <span class="ruby-keyword kw">else</span> + <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"unknown type '#{type}' encountered"</span> + <span class="ruby-keyword kw">end</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + <div id="unify-key-method" class="method-detail "> + <a name="M000158"></a> + + <div class="method-heading"> + + <span class="method-name">unify_key</span><span + class="method-args">(iter, key)</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p class="missing-docs">(Not documented)</p> + + + + <div class="method-source-code" + id="unify-key-source"> +<pre> +<span class="ruby-comment cmt"># File lib/json/editor.rb, line 742</span> + <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unify_key</span>(<span class="ruby-identifier">iter</span>, <span class="ruby-identifier">key</span>) + <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'Key'</span> + <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">parent</span> + <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">iter</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">content</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">key</span> } + <span class="ruby-identifier">old_key</span> = <span class="ruby-identifier">key</span> + <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span> + <span class="ruby-keyword kw">begin</span> + <span class="ruby-identifier">key</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"%s.%d"</span>, <span class="ruby-identifier">old_key</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) + <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">iter</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">content</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">key</span> } + <span class="ruby-keyword kw">end</span> + <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">key</span> + <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + </div> + + + </div> + + + </div> + + + <div id="rdoc-debugging-section-dump" class="debugging-section"> + + <p>Disabled; run with --debug to generate this.</p> + + </div> + + <div id="validator-badges"> + <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p> + <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish + Rdoc Generator</a> 1.1.6</small>.</p> + </div> + +</body> +</html> + |