<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Pushed to GitHub.<br>
<br>
Thanks,<br>
<br>
On 6/17/2022 4:37 PM, Luciano Notarfrancesco via Cuis-dev wrote:
<blockquote
cite="mid:CAL5GDyq+6+qaafVz8rCs_5ZWt5Pbzp=cTP3KMJDOF+8kHoApFA@mail.gmail.com"
type="cite">
<div dir="auto">Cool, I think it’s best to use only left/right and
shift-left/right and remove tab.</div>
<div><br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, 17 Jun 2022 at 9:54
PM Juan Vuletich <<a moz-do-not-send="true"
href="mailto:JuanVuletich@zoho.com">JuanVuletich@zoho.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<div bgcolor="#ffffff" text="#000000"> Hi Luciano,<br>
<br>
I really like this. The attach includes two further
tweaks. One is to enable shift-arrows to change focus. I
find this nicer especially for HierarchicalList. I also
made lists to auto select the first item if none selected.<br>
<br>
Folks, if you all agree, we'd integrate these.<br>
<br>
Thanks,</div>
<div bgcolor="#ffffff" text="#000000"><br>
<br>
On 6/17/2022 9:07 AM, Luciano Notarfrancesco via Cuis-dev
wrote:
<blockquote type="cite">
<div>Here's an updated version. I added back the feature
to scroll siblings, because it turns out the Package
List tool still needs it. But this time I used a
property instead of an instance variable, and I set it
up by calling >>#scrollSiblings: with a
collection of siblings to scroll with the receiver
instead of relying on the original leftSibling and
rightSibling instance variables. The biggest changes
in this change set are:
<div>- rework of sibling navigation using a more
general approach instead of leftSibling and
rightSibling (navigate all morphs that handle
keyboard focus in the same system window using
left/right arrows and TAB/SHIFT-TAB, works for
PluggableListMorph and HierarchicalListMorph and be
be easily extended to other morphs);</div>
<div>- change in Change Sorter and Package List to
show the dirty flag as an asterisk in the change set
or package name instead of using an extra list.</div>
<div><br>
</div>
<div>Let me know what you think. Thanks,</div>
<div>Luciano</div>
</div>
<br>
<div>
<div>On Fri, Jun 17, 2022 at 8:07 AM Luciano
Notarfrancesco <<a moz-do-not-send="true"
href="mailto:luchiano@gmail.com" target="_blank">luchiano@gmail.com</a>>
wrote:<br>
</div>
<blockquote>
<div>Hi,
<div>After we changed the browser to show system
categories as a tree (or forest actually) we
partially lost the feature to navigate between
the lists with the arrow keys. This is because
HierarchicalListMorph uses the left-right arrow
keys to navigate the tree.</div>
<div>I've been experimenting with ideas to add
back this feature, and this is what I have so
far. It's just an experiment, I'd like to know
what other people think about this change.</div>
<div><br>
</div>
<div>Basically, I got rid of the "left/right
siblings concept" and instead I use the
right-left arrows (or TAB and SHIFT-TAB) to
navigate between all morphs in the active window
that handle keyboard focus. This simplifies the
code in PluggableListMorph and the methods that
use it, since they don't need to explicitly set
siblings. The behavior is slightly different
from the original implementation, I'm not sure
if it would bother anyone that is already used
to the original behavior, let me know what you
think. With this change set, the keyboard
navigation in the browser works again, with the
caveat that you have to use TAB and SHIFT-TAB
instead of left-right (or we should change the
handler of left-right in HierarchicalListMorph
to use some other keys).</div>
<div><br>
</div>
<div>While testing this I found a little bug: for
some reason, SHIFT-TAB is sent twice unless
SHIFT is unpressed before unpressing TAB. I have
to investigate this further, but I think it is a
bug in the event dispatching mechanism, not a
bug in my code.</div>
<div><br>
</div>
<div>Also, I got rid of the feature to scroll two
lists together. I think this would be better
implemented with some sort of
PluggableMultiColumnListMorph or something like
that. The only tools that used this
functionality are the Change Sorter and the
Package List. They used it to show a "dirty
flag" (i.e., whether a change set or package has
unsaved changes). Instead of showing this dirty
flag in a list, I show it with an asterisk at
the begining of the change set or package name.
I like it because IMO it looks better than the
original implementation, wastes less real
estate, it is a well known UI pattern, and the
code is simpler.</div>
<div><br>
</div>
<div>Let me know what you think, whether I should
continue in this direction and test this code
better in order to integrate it, or if you think
this change is a bad idea.</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
<br>
</div>
<div bgcolor="#ffffff" text="#000000">
<pre style="font-family: monospace;" cols="72">--
Juan Vuletich
<a moz-do-not-send="true" href="http://www.cuis-smalltalk.org" target="_blank" style="font-family: monospace;">www.cuis-smalltalk.org</a>
<a moz-do-not-send="true" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" target="_blank" style="font-family: monospace;">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a moz-do-not-send="true" href="https://github.com/jvuletich" target="_blank" style="font-family: monospace;">https://github.com/jvuletich</a>
<a moz-do-not-send="true" href="https://www.linkedin.com/in/juan-vuletich-75611b3" target="_blank" style="font-family: monospace;">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a moz-do-not-send="true" href="https://independent.academia.edu/JuanVuletich" target="_blank" style="font-family: monospace;">https://independent.academia.edu/JuanVuletich</a>
<a moz-do-not-send="true" href="https://www.researchgate.net/profile/Juan-Vuletich" target="_blank" style="font-family: monospace;">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a moz-do-not-send="true" href="https://patents.justia.com/inventor/juan-manuel-vuletich" target="_blank" style="font-family: monospace;">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
<a moz-do-not-send="true" href="https://twitter.com/JuanVuletich" target="_blank" style="font-family: monospace;">https://twitter.com/JuanVuletich</a></pre>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a class="moz-txt-link-freetext" href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a>
<a class="moz-txt-link-freetext" href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a class="moz-txt-link-freetext" href="https://patents.justia.com/inventor/juan-manuel-vuletich">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
<a class="moz-txt-link-freetext" href="https://twitter.com/JuanVuletich">https://twitter.com/JuanVuletich</a></pre>
</body>
</html>