summaryrefslogtreecommitdiff
path: root/doc/JSON/Editor/JSONTreeView.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/JSON/Editor/JSONTreeView.html')
-rw-r--r--doc/JSON/Editor/JSONTreeView.html1035
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&amp;height=550&amp;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">&quot;New element into #{parent ? parent.type : 'root'}&quot;</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">&quot;Type:&quot;</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">&quot;Value:&quot;</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">&amp;</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">&quot;Find a node matching regex in tree.&quot;</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">&quot;Regex:&quot;</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">&amp;</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">&gt;</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">&quot;Evaluation of regex /#{regex_input.text}/ failed: #{e}!&quot;</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">&quot;New (key, value) pair for Hash&quot;</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">&quot;Key:&quot;</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">&quot;Type:&quot;</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">&quot;Value:&quot;</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">&amp;</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">&quot;Give an order criterium for 'x'.&quot;</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">&quot;Order:&quot;</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">&amp;</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">&gt;</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">&gt;</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">&gt;</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">&amp;</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">&quot;Unknown type found in model: #{iter.type}&quot;</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">&quot;unknown type '#{type}' encountered&quot;</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">&quot;%s.%d&quot;</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>
+