<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Salmanasar</id>
		<title>EiffelStudio: an EiffelSoftware project - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Salmanasar"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Salmanasar"/>
		<updated>2026-04-14T22:27:01Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=File:Origamie.JPG&amp;diff=3592</id>
		<title>File:Origamie.JPG</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=File:Origamie.JPG&amp;diff=3592"/>
				<updated>2006-06-19T06:04:11Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=3591</id>
		<title>Talk:Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=3591"/>
				<updated>2006-06-19T06:03:57Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: /* working title of the project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= general TODO =&lt;br /&gt;
[[User:Sanakan|Sanakan]] 02:40, 18 June 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
* revise code hiding/showing&lt;br /&gt;
-&amp;gt; assigned to: panarium, exception, sanakan&lt;br /&gt;
* testing!!!!!&lt;br /&gt;
-&amp;gt; assigned to: everyone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:salmanasar|salmanasar]] 13:15, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I suggest, that every change in the classes is reported with a little comment (perhaps via the mailinglist), so that those of us who do part 3 and 4 are able to support the coders, as sanakan proposed.&lt;br /&gt;
&lt;br /&gt;
= working title of the project =&lt;br /&gt;
&lt;br /&gt;
A few ideas:&lt;br /&gt;
* Folding -&amp;gt; falten -&amp;gt; eiffel-origami&lt;br /&gt;
* FEES : Folding editor for Eiffel Studio&lt;br /&gt;
* hidden beauty project&lt;br /&gt;
* HYCs : Hide your code&lt;br /&gt;
* Folding Fields&lt;br /&gt;
* Heilige Dreifaltigkeit&lt;br /&gt;
&lt;br /&gt;
any comments from team members?&lt;br /&gt;
&lt;br /&gt;
[[User:Sanakan|Sanakan]] 22:02, 19 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
I really like origamiE :-)&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]]&lt;br /&gt;
origamiE is cool. Another propasal: FEdEX (Folding: an Editor EXtension or an Folding for Editors: an Eiffel eXtension)&lt;br /&gt;
&lt;br /&gt;
--[[User:Salmanasar|Salmanasar]] 08:02, 19 June 2006 (CEST)&lt;br /&gt;
just for fun, since I was frustrated of compiling Eiffel: [[Image:origamie.JPG]]&lt;br /&gt;
&lt;br /&gt;
= Testing/Checking =&lt;br /&gt;
&lt;br /&gt;
--[[User:Salmanasar|Salmanasar]] 12:35, 13 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
I wrote a little Eiffel-program with which you can check if our folding-editor works:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
indexing&lt;br /&gt;
	description	: &amp;quot;System's root class, Class to test if folding editor works&amp;quot;&lt;br /&gt;
	author: &amp;quot;salmanasar&amp;quot;&lt;br /&gt;
	date: &amp;quot;11.06.2006&amp;quot;&lt;br /&gt;
	revision: &amp;quot;1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
	ROOT_CLASS&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
	make&lt;br /&gt;
&lt;br /&gt;
feature -- Initialization&lt;br /&gt;
&lt;br /&gt;
	make is&lt;br /&gt;
			-- Creation procedure.&lt;br /&gt;
		local&lt;br /&gt;
			option : INTEGER&lt;br /&gt;
			number : INTEGER&lt;br /&gt;
		do&lt;br /&gt;
			-- Print some welcome text.&lt;br /&gt;
			io.put_string(&amp;quot;Enter your option: {1,2,3}&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;=========================&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.read_integer&lt;br /&gt;
			option := io.last_integer&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;Enter a number between 1 and 20&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;===============================&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.read_integer&lt;br /&gt;
			number := io.last_integer&lt;br /&gt;
			-- if to be folded&lt;br /&gt;
			if (number &amp;gt; 0) and (number &amp;lt; 21) then&lt;br /&gt;
				-- inspect to be folded&lt;br /&gt;
	 			inspect option&lt;br /&gt;
  				when 1 then looping(number)&lt;br /&gt;
  				when 2 then casedecision(number)&lt;br /&gt;
  				when 3 then inspecting_thing(number)&lt;br /&gt;
  					&lt;br /&gt;
  				else io.put_string(&amp;quot;no such option!!&amp;quot;)&lt;br /&gt;
  				end&lt;br /&gt;
			end&lt;br /&gt;
			 &lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
feature -- cases&lt;br /&gt;
	&lt;br /&gt;
	looping(n: INTEGER) is&lt;br /&gt;
			-- feature with 2 loops, 1 if-then-else printing a checkered triangle&lt;br /&gt;
		local&lt;br /&gt;
			i, j, star: INTEGER&lt;br /&gt;
		do&lt;br /&gt;
			from&lt;br /&gt;
				i := 1&lt;br /&gt;
				star := 1&lt;br /&gt;
			until&lt;br /&gt;
				i &amp;gt; n&lt;br /&gt;
			loop&lt;br /&gt;
				from &lt;br /&gt;
				 	j := 1&lt;br /&gt;
				until&lt;br /&gt;
					j &amp;gt; i&lt;br /&gt;
				loop&lt;br /&gt;
					if j \\ 2 = star then&lt;br /&gt;
						io.put_character (' ')&lt;br /&gt;
					else &lt;br /&gt;
					 	io.put_character ('*')&lt;br /&gt;
					end&lt;br /&gt;
					j := j + 1&lt;br /&gt;
				end&lt;br /&gt;
				star := 1 - star&lt;br /&gt;
				i := i + 1&lt;br /&gt;
				io.put_new_line&lt;br /&gt;
			end &lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	&lt;br /&gt;
	casedecision(n:INTEGER) is&lt;br /&gt;
			--  feature with if then elseif&lt;br /&gt;
		do &lt;br /&gt;
			-- if to be folded&lt;br /&gt;
			if n &amp;gt; 10&lt;br /&gt;
   				then io.put_string (&amp;quot;What a huge number!!!&amp;quot;)&lt;br /&gt;
   			elseif n &amp;gt;5 &lt;br /&gt;
   				then io.put_string (&amp;quot;What a little number!!!&amp;quot;)&lt;br /&gt;
   			else io.put_string (&amp;quot;What a tiny number!!!&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	inspecting_thing(n:INTEGER) is&lt;br /&gt;
			--  feature with weird inspecting thing&lt;br /&gt;
		do &lt;br /&gt;
				-- inspect to be folded&lt;br /&gt;
	 			inspect n&lt;br /&gt;
  				when 1 then io.put_string (&amp;quot;one&amp;quot;)&lt;br /&gt;
  				when 2 then io.put_string (&amp;quot;two&amp;quot;)&lt;br /&gt;
  				when 3 then io.put_string (&amp;quot;three&amp;quot;)&lt;br /&gt;
  				when 4 then io.put_string (&amp;quot;four&amp;quot;)&lt;br /&gt;
  				when 5 then io.put_string (&amp;quot;five&amp;quot;)&lt;br /&gt;
  				when 6 then io.put_string (&amp;quot;six&amp;quot;)&lt;br /&gt;
  				when 7 then io.put_string (&amp;quot;seven&amp;quot;)&lt;br /&gt;
  				when 8 then io.put_string (&amp;quot;eight&amp;quot;)&lt;br /&gt;
  				else io.put_string (&amp;quot;too big&amp;quot;)&lt;br /&gt;
  				end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end -- class ROOT_CLASS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ADT: general Talk =&lt;br /&gt;
[[User:Exception|Exception]] 14:45, 4 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
I think we need another data type / class that specifies where folding is possible and whether it's folded or not. I propose the name '''EV_FOLDING_AREA'''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it should have the following functions: &amp;lt;br/&amp;gt;&lt;br /&gt;
'''create:''' -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''from:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''to:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes until this character. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''folded:''' EV_FOLDING_AREA -&amp;gt; BOOLEAN &amp;lt;br/&amp;gt;&lt;br /&gt;
is it folded or not? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''fold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
fold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''unfold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
unfold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''content:''' EV_FOLDING_AREA x EV_FOLDING_WIDGET -&amp;gt; STRING &amp;lt;br/&amp;gt;&lt;br /&gt;
the content of the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the structure would be controlled by the controller which knows of the AST. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
as always, this is only a proposal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]] 13:03, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How does Eiffel implement text as a sequence of characters? line by line? That will greatly influence our implementation of the folding widget I guess. A &amp;quot;folding area&amp;quot; will then contain the lines themselves and the start and end coordinates of the area, so that when the displayer draws the editor area it gets those coordinates from the folding controller and doesn't display those lines but puts a symbol there instead. Just thinking out loud here...&lt;br /&gt;
&lt;br /&gt;
= ADT = &lt;br /&gt;
moved from front-page&amp;lt;br/&amp;gt;[[User:Sanakan|Sanakan]] 02:40, 18 June 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: to be revised!&lt;br /&gt;
==Types==&lt;br /&gt;
FOLDING_WIDGET, TEXT_BLOCK, INTEGER, BOOLEAN, &lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
new -&amp;gt; FOLDING_WIDGET&amp;lt;br/&amp;gt;&lt;br /&gt;
definearea: FOLDING_WIDGET X HIGHLIGHTED_TEXT_BLOCK -&amp;gt; FOLDING_WIDGET&amp;lt;br/&amp;gt;&lt;br /&gt;
from: FOLDING_WIDGET -&amp;gt; INTEGER&amp;lt;br/&amp;gt;&lt;br /&gt;
to: FOLDING_WIDGET -&amp;gt; INTEGER&amp;lt;br/&amp;gt;&lt;br /&gt;
folded: FOLDING_WIDGET -&amp;gt; BOOLEAN&amp;lt;br/&amp;gt;&lt;br /&gt;
fold: FOLDING_WIDGET -&amp;gt; FOLDING_WIDGET&amp;lt;br/&amp;gt; &lt;br /&gt;
unfold: FOLDING_WIDGET -&amp;gt; FOLDING_WIDGET&amp;lt;br/&amp;gt;&lt;br /&gt;
content: FOLDING_WIDGET -&amp;gt; BLOCK&amp;lt;br/&amp;gt;&lt;br /&gt;
numberoflines: FOLDING_WIDGET -&amp;gt; INTEGER&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
none&lt;br /&gt;
&lt;br /&gt;
==Axioms==&lt;br /&gt;
&lt;br /&gt;
for all w,v :: FOLDING_WIDGET, tb :: TEXT_BLOCK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
from(definearea(w,tb)) = firstline(tb) &lt;br /&gt;
to(definearea(w,tb) = lastline(tb) &lt;br /&gt;
content(new) = NULL &lt;br /&gt;
content(definearea(w,tb)) = tb &lt;br /&gt;
numberoflines(new) = 0 &lt;br /&gt;
numberoflines(definearea(w,tb)) = to(definearea(w,tb)) - from(definearea(w,tb)) &lt;br /&gt;
folded(new) = false &lt;br /&gt;
folded(fold(w)) = true&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=3590</id>
		<title>Talk:Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=3590"/>
				<updated>2006-06-19T06:02:46Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: /* working title of the project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= general TODO =&lt;br /&gt;
[[User:Sanakan|Sanakan]] 02:40, 18 June 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
* revise code hiding/showing&lt;br /&gt;
-&amp;gt; assigned to: panarium, exception, sanakan&lt;br /&gt;
* testing!!!!!&lt;br /&gt;
-&amp;gt; assigned to: everyone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:salmanasar|salmanasar]] 13:15, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I suggest, that every change in the classes is reported with a little comment (perhaps via the mailinglist), so that those of us who do part 3 and 4 are able to support the coders, as sanakan proposed.&lt;br /&gt;
&lt;br /&gt;
= working title of the project =&lt;br /&gt;
&lt;br /&gt;
A few ideas:&lt;br /&gt;
* Folding -&amp;gt; falten -&amp;gt; eiffel-origami&lt;br /&gt;
* FEES : Folding editor for Eiffel Studio&lt;br /&gt;
* hidden beauty project&lt;br /&gt;
* HYCs : Hide your code&lt;br /&gt;
* Folding Fields&lt;br /&gt;
* Heilige Dreifaltigkeit&lt;br /&gt;
&lt;br /&gt;
any comments from team members?&lt;br /&gt;
&lt;br /&gt;
[[User:Sanakan|Sanakan]] 22:02, 19 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
I really like origamiE :-)&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]]&lt;br /&gt;
origamiE is cool. Another propasal: FEdEX (Folding: an Editor EXtension or an Folding for Editors: an Eiffel eXtension)&lt;br /&gt;
&lt;br /&gt;
--[[User:Salmanasar|Salmanasar]] 08:02, 19 June 2006 (CEST)&lt;br /&gt;
just for fun, since I was frustrated of compiling Eiffel: [[Image:http://n.ethz.ch/student/degend/download/origamie.JPG]]&lt;br /&gt;
&lt;br /&gt;
= Testing/Checking =&lt;br /&gt;
&lt;br /&gt;
--[[User:Salmanasar|Salmanasar]] 12:35, 13 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
I wrote a little Eiffel-program with which you can check if our folding-editor works:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
indexing&lt;br /&gt;
	description	: &amp;quot;System's root class, Class to test if folding editor works&amp;quot;&lt;br /&gt;
	author: &amp;quot;salmanasar&amp;quot;&lt;br /&gt;
	date: &amp;quot;11.06.2006&amp;quot;&lt;br /&gt;
	revision: &amp;quot;1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
	ROOT_CLASS&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
	make&lt;br /&gt;
&lt;br /&gt;
feature -- Initialization&lt;br /&gt;
&lt;br /&gt;
	make is&lt;br /&gt;
			-- Creation procedure.&lt;br /&gt;
		local&lt;br /&gt;
			option : INTEGER&lt;br /&gt;
			number : INTEGER&lt;br /&gt;
		do&lt;br /&gt;
			-- Print some welcome text.&lt;br /&gt;
			io.put_string(&amp;quot;Enter your option: {1,2,3}&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;=========================&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.read_integer&lt;br /&gt;
			option := io.last_integer&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;Enter a number between 1 and 20&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;===============================&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.read_integer&lt;br /&gt;
			number := io.last_integer&lt;br /&gt;
			-- if to be folded&lt;br /&gt;
			if (number &amp;gt; 0) and (number &amp;lt; 21) then&lt;br /&gt;
				-- inspect to be folded&lt;br /&gt;
	 			inspect option&lt;br /&gt;
  				when 1 then looping(number)&lt;br /&gt;
  				when 2 then casedecision(number)&lt;br /&gt;
  				when 3 then inspecting_thing(number)&lt;br /&gt;
  					&lt;br /&gt;
  				else io.put_string(&amp;quot;no such option!!&amp;quot;)&lt;br /&gt;
  				end&lt;br /&gt;
			end&lt;br /&gt;
			 &lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
feature -- cases&lt;br /&gt;
	&lt;br /&gt;
	looping(n: INTEGER) is&lt;br /&gt;
			-- feature with 2 loops, 1 if-then-else printing a checkered triangle&lt;br /&gt;
		local&lt;br /&gt;
			i, j, star: INTEGER&lt;br /&gt;
		do&lt;br /&gt;
			from&lt;br /&gt;
				i := 1&lt;br /&gt;
				star := 1&lt;br /&gt;
			until&lt;br /&gt;
				i &amp;gt; n&lt;br /&gt;
			loop&lt;br /&gt;
				from &lt;br /&gt;
				 	j := 1&lt;br /&gt;
				until&lt;br /&gt;
					j &amp;gt; i&lt;br /&gt;
				loop&lt;br /&gt;
					if j \\ 2 = star then&lt;br /&gt;
						io.put_character (' ')&lt;br /&gt;
					else &lt;br /&gt;
					 	io.put_character ('*')&lt;br /&gt;
					end&lt;br /&gt;
					j := j + 1&lt;br /&gt;
				end&lt;br /&gt;
				star := 1 - star&lt;br /&gt;
				i := i + 1&lt;br /&gt;
				io.put_new_line&lt;br /&gt;
			end &lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	&lt;br /&gt;
	casedecision(n:INTEGER) is&lt;br /&gt;
			--  feature with if then elseif&lt;br /&gt;
		do &lt;br /&gt;
			-- if to be folded&lt;br /&gt;
			if n &amp;gt; 10&lt;br /&gt;
   				then io.put_string (&amp;quot;What a huge number!!!&amp;quot;)&lt;br /&gt;
   			elseif n &amp;gt;5 &lt;br /&gt;
   				then io.put_string (&amp;quot;What a little number!!!&amp;quot;)&lt;br /&gt;
   			else io.put_string (&amp;quot;What a tiny number!!!&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	inspecting_thing(n:INTEGER) is&lt;br /&gt;
			--  feature with weird inspecting thing&lt;br /&gt;
		do &lt;br /&gt;
				-- inspect to be folded&lt;br /&gt;
	 			inspect n&lt;br /&gt;
  				when 1 then io.put_string (&amp;quot;one&amp;quot;)&lt;br /&gt;
  				when 2 then io.put_string (&amp;quot;two&amp;quot;)&lt;br /&gt;
  				when 3 then io.put_string (&amp;quot;three&amp;quot;)&lt;br /&gt;
  				when 4 then io.put_string (&amp;quot;four&amp;quot;)&lt;br /&gt;
  				when 5 then io.put_string (&amp;quot;five&amp;quot;)&lt;br /&gt;
  				when 6 then io.put_string (&amp;quot;six&amp;quot;)&lt;br /&gt;
  				when 7 then io.put_string (&amp;quot;seven&amp;quot;)&lt;br /&gt;
  				when 8 then io.put_string (&amp;quot;eight&amp;quot;)&lt;br /&gt;
  				else io.put_string (&amp;quot;too big&amp;quot;)&lt;br /&gt;
  				end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end -- class ROOT_CLASS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ADT: general Talk =&lt;br /&gt;
[[User:Exception|Exception]] 14:45, 4 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
I think we need another data type / class that specifies where folding is possible and whether it's folded or not. I propose the name '''EV_FOLDING_AREA'''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it should have the following functions: &amp;lt;br/&amp;gt;&lt;br /&gt;
'''create:''' -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''from:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''to:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes until this character. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''folded:''' EV_FOLDING_AREA -&amp;gt; BOOLEAN &amp;lt;br/&amp;gt;&lt;br /&gt;
is it folded or not? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''fold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
fold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''unfold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
unfold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''content:''' EV_FOLDING_AREA x EV_FOLDING_WIDGET -&amp;gt; STRING &amp;lt;br/&amp;gt;&lt;br /&gt;
the content of the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the structure would be controlled by the controller which knows of the AST. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
as always, this is only a proposal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]] 13:03, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How does Eiffel implement text as a sequence of characters? line by line? That will greatly influence our implementation of the folding widget I guess. A &amp;quot;folding area&amp;quot; will then contain the lines themselves and the start and end coordinates of the area, so that when the displayer draws the editor area it gets those coordinates from the folding controller and doesn't display those lines but puts a symbol there instead. Just thinking out loud here...&lt;br /&gt;
&lt;br /&gt;
= ADT = &lt;br /&gt;
moved from front-page&amp;lt;br/&amp;gt;[[User:Sanakan|Sanakan]] 02:40, 18 June 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: to be revised!&lt;br /&gt;
==Types==&lt;br /&gt;
FOLDING_WIDGET, TEXT_BLOCK, INTEGER, BOOLEAN, &lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
new -&amp;gt; FOLDING_WIDGET&amp;lt;br/&amp;gt;&lt;br /&gt;
definearea: FOLDING_WIDGET X HIGHLIGHTED_TEXT_BLOCK -&amp;gt; FOLDING_WIDGET&amp;lt;br/&amp;gt;&lt;br /&gt;
from: FOLDING_WIDGET -&amp;gt; INTEGER&amp;lt;br/&amp;gt;&lt;br /&gt;
to: FOLDING_WIDGET -&amp;gt; INTEGER&amp;lt;br/&amp;gt;&lt;br /&gt;
folded: FOLDING_WIDGET -&amp;gt; BOOLEAN&amp;lt;br/&amp;gt;&lt;br /&gt;
fold: FOLDING_WIDGET -&amp;gt; FOLDING_WIDGET&amp;lt;br/&amp;gt; &lt;br /&gt;
unfold: FOLDING_WIDGET -&amp;gt; FOLDING_WIDGET&amp;lt;br/&amp;gt;&lt;br /&gt;
content: FOLDING_WIDGET -&amp;gt; BLOCK&amp;lt;br/&amp;gt;&lt;br /&gt;
numberoflines: FOLDING_WIDGET -&amp;gt; INTEGER&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
none&lt;br /&gt;
&lt;br /&gt;
==Axioms==&lt;br /&gt;
&lt;br /&gt;
for all w,v :: FOLDING_WIDGET, tb :: TEXT_BLOCK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
from(definearea(w,tb)) = firstline(tb) &lt;br /&gt;
to(definearea(w,tb) = lastline(tb) &lt;br /&gt;
content(new) = NULL &lt;br /&gt;
content(definearea(w,tb)) = tb &lt;br /&gt;
numberoflines(new) = 0 &lt;br /&gt;
numberoflines(definearea(w,tb)) = to(definearea(w,tb)) - from(definearea(w,tb)) &lt;br /&gt;
folded(new) = false &lt;br /&gt;
folded(fold(w)) = true&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=3378</id>
		<title>Talk:Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=3378"/>
				<updated>2006-06-13T10:35:49Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: /* Testing/Checking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= general TODO =&lt;br /&gt;
[[User:Sanakan|Sanakan]] 20:37, 3 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
syntax: phase &amp;lt;nr&amp;gt; [&amp;lt;who&amp;gt;] &amp;lt;deadline&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''phase 0''' (everyone!) saturday, may 6&lt;br /&gt;
* specify ADT&lt;br /&gt;
* generate and discuss a complete ADT of the EV_FOLDING_WIDGET here, if it's complete &amp;amp; correct, we can copy it over to the main page.&lt;br /&gt;
&lt;br /&gt;
'''phase 1''' (stefan, oliver, thomas, [[User:Grippus|Grippus]], [[User:Sanakan|sanakan]]) saturday, may 13&lt;br /&gt;
* implement first rough draft of the EV_FOLDING_WIDGET based on the ADT from above (see also hint below).&lt;br /&gt;
&lt;br /&gt;
'''phase 2''' (lukas, [[User:Bru|Bru]], [[User:Lord _Bubu|Lord Bubu]], [[User:Sanakan|sanakan]]) ...&lt;br /&gt;
* write interface EV_FOLDING_CONTROLLER for users to use our folding widget by supplying an AST.&lt;br /&gt;
&lt;br /&gt;
'''phase 3''' ([[User:Grippus|Grippus]], [[User:Ledergec|Ledergec]], [[User:salmanasar|salmanasar]], ) ...&lt;br /&gt;
* extensive testing (all members)&lt;br /&gt;
* documentation&lt;br /&gt;
&lt;br /&gt;
'''phase 4''' (to be assigned) ...&lt;br /&gt;
* integration with EiffelStudio (aka. wunschtraum...)&lt;br /&gt;
&lt;br /&gt;
= hint =&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
&lt;br /&gt;
The folding support should be included the: EDITABLE_TEXT_PANEL&lt;br /&gt;
&lt;br /&gt;
[[User:Grippus|Grippus]]&lt;br /&gt;
&lt;br /&gt;
I agree on having those functionalities; but we do not have any changes there; i think the view (of MVC model) is resided in 57dev\Eiffel\interface\new_graphical\text_window\interface. e.g. EB_SMART_EDITOR, which inherits from EDITABLE_TEXT_PANEL (indirectly) and OUTPUT_WINDOW...&lt;br /&gt;
&lt;br /&gt;
furthermore one should have an entrie in View -&amp;gt; Class View  to activate/deactivate folding support in ES. (for debugging purposes)... (unforttunately ES still won't compile properly:-(!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]] 13:00, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think we should concentrate on finally getting together a list of specs and a BON diagram or something so that we have an idea on how to implement the fracking thing as a simple EV widget before we start thinking about ES. I guess we will have some kind of controller that offers the interface to the container on one side and the displayer on the other. I still have no idea how to start, though, I will start looking at the EDITABLE_TEXT_PANEL source after these frelling midterms.&lt;br /&gt;
&lt;br /&gt;
[[User:salmanasar|salmanasar]] 13:15, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I suggest, that every change in the classes is reported with a little comment (perhaps via the mailinglist), so that those of us who do part 3 and 4 are able to support the coders, as sanakan proposed.&lt;br /&gt;
&lt;br /&gt;
= ADT =&lt;br /&gt;
WhatWhereWhenHowWhy&amp;lt;br/&amp;gt;&lt;br /&gt;
[[User:Sanakan|Sanakan]] 16:59, 26 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
discuss what the ADT of the widget should be like:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Exception|Exception]] 14:45, 4 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
I think we need another data type / class that specifies where folding is possible and whether it's folded or not. I propose the name '''EV_FOLDING_AREA'''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it should have the following functions: &amp;lt;br/&amp;gt;&lt;br /&gt;
'''create:''' -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''from:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''to:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes until this character. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''folded:''' EV_FOLDING_AREA -&amp;gt; BOOLEAN &amp;lt;br/&amp;gt;&lt;br /&gt;
is it folded or not? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''fold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
fold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''unfold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
unfold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''content:''' EV_FOLDING_AREA x EV_FOLDING_WIDGET -&amp;gt; STRING &amp;lt;br/&amp;gt;&lt;br /&gt;
the content of the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the structure would be controlled by the controller which knows of the AST. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
as always, this is only a proposal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]] 13:03, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How does Eiffel implement text as a sequence of characters? line by line? That will greatly influence our implementation of the folding widget I guess. A &amp;quot;folding area&amp;quot; will then contain the lines themselves and the start and end coordinates of the area, so that when the displayer draws the editor area it gets those coordinates from the folding controller and doesn't display those lines but puts a symbol there instead. Just thinking out loud here...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Unthomas|Unthomas]] 14:05, 1 May 2006 (CEST) &amp;lt;br/&amp;gt;&lt;br /&gt;
Here a link to an interesting paper about ADTs and text editors (node 15):&lt;br /&gt;
http://www.cs.unm.edu/~crowley/papers/sds/sds.html &amp;lt;br/&amp;gt;&lt;br /&gt;
Are you able to see the figures?&lt;br /&gt;
&lt;br /&gt;
: no images over here, either... but here's a download of said paper: [http://citeseer.ist.psu.edu/rd/0%2C162545%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/compress/0/papers/cs/1797/http:zSzzSzwww.bolthole.comzSzjwordzSzwppaper.ps.gz/crowley98data.ps crowley98data.ps]&amp;lt;br/&amp;gt;[[User:Sanakan|Sanakan]] 01:06, 2 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
= working title of the project =&lt;br /&gt;
&lt;br /&gt;
A few ideas:&lt;br /&gt;
* Folding -&amp;gt; falten -&amp;gt; eiffel-origami&lt;br /&gt;
* FEES : Folding editor for Eiffel Studio&lt;br /&gt;
* hidden beauty project&lt;br /&gt;
* HYCs : Hide your code&lt;br /&gt;
* Folding Fields&lt;br /&gt;
* Heilige Dreifaltigkeit&lt;br /&gt;
&lt;br /&gt;
any comments from team members?&lt;br /&gt;
&lt;br /&gt;
[[User:Sanakan|Sanakan]] 22:02, 19 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
I really like origamiE :-)&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]]&lt;br /&gt;
origamiE is cool. Another propasal: FEdEX (Folding: an Editor EXtension or an Folding for Editors: an Eiffel eXtension)&lt;br /&gt;
&lt;br /&gt;
== Testing/Checking ==&lt;br /&gt;
&lt;br /&gt;
--[[User:Salmanasar|Salmanasar]] 12:35, 13 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
I wrote a little Eiffel-program with which you can check if our folding-editor works:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
indexing&lt;br /&gt;
	description	: &amp;quot;System's root class, Class to test if folding editor works&amp;quot;&lt;br /&gt;
	author: &amp;quot;salmanasar&amp;quot;&lt;br /&gt;
	date: &amp;quot;11.06.2006&amp;quot;&lt;br /&gt;
	revision: &amp;quot;1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
	ROOT_CLASS&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
	make&lt;br /&gt;
&lt;br /&gt;
feature -- Initialization&lt;br /&gt;
&lt;br /&gt;
	make is&lt;br /&gt;
			-- Creation procedure.&lt;br /&gt;
		local&lt;br /&gt;
			option : INTEGER&lt;br /&gt;
			number : INTEGER&lt;br /&gt;
		do&lt;br /&gt;
			-- Print some welcome text.&lt;br /&gt;
			io.put_string(&amp;quot;Enter your option: {1,2,3}&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;=========================&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.read_integer&lt;br /&gt;
			option := io.last_integer&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;Enter a number between 1 and 20&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;===============================&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.read_integer&lt;br /&gt;
			number := io.last_integer&lt;br /&gt;
			-- if to be folded&lt;br /&gt;
			if (number &amp;gt; 0) and (number &amp;lt; 21) then&lt;br /&gt;
				-- inspect to be folded&lt;br /&gt;
	 			inspect option&lt;br /&gt;
  				when 1 then looping(number)&lt;br /&gt;
  				when 2 then casedecision(number)&lt;br /&gt;
  				when 3 then inspecting_thing(number)&lt;br /&gt;
  					&lt;br /&gt;
  				else io.put_string(&amp;quot;no such option!!&amp;quot;)&lt;br /&gt;
  				end&lt;br /&gt;
			end&lt;br /&gt;
			 &lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
feature -- cases&lt;br /&gt;
	&lt;br /&gt;
	looping(n: INTEGER) is&lt;br /&gt;
			-- feature with 2 loops, 1 if-then-else printing a checkered triangle&lt;br /&gt;
		local&lt;br /&gt;
			i, j, star: INTEGER&lt;br /&gt;
		do&lt;br /&gt;
			from&lt;br /&gt;
				i := 1&lt;br /&gt;
				star := 1&lt;br /&gt;
			until&lt;br /&gt;
				i &amp;gt; n&lt;br /&gt;
			loop&lt;br /&gt;
				from &lt;br /&gt;
				 	j := 1&lt;br /&gt;
				until&lt;br /&gt;
					j &amp;gt; i&lt;br /&gt;
				loop&lt;br /&gt;
					if j \\ 2 = star then&lt;br /&gt;
						io.put_character (' ')&lt;br /&gt;
					else &lt;br /&gt;
					 	io.put_character ('*')&lt;br /&gt;
					end&lt;br /&gt;
					j := j + 1&lt;br /&gt;
				end&lt;br /&gt;
				star := 1 - star&lt;br /&gt;
				i := i + 1&lt;br /&gt;
				io.put_new_line&lt;br /&gt;
			end &lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	&lt;br /&gt;
	casedecision(n:INTEGER) is&lt;br /&gt;
			--  feature with if then elseif&lt;br /&gt;
		do &lt;br /&gt;
			-- if to be folded&lt;br /&gt;
			if n &amp;gt; 10&lt;br /&gt;
   				then io.put_string (&amp;quot;What a huge number!!!&amp;quot;)&lt;br /&gt;
   			elseif n &amp;gt;5 &lt;br /&gt;
   				then io.put_string (&amp;quot;What a little number!!!&amp;quot;)&lt;br /&gt;
   			else io.put_string (&amp;quot;What a tiny number!!!&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	inspecting_thing(n:INTEGER) is&lt;br /&gt;
			--  feature with weird inspecting thing&lt;br /&gt;
		do &lt;br /&gt;
				-- inspect to be folded&lt;br /&gt;
	 			inspect n&lt;br /&gt;
  				when 1 then io.put_string (&amp;quot;one&amp;quot;)&lt;br /&gt;
  				when 2 then io.put_string (&amp;quot;two&amp;quot;)&lt;br /&gt;
  				when 3 then io.put_string (&amp;quot;three&amp;quot;)&lt;br /&gt;
  				when 4 then io.put_string (&amp;quot;four&amp;quot;)&lt;br /&gt;
  				when 5 then io.put_string (&amp;quot;five&amp;quot;)&lt;br /&gt;
  				when 6 then io.put_string (&amp;quot;six&amp;quot;)&lt;br /&gt;
  				when 7 then io.put_string (&amp;quot;seven&amp;quot;)&lt;br /&gt;
  				when 8 then io.put_string (&amp;quot;eight&amp;quot;)&lt;br /&gt;
  				else io.put_string (&amp;quot;too big&amp;quot;)&lt;br /&gt;
  				end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end -- class ROOT_CLASS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=3377</id>
		<title>Talk:Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=3377"/>
				<updated>2006-06-13T10:35:23Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: Testing/Checking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= general TODO =&lt;br /&gt;
[[User:Sanakan|Sanakan]] 20:37, 3 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
syntax: phase &amp;lt;nr&amp;gt; [&amp;lt;who&amp;gt;] &amp;lt;deadline&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''phase 0''' (everyone!) saturday, may 6&lt;br /&gt;
* specify ADT&lt;br /&gt;
* generate and discuss a complete ADT of the EV_FOLDING_WIDGET here, if it's complete &amp;amp; correct, we can copy it over to the main page.&lt;br /&gt;
&lt;br /&gt;
'''phase 1''' (stefan, oliver, thomas, [[User:Grippus|Grippus]], [[User:Sanakan|sanakan]]) saturday, may 13&lt;br /&gt;
* implement first rough draft of the EV_FOLDING_WIDGET based on the ADT from above (see also hint below).&lt;br /&gt;
&lt;br /&gt;
'''phase 2''' (lukas, [[User:Bru|Bru]], [[User:Lord _Bubu|Lord Bubu]], [[User:Sanakan|sanakan]]) ...&lt;br /&gt;
* write interface EV_FOLDING_CONTROLLER for users to use our folding widget by supplying an AST.&lt;br /&gt;
&lt;br /&gt;
'''phase 3''' ([[User:Grippus|Grippus]], [[User:Ledergec|Ledergec]], [[User:salmanasar|salmanasar]], ) ...&lt;br /&gt;
* extensive testing (all members)&lt;br /&gt;
* documentation&lt;br /&gt;
&lt;br /&gt;
'''phase 4''' (to be assigned) ...&lt;br /&gt;
* integration with EiffelStudio (aka. wunschtraum...)&lt;br /&gt;
&lt;br /&gt;
= hint =&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
&lt;br /&gt;
The folding support should be included the: EDITABLE_TEXT_PANEL&lt;br /&gt;
&lt;br /&gt;
[[User:Grippus|Grippus]]&lt;br /&gt;
&lt;br /&gt;
I agree on having those functionalities; but we do not have any changes there; i think the view (of MVC model) is resided in 57dev\Eiffel\interface\new_graphical\text_window\interface. e.g. EB_SMART_EDITOR, which inherits from EDITABLE_TEXT_PANEL (indirectly) and OUTPUT_WINDOW...&lt;br /&gt;
&lt;br /&gt;
furthermore one should have an entrie in View -&amp;gt; Class View  to activate/deactivate folding support in ES. (for debugging purposes)... (unforttunately ES still won't compile properly:-(!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]] 13:00, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think we should concentrate on finally getting together a list of specs and a BON diagram or something so that we have an idea on how to implement the fracking thing as a simple EV widget before we start thinking about ES. I guess we will have some kind of controller that offers the interface to the container on one side and the displayer on the other. I still have no idea how to start, though, I will start looking at the EDITABLE_TEXT_PANEL source after these frelling midterms.&lt;br /&gt;
&lt;br /&gt;
[[User:salmanasar|salmanasar]] 13:15, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I suggest, that every change in the classes is reported with a little comment (perhaps via the mailinglist), so that those of us who do part 3 and 4 are able to support the coders, as sanakan proposed.&lt;br /&gt;
&lt;br /&gt;
= ADT =&lt;br /&gt;
WhatWhereWhenHowWhy&amp;lt;br/&amp;gt;&lt;br /&gt;
[[User:Sanakan|Sanakan]] 16:59, 26 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
discuss what the ADT of the widget should be like:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Exception|Exception]] 14:45, 4 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
I think we need another data type / class that specifies where folding is possible and whether it's folded or not. I propose the name '''EV_FOLDING_AREA'''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it should have the following functions: &amp;lt;br/&amp;gt;&lt;br /&gt;
'''create:''' -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''from:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''to:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes until this character. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''folded:''' EV_FOLDING_AREA -&amp;gt; BOOLEAN &amp;lt;br/&amp;gt;&lt;br /&gt;
is it folded or not? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''fold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
fold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''unfold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
unfold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''content:''' EV_FOLDING_AREA x EV_FOLDING_WIDGET -&amp;gt; STRING &amp;lt;br/&amp;gt;&lt;br /&gt;
the content of the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the structure would be controlled by the controller which knows of the AST. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
as always, this is only a proposal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]] 13:03, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How does Eiffel implement text as a sequence of characters? line by line? That will greatly influence our implementation of the folding widget I guess. A &amp;quot;folding area&amp;quot; will then contain the lines themselves and the start and end coordinates of the area, so that when the displayer draws the editor area it gets those coordinates from the folding controller and doesn't display those lines but puts a symbol there instead. Just thinking out loud here...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Unthomas|Unthomas]] 14:05, 1 May 2006 (CEST) &amp;lt;br/&amp;gt;&lt;br /&gt;
Here a link to an interesting paper about ADTs and text editors (node 15):&lt;br /&gt;
http://www.cs.unm.edu/~crowley/papers/sds/sds.html &amp;lt;br/&amp;gt;&lt;br /&gt;
Are you able to see the figures?&lt;br /&gt;
&lt;br /&gt;
: no images over here, either... but here's a download of said paper: [http://citeseer.ist.psu.edu/rd/0%2C162545%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/compress/0/papers/cs/1797/http:zSzzSzwww.bolthole.comzSzjwordzSzwppaper.ps.gz/crowley98data.ps crowley98data.ps]&amp;lt;br/&amp;gt;[[User:Sanakan|Sanakan]] 01:06, 2 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
= working title of the project =&lt;br /&gt;
&lt;br /&gt;
A few ideas:&lt;br /&gt;
* Folding -&amp;gt; falten -&amp;gt; eiffel-origami&lt;br /&gt;
* FEES : Folding editor for Eiffel Studio&lt;br /&gt;
* hidden beauty project&lt;br /&gt;
* HYCs : Hide your code&lt;br /&gt;
* Folding Fields&lt;br /&gt;
* Heilige Dreifaltigkeit&lt;br /&gt;
&lt;br /&gt;
any comments from team members?&lt;br /&gt;
&lt;br /&gt;
[[User:Sanakan|Sanakan]] 22:02, 19 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
I really like origamiE :-)&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]]&lt;br /&gt;
origamiE is cool. Another propasal: FEdEX (Folding: an Editor EXtension or an Folding for Editors: an Eiffel eXtension)&lt;br /&gt;
&lt;br /&gt;
== Testing/Checking ==&lt;br /&gt;
&lt;br /&gt;
--[[User:Salmanasar|Salmanasar]] 12:35, 13 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
I wrote a little Eiffel-programm with which you can check if our folding-editor works:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
indexing&lt;br /&gt;
	description	: &amp;quot;System's root class, Class to test if folding editor works&amp;quot;&lt;br /&gt;
	author: &amp;quot;salmanasar&amp;quot;&lt;br /&gt;
	date: &amp;quot;11.06.2006&amp;quot;&lt;br /&gt;
	revision: &amp;quot;1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
	ROOT_CLASS&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
	make&lt;br /&gt;
&lt;br /&gt;
feature -- Initialization&lt;br /&gt;
&lt;br /&gt;
	make is&lt;br /&gt;
			-- Creation procedure.&lt;br /&gt;
		local&lt;br /&gt;
			option : INTEGER&lt;br /&gt;
			number : INTEGER&lt;br /&gt;
		do&lt;br /&gt;
			-- Print some welcome text.&lt;br /&gt;
			io.put_string(&amp;quot;Enter your option: {1,2,3}&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;=========================&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.read_integer&lt;br /&gt;
			option := io.last_integer&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;Enter a number between 1 and 20&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.put_string(&amp;quot;===============================&amp;quot;)&lt;br /&gt;
			io.new_line&lt;br /&gt;
			io.read_integer&lt;br /&gt;
			number := io.last_integer&lt;br /&gt;
			-- if to be folded&lt;br /&gt;
			if (number &amp;gt; 0) and (number &amp;lt; 21) then&lt;br /&gt;
				-- inspect to be folded&lt;br /&gt;
	 			inspect option&lt;br /&gt;
  				when 1 then looping(number)&lt;br /&gt;
  				when 2 then casedecision(number)&lt;br /&gt;
  				when 3 then inspecting_thing(number)&lt;br /&gt;
  					&lt;br /&gt;
  				else io.put_string(&amp;quot;no such option!!&amp;quot;)&lt;br /&gt;
  				end&lt;br /&gt;
			end&lt;br /&gt;
			 &lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
feature -- cases&lt;br /&gt;
	&lt;br /&gt;
	looping(n: INTEGER) is&lt;br /&gt;
			-- feature with 2 loops, 1 if-then-else printing a checkered triangle&lt;br /&gt;
		local&lt;br /&gt;
			i, j, star: INTEGER&lt;br /&gt;
		do&lt;br /&gt;
			from&lt;br /&gt;
				i := 1&lt;br /&gt;
				star := 1&lt;br /&gt;
			until&lt;br /&gt;
				i &amp;gt; n&lt;br /&gt;
			loop&lt;br /&gt;
				from &lt;br /&gt;
				 	j := 1&lt;br /&gt;
				until&lt;br /&gt;
					j &amp;gt; i&lt;br /&gt;
				loop&lt;br /&gt;
					if j \\ 2 = star then&lt;br /&gt;
						io.put_character (' ')&lt;br /&gt;
					else &lt;br /&gt;
					 	io.put_character ('*')&lt;br /&gt;
					end&lt;br /&gt;
					j := j + 1&lt;br /&gt;
				end&lt;br /&gt;
				star := 1 - star&lt;br /&gt;
				i := i + 1&lt;br /&gt;
				io.put_new_line&lt;br /&gt;
			end &lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	&lt;br /&gt;
	casedecision(n:INTEGER) is&lt;br /&gt;
			--  feature with if then elseif&lt;br /&gt;
		do &lt;br /&gt;
			-- if to be folded&lt;br /&gt;
			if n &amp;gt; 10&lt;br /&gt;
   				then io.put_string (&amp;quot;What a huge number!!!&amp;quot;)&lt;br /&gt;
   			elseif n &amp;gt;5 &lt;br /&gt;
   				then io.put_string (&amp;quot;What a little number!!!&amp;quot;)&lt;br /&gt;
   			else io.put_string (&amp;quot;What a tiny number!!!&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	inspecting_thing(n:INTEGER) is&lt;br /&gt;
			--  feature with weird inspecting thing&lt;br /&gt;
		do &lt;br /&gt;
				-- inspect to be folded&lt;br /&gt;
	 			inspect n&lt;br /&gt;
  				when 1 then io.put_string (&amp;quot;one&amp;quot;)&lt;br /&gt;
  				when 2 then io.put_string (&amp;quot;two&amp;quot;)&lt;br /&gt;
  				when 3 then io.put_string (&amp;quot;three&amp;quot;)&lt;br /&gt;
  				when 4 then io.put_string (&amp;quot;four&amp;quot;)&lt;br /&gt;
  				when 5 then io.put_string (&amp;quot;five&amp;quot;)&lt;br /&gt;
  				when 6 then io.put_string (&amp;quot;six&amp;quot;)&lt;br /&gt;
  				when 7 then io.put_string (&amp;quot;seven&amp;quot;)&lt;br /&gt;
  				when 8 then io.put_string (&amp;quot;eight&amp;quot;)&lt;br /&gt;
  				else io.put_string (&amp;quot;too big&amp;quot;)&lt;br /&gt;
  				end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end -- class ROOT_CLASS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=3005</id>
		<title>Talk:Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=3005"/>
				<updated>2006-05-23T10:09:20Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: /* ADT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= general TODO =&lt;br /&gt;
[[User:Sanakan|Sanakan]] 20:37, 3 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
syntax: phase &amp;lt;nr&amp;gt; [&amp;lt;who&amp;gt;] &amp;lt;deadline&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''phase 0''' (everyone!) saturday, may 6&lt;br /&gt;
* specify ADT&lt;br /&gt;
* generate and discuss a complete ADT of the EV_FOLDING_WIDGET here, if it's complete &amp;amp; correct, we can copy it over to the main page.&lt;br /&gt;
&lt;br /&gt;
'''phase 1''' (stefan, oliver, thomas, [[User:Grippus|Grippus]], [[User:Sanakan|sanakan]]) saturday, may 13&lt;br /&gt;
* implement first rough draft of the EV_FOLDING_WIDGET based on the ADT from above (see also hint below).&lt;br /&gt;
&lt;br /&gt;
'''phase 2''' (lukas, [[User:Bru|Bru]], [[User:Lord _Bubu|Lord Bubu]], [[User:Sanakan|sanakan]]) ...&lt;br /&gt;
* write interface EV_FOLDING_CONTROLLER for users to use our folding widget by supplying an AST.&lt;br /&gt;
&lt;br /&gt;
'''phase 3''' ([[User:Grippus|Grippus]], [[User:Ledergec|Ledergec]], [[User:salmanasar|salmanasar]], ) ...&lt;br /&gt;
* extensive testing (all members)&lt;br /&gt;
* documentation&lt;br /&gt;
&lt;br /&gt;
'''phase 4''' (to be assigned) ...&lt;br /&gt;
* integration with EiffelStudio (aka. wunschtraum...)&lt;br /&gt;
&lt;br /&gt;
= hint =&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
&lt;br /&gt;
The folding support should be included the: EDITABLE_TEXT_PANEL&lt;br /&gt;
&lt;br /&gt;
[[User:Grippus|Grippus]]&lt;br /&gt;
&lt;br /&gt;
I agree on having those functionalities; but we do not have any changes there; i think the view (of MVC model) is resided in 57dev\Eiffel\interface\new_graphical\text_window\interface. e.g. EB_SMART_EDITOR, which inherits from EDITABLE_TEXT_PANEL (indirectly) and OUTPUT_WINDOW...&lt;br /&gt;
&lt;br /&gt;
furthermore one should have an entrie in View -&amp;gt; Class View  to activate/deactivate folding support in ES. (for debugging purposes)... (unforttunately ES still won't compile properly:-(!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]] 13:00, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think we should concentrate on finally getting together a list of specs and a BON diagram or something so that we have an idea on how to implement the fracking thing as a simple EV widget before we start thinking about ES. I guess we will have some kind of controller that offers the interface to the container on one side and the displayer on the other. I still have no idea how to start, though, I will start looking at the EDITABLE_TEXT_PANEL source after these frelling midterms.&lt;br /&gt;
&lt;br /&gt;
[[User:salmanasar|salmanasar]] 13:15, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I suggest, that every change in the classes is reported with a little comment (perhaps via the mailinglist), so that those of us who do part 3 and 4 are able to support the coders, as sanakan proposed.&lt;br /&gt;
&lt;br /&gt;
= ADT =&lt;br /&gt;
WhatWhereWhenHowWhy&amp;lt;br/&amp;gt;&lt;br /&gt;
[[User:Sanakan|Sanakan]] 16:59, 26 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
discuss what the ADT of the widget should be like:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Exception|Exception]] 14:45, 4 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
I think we need another data type / class that specifies where folding is possible and whether it's folded or not. I propose the name '''EV_FOLDING_AREA'''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it should have the following functions: &amp;lt;br/&amp;gt;&lt;br /&gt;
'''create:''' -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''from:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''to:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes until this character. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''folded:''' EV_FOLDING_AREA -&amp;gt; BOOLEAN &amp;lt;br/&amp;gt;&lt;br /&gt;
is it folded or not? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''fold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
fold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''unfold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
unfold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''content:''' EV_FOLDING_AREA x EV_FOLDING_WIDGET -&amp;gt; STRING &amp;lt;br/&amp;gt;&lt;br /&gt;
the content of the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the structure would be controlled by the controller which knows of the AST. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
as always, this is only a proposal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]] 13:03, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How does Eiffel implement text as a sequence of characters? line by line? That will greatly influence our implementation of the folding widget I guess. A &amp;quot;folding area&amp;quot; will then contain the lines themselves and the start and end coordinates of the area, so that when the displayer draws the editor area it gets those coordinates from the folding controller and doesn't display those lines but puts a symbol there instead. Just thinking out loud here...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Unthomas|Unthomas]] 14:05, 1 May 2006 (CEST) &amp;lt;br/&amp;gt;&lt;br /&gt;
Here a link to an interesting paper about ADTs and text editors (node 15):&lt;br /&gt;
http://www.cs.unm.edu/~crowley/papers/sds/sds.html &amp;lt;br/&amp;gt;&lt;br /&gt;
Are you able to see the figures?&lt;br /&gt;
&lt;br /&gt;
: no images over here, either... but here's a download of said paper: [http://citeseer.ist.psu.edu/rd/0%2C162545%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/compress/0/papers/cs/1797/http:zSzzSzwww.bolthole.comzSzjwordzSzwppaper.ps.gz/crowley98data.ps crowley98data.ps]&amp;lt;br/&amp;gt;[[User:Sanakan|Sanakan]] 01:06, 2 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
= working title of the project =&lt;br /&gt;
&lt;br /&gt;
A few ideas:&lt;br /&gt;
* Folding -&amp;gt; falten -&amp;gt; eiffel-origami&lt;br /&gt;
* FEES : Folding editor for Eiffel Studio&lt;br /&gt;
* hidden beauty project&lt;br /&gt;
* HYCs : Hide your code&lt;br /&gt;
* Folding Fields&lt;br /&gt;
* Heilige Dreifaltigkeit&lt;br /&gt;
&lt;br /&gt;
any comments from team members?&lt;br /&gt;
&lt;br /&gt;
[[User:Sanakan|Sanakan]] 22:02, 19 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
I really like origamiE :-)&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]]&lt;br /&gt;
origamiE is cool. Another propasal: FEdEX (Folding: an Editor EXtension or an Folding for Editors: an Eiffel eXtension)&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=2731</id>
		<title>Talk:Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=2731"/>
				<updated>2006-05-09T11:21:13Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: /* hint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= general TODO =&lt;br /&gt;
[[User:Sanakan|Sanakan]] 20:37, 3 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
syntax: phase &amp;lt;nr&amp;gt; [&amp;lt;who&amp;gt;] &amp;lt;deadline&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''phase 0''' (everyone!) saturday, may 6&lt;br /&gt;
* specify ADT&lt;br /&gt;
* generate and discuss a complete ADT of the EV_FOLDING_WIDGET here, if it's complete &amp;amp; correct, we can copy it over to the main page.&lt;br /&gt;
&lt;br /&gt;
'''phase 1''' (stefan, oliver, thomas, [[User:Grippus|Grippus]], [[User:Sanakan|sanakan]]) saturday, may 13&lt;br /&gt;
* implement first rough draft of the EV_FOLDING_WIDGET based on the ADT from above (see also hint below).&lt;br /&gt;
&lt;br /&gt;
'''phase 2''' (lukas, [[User:Bru|Bru]], [[User:Lord _Bubu|Lord Bubu]], [[User:Sanakan|sanakan]]) ...&lt;br /&gt;
* write interface EV_FOLDING_CONTROLLER for users to use our folding widget by supplying an AST.&lt;br /&gt;
&lt;br /&gt;
'''phase 3''' ([[User:Grippus|Grippus]], [[User:Ledergec|Ledergec]], [[User:salmanasar|salmanasar]], ) ...&lt;br /&gt;
* extensive testing (all members)&lt;br /&gt;
* documentation&lt;br /&gt;
&lt;br /&gt;
'''phase 4''' (to be assigned) ...&lt;br /&gt;
* integration with EiffelStudio (aka. wunschtraum...)&lt;br /&gt;
&lt;br /&gt;
= hint =&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
&lt;br /&gt;
The folding support should be included the: EDITABLE_TEXT_PANEL&lt;br /&gt;
&lt;br /&gt;
[[User:Grippus|Grippus]]&lt;br /&gt;
&lt;br /&gt;
I agree on having those functionalities; but we do not have any changes there; i think the view (of MVC model) is resided in 57dev\Eiffel\interface\new_graphical\text_window\interface. e.g. EB_SMART_EDITOR, which inherits from EDITABLE_TEXT_PANEL (indirectly) and OUTPUT_WINDOW...&lt;br /&gt;
&lt;br /&gt;
furthermore one should have an entrie in View -&amp;gt; Class View  to activate/deactivate folding support in ES. (for debugging purposes)... (unforttunately ES still won't compile properly:-(!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]] 13:00, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think we should concentrate on finally getting together a list of specs and a BON diagram or something so that we have an idea on how to implement the fracking thing as a simple EV widget before we start thinking about ES. I guess we will have some kind of controller that offers the interface to the container on one side and the displayer on the other. I still have no idea how to start, though, I will start looking at the EDITABLE_TEXT_PANEL source after these frelling midterms.&lt;br /&gt;
&lt;br /&gt;
[[User:salmanasar|salmanasar]] 13:15, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I suggest, that every change in the classes is reported with a little comment (perhaps via the mailinglist), so that those of us who do part 3 and 4 are able to support the coders, as sanakan proposed.&lt;br /&gt;
&lt;br /&gt;
= ADT =&lt;br /&gt;
WhatWhereWhenHowWhy&amp;lt;br/&amp;gt;&lt;br /&gt;
[[User:Sanakan|Sanakan]] 16:59, 26 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
discuss what the ADT of the widget should be like:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Exception|Exception]] 14:45, 4 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
I think we need another data type / class that specifies where folding is possible and whether it's folded or not. I propose the name '''EV_FOLDING_AREA'''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it should have the following functions: &amp;lt;br/&amp;gt;&lt;br /&gt;
'''create:''' -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''from:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes from this character on. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''to:''' EV_FOLDING_AREA -&amp;gt; INTEGER &amp;lt;br/&amp;gt;&lt;br /&gt;
the area goes until this character. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''folded:''' EV_FOLDING_AREA -&amp;gt; BOOLEAN &amp;lt;br/&amp;gt;&lt;br /&gt;
is it folded or not? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''fold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
fold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''unfold:''' EV_FOLDING_AREA -&amp;gt; EV_FOLDING_AREA &amp;lt;br/&amp;gt;&lt;br /&gt;
fold the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
'''content:''' EV_FOLDING_AREA x EV_FOLDING_WIDGET -&amp;gt; STRING &amp;lt;br/&amp;gt;&lt;br /&gt;
the content of the area. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the structure would be controlled by the controller which knows of the AST. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
as always, this is only a proposal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]] 13:03, 9 May 2006 (CEST)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How does Eiffel implement text as a sequence of characters? line by line? That will greatly influence our implementation of the folding widget I guess. A &amp;quot;folding area&amp;quot; will then contain the lines themselves and the start and end coordinates of the area, so that when the displayer draws the editor area it gets those coordinates from the folding controller and doesn't display those lines but puts a symbol there instead. Just thinking out loud here...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Unthomas|Unthomas]] 14:05, 1 May 2006 (CEST) &amp;lt;br/&amp;gt;&lt;br /&gt;
Here a link to an interesting paper about ADTs and text editors (node 15):&lt;br /&gt;
http://www.cs.unm.edu/~crowley/papers/sds/sds.html &amp;lt;br/&amp;gt;&lt;br /&gt;
Are you able to see the figures?&lt;br /&gt;
&lt;br /&gt;
: no images over here, either... but here's a download of said paper: [http://citeseer.ist.psu.edu/rd/0%2C162545%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/compress/0/papers/cs/1797/http:zSzzSzwww.bolthole.comzSzjwordzSzwppaper.ps.gz/crowley98data.ps crowley98data.ps]&amp;lt;br/&amp;gt;[[User:Sanakan|Sanakan]] 01:06, 2 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
= working title of the project =&lt;br /&gt;
&lt;br /&gt;
A few ideas:&lt;br /&gt;
* Folding -&amp;gt; falten -&amp;gt; eiffel-origami&lt;br /&gt;
* FEES : Folding editor for Eiffel Studio&lt;br /&gt;
* hidden beauty project&lt;br /&gt;
* HYCs : Hide your code&lt;br /&gt;
* Folding Fields&lt;br /&gt;
* Heilige Dreifaltigkeit&lt;br /&gt;
&lt;br /&gt;
any comments from team members?&lt;br /&gt;
&lt;br /&gt;
[[User:Sanakan|Sanakan]] 22:02, 19 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
I really like origamiE :-)&lt;br /&gt;
&lt;br /&gt;
[[User:Bru|Bru]]&lt;br /&gt;
origamiE is cool. Another propasal: FEdEX (Folding: an Editor EXtension or an Folding for Editors: an Eiffel eXtension)&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=2596</id>
		<title>Talk:Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=2596"/>
				<updated>2006-05-03T20:31:31Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: /* general TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= general TODO =&lt;br /&gt;
[[User:Sanakan|Sanakan]] 20:37, 3 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
syntax: phase &amp;lt;nr&amp;gt; [&amp;lt;who&amp;gt;] &amp;lt;deadline&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''phase 0''' (everyone!) saturday, may 6&lt;br /&gt;
* specify ADT&lt;br /&gt;
* generate and discuss a complete ADT of the EV_FOLDING_WIDGET here, if it's complete &amp;amp; correct, we can copy it over to the main page.&lt;br /&gt;
&lt;br /&gt;
'''phase 1''' (stefan, oliver, thomas, [[User:Grippus|Grippus]], [[User:Sanakan|sanakan]]) saturday, may 13&lt;br /&gt;
* implement first rough draft of the EV_FOLDING_WIDGET based on the ADT from above (see also hint below).&lt;br /&gt;
&lt;br /&gt;
'''phase 2''' (lukas, lorenz, [[User:Lord _Bubu|Lord Bubu]], [[User:Sanakan|sanakan]]) ...&lt;br /&gt;
* write interface EV_FOLDING_CONTROLLER for users to use our folding widget by supplying an AST.&lt;br /&gt;
&lt;br /&gt;
'''phase 3''' ([[User:Grippus|Grippus]], [[User:Ledergec|Ledergec]], [[User:salmanasar|salmanasar]], ) ...&lt;br /&gt;
* extensive testing (all members)&lt;br /&gt;
* documentation&lt;br /&gt;
&lt;br /&gt;
'''phase 4''' (to be assigned) ...&lt;br /&gt;
* integration with EiffelStudio (aka. wunschtraum...)&lt;br /&gt;
&lt;br /&gt;
= hint =&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
&lt;br /&gt;
The folding support should be included the: EDITABLE_TEXT_PANEL&lt;br /&gt;
&lt;br /&gt;
= ADT =&lt;br /&gt;
WhatWhereWhenHowWhy&amp;lt;br/&amp;gt;&lt;br /&gt;
[[User:Sanakan|Sanakan]] 16:59, 26 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
discuss what the ADT of the widget should be like:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Unthomas|Unthomas]] 14:05, 1 May 2006 (CEST) &amp;lt;br/&amp;gt;&lt;br /&gt;
Here a link to an interesting paper about ADTs and text editors (node 15):&lt;br /&gt;
http://www.cs.unm.edu/~crowley/papers/sds/sds.html &amp;lt;br/&amp;gt;&lt;br /&gt;
Are you able to see the figures?&lt;br /&gt;
&lt;br /&gt;
: no images over here, either... but here's a download of said paper: [http://citeseer.ist.psu.edu/rd/0%2C162545%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/compress/0/papers/cs/1797/http:zSzzSzwww.bolthole.comzSzjwordzSzwppaper.ps.gz/crowley98data.ps crowley98data.ps]&amp;lt;br/&amp;gt;[[User:Sanakan|Sanakan]] 01:06, 2 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
= working title of the project =&lt;br /&gt;
&lt;br /&gt;
A few ideas:&lt;br /&gt;
* Folding -&amp;gt; falten -&amp;gt; eiffel-origami&lt;br /&gt;
* FEES : Folding editor for Eiffel Studio&lt;br /&gt;
* hidden beauty project&lt;br /&gt;
* HYCs : Hide your code&lt;br /&gt;
* Folding Fields&lt;br /&gt;
* Heilige Dreifaltigkeit&lt;br /&gt;
&lt;br /&gt;
any comments from team members?&lt;br /&gt;
&lt;br /&gt;
[[User:Sanakan|Sanakan]] 22:02, 19 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
I really like origamiE :-)&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=2595</id>
		<title>Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=2595"/>
				<updated>2006-05-03T20:28:16Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: /* Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a RichText control that supports folding. The goal is to make this surface in the editor windows of EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==todo==&lt;br /&gt;
===M1: May 4th===&lt;br /&gt;
* ADT specified&lt;br /&gt;
&lt;br /&gt;
===M2: May ??? ===&lt;br /&gt;
* be familiar with ES' way of implementing the AST&lt;br /&gt;
* with the above: think about a control wrapper from ES' AST to the project-widget&lt;br /&gt;
&lt;br /&gt;
===Milestones TO DO ===&lt;br /&gt;
* implement support for word wrapping (&amp;quot;View&amp;quot; part of the widget)&lt;br /&gt;
* specify &amp;amp; implement &amp;quot;Controller&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==done==&lt;br /&gt;
* vast empty space 'ere.......  yet!&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[http://www.moria.de/~michael/fe/folding.html What is a folding editor?]&lt;br /&gt;
&lt;br /&gt;
[http://jerry.cs.uiuc.edu/~plop/plop2003/Papers/Jones-ImplementingASTs.pdf How to implement an AST?]&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Visitor_pattern What's the Visitor Design-Pattern?]&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-ui-fold es-ui-fold@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* [[User:Sanakan| sanakan]] (Project leader)&lt;br /&gt;
* [[User:lord Bubu| Lord Bubu]] (Project leader)&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;br /&gt;
* [[User:Bru| Bru]]&lt;br /&gt;
* [[User:Exception| Exception]]&lt;br /&gt;
* [[User:Grippus| Grippus]]&lt;br /&gt;
* [[User:Ledergec| Ledergec]]&lt;br /&gt;
* [[User:Panarium| Panarium]]&lt;br /&gt;
* [[User:Perro| Perro]]&lt;br /&gt;
* [[User:salmanasar| salmanasar]] (aka. David, Quality Checking)&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=2594</id>
		<title>Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=2594"/>
				<updated>2006-05-03T20:28:05Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: /* Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a RichText control that supports folding. The goal is to make this surface in the editor windows of EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==todo==&lt;br /&gt;
===M1: May 4th===&lt;br /&gt;
* ADT specified&lt;br /&gt;
&lt;br /&gt;
===M2: May ??? ===&lt;br /&gt;
* be familiar with ES' way of implementing the AST&lt;br /&gt;
* with the above: think about a control wrapper from ES' AST to the project-widget&lt;br /&gt;
&lt;br /&gt;
===Milestones TO DO ===&lt;br /&gt;
* implement support for word wrapping (&amp;quot;View&amp;quot; part of the widget)&lt;br /&gt;
* specify &amp;amp; implement &amp;quot;Controller&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==done==&lt;br /&gt;
* vast empty space 'ere.......  yet!&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[http://www.moria.de/~michael/fe/folding.html What is a folding editor?]&lt;br /&gt;
&lt;br /&gt;
[http://jerry.cs.uiuc.edu/~plop/plop2003/Papers/Jones-ImplementingASTs.pdf How to implement an AST?]&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Visitor_pattern What's the Visitor Design-Pattern?]&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-ui-fold es-ui-fold@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* [[User:Sanakan| sanakan]] (Project leader)&lt;br /&gt;
* [[User:lord Bubu| Lord Bubu]] (Project leader)&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;br /&gt;
* [[User:Bru| Bru]]&lt;br /&gt;
* [[User:Exception| Exception]]&lt;br /&gt;
* [[User:Grippus| Grippus]]&lt;br /&gt;
* [[User:Ledergec| Ledergec]]&lt;br /&gt;
* [[User:Panarium| Panarium]]&lt;br /&gt;
* [[User:Perro| Perro]]&lt;br /&gt;
* [[User:salmanasar| salmanasar]](aka. David, Quality Checking)&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User:Salmanasar&amp;diff=2097</id>
		<title>User:Salmanasar</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User:Salmanasar&amp;diff=2097"/>
				<updated>2006-04-22T12:44:26Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mail: &lt;br /&gt;
degend[at]student.ethz.ch&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=2096</id>
		<title>Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=2096"/>
				<updated>2006-04-22T12:42:14Z</updated>
		
		<summary type="html">&lt;p&gt;Salmanasar: /* Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a RichText control that supports folding. The goal is to make this surface in the editor windows of EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* implement support for word wrapping&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[http://www.moria.de/~michael/fe/folding.html What is a folding editor?]&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-ui es-ui@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* [[User:Sanakan| Sanakan]] (Project leader)&lt;br /&gt;
* TODO add 2nd project leader Mario Deuss (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Exception| Exception]]&lt;br /&gt;
* [[User:Panarium| Panarium]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;br /&gt;
* [[User:salmanasar| salmanasar]]&lt;/div&gt;</summary>
		<author><name>Salmanasar</name></author>	</entry>

	</feed>