<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>JMatter Blog: GUI Navigation, Part 2: New View Placement Options</title>
    <link>http://jmatter.org/articles/2006/12/12/gui-navigation-part-2-new-view-placement-options</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Simplify</description>
    <item>
      <title>GUI Navigation, Part 2: New View Placement Options</title>
      <description>&lt;p&gt;The JMatter "to-do" list has had an item on it
that for a while I thought would never get done.&lt;/p&gt;

&lt;p&gt;JMatter GUIs are inherently OO UIs.  I like to make 
the analogy to our operating systems' desktops.  There 
are a number of ways to make such UIs more effective.&lt;br/&gt;
Sometimes I look to these desktop systems for ideas 
and features.&lt;/p&gt;

&lt;p&gt;One such feature was Apple's "Expose" which has since
also been copied by the Beryl project on Linux:  the
idea of scaling down and fanning out one's windows 
temporarily for the purpose of easily switching focus
to a window that is otherwise hidden by other windows
that have a higher z-index.  JMatter has such a feature.
Pressing the F12 key invokes the JExplose feature
which does precisely that (the desktop pane's context
menu also bears the option).&lt;/p&gt;

&lt;p&gt;Another feature of desktop systems, one that has been around 
longer, and is specifically related to the file manager,
is the idea of giving users options in terms of how to place
newly-created views.  When navigating a folder hierarchy,
one can double click on a folder, which typically opens a
new window with the contents of that folder.  Long ago, on 
ms-windows I recall always turning on the option of "re-using 
the existing window";  that is, replacing the existing view with 
the new one.  This can really help with an otherwise 
rapid proliferation of windows on one's desktop.&lt;/p&gt;

&lt;p&gt;Then, mozilla introduced us to another navigation option:  a sort
of "middle of the road" option:  don't create a new window, but
don't replace the existing view either:  place the new view in a
new, separate tab.  So mozilla gave birth to tabbed browsing.  I
believe tabbed-browsing is not a feature that applies only to 
the task of navigating web pages;  it can be applied
more generally, including to applications such as a file manager.&lt;/p&gt;

&lt;p&gt;Back to JMatter.  I have recently finished implementing a number
of related enhancements.  The first is extending slightly the model
for Users.  A User now has a new aggregate property called 
"Preferences."  Its first and only option at the moment captures how a 
user generally prefers to navigate in JMatter:  should new views
be created by default:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;in a new window?&lt;/li&gt;
&lt;li&gt;in a new tab?&lt;/li&gt;
&lt;li&gt;in-place, replacing the existing view?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Setting your preference is all it takes to change JMatter's
default navigation behavior.&lt;/p&gt;

&lt;p&gt;There are many situations where one will want to override the 
default and, say, want to open a new view in a new tab even
though the default is in-place navigation.  So a new gesture
has been introduced in JMatter.  Holding down the Shift key while
invoking a command that produces a new view will cause a context
menu to popup near your mouse location, allowing you to select
how you'd like that particular view created.  Choose "in a new
tab" and proceed.&lt;/p&gt;

&lt;p&gt;In the screenshot below, you see me invoking the "Open" command.
I am holding down the Shift key.&lt;/p&gt;

&lt;p&gt;&lt;img src="/tips/vp/fig1.png" alt="Figure 1"/&gt;&lt;/p&gt;

&lt;p&gt;In the next screenshot, you see the navigation option pop up.
I selected the "in new tab" option.&lt;/p&gt;

&lt;p&gt;&lt;img src="/tips/vp/fig2.png" alt="Figure 2"/&gt;&lt;/p&gt;

&lt;p&gt;Next, you see the result of the view created in a new tab.&lt;/p&gt;

&lt;p&gt;&lt;img src="/tips/vp/fig3.png" alt="Figure 3"/&gt;&lt;/p&gt;

&lt;p&gt;Finally, this last screenshot shows that, with tabs, you
have the option of detaching the view onto its own window
or closing the tab (Ctrl+w is the corresponding key binding).&lt;/p&gt;

&lt;p&gt;&lt;img src="/tips/vp/fig4.png" alt="Figure 4"/&gt;&lt;/p&gt;

&lt;p&gt;This feature is for all practical purposes complete and checked
in to subversion, and will also be included in the next release.&lt;/p&gt;

&lt;p&gt;I believe this to be an important feature, finally producing a
desktop with a number of effective navigation instruments:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fundamentally an OOUI&lt;/li&gt;
&lt;li&gt;DnD support&lt;/li&gt;
&lt;li&gt;An expose-like feature&lt;/li&gt;
&lt;li&gt;Tabbed, In-Place, or New-window view placement&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The last item on the drawing board that in my mind will complete
the picture is support for docking views.  I have looked at
flexdock, which is a terrific effort.  But I'm looking for
something that is more transparent:  effectively a layout
manager designed for JDesktopPane that transparently provides
docking support.  Let me know if you know of or are working
on such a thing.&lt;/p&gt;</description>
      <pubDate>Tue, 12 Dec 2006 10:05:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:1732f727-10cf-4ff2-b618-99023cb5b6ec</guid>
      <author>Eitan Suez</author>
      <link>http://jmatter.org/articles/2006/12/12/gui-navigation-part-2-new-view-placement-options</link>
    </item>
    <item>
      <title>"GUI Navigation, Part 2: New View Placement Options" by eitan</title>
      <description>&lt;p&gt;well, i had originally set a deadline for myself of some time in q1 2007.  my work in this area is pretty transparent.  if you look at subversion you will see precisely what i've done in this area.  i attempted an implementation using WingS which is not 100% done but works, though it doesn't look very nice.  i plan next to try using the echo2 framework.  the main issue i see at the moment with echo2 is that it doesn't appear to support context menus.  anyhow, it's a major undertaking and it requires time and resources.  so far, i have received little support from the community, both in terms of donations and in terms of licenses.&lt;/p&gt;</description>
      <pubDate>Tue, 09 Jan 2007 08:50:56 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:a11211d7-f8d2-4556-b92a-9989e62af77a</guid>
      <link>http://jmatter.org/articles/2006/12/12/gui-navigation-part-2-new-view-placement-options#comment-26</link>
    </item>
    <item>
      <title>"GUI Navigation, Part 2: New View Placement Options" by james agada</title>
      <description>&lt;p&gt;when will the web interface come up? If you over do the desktop interface it will be quite difficult replicating on the web. For some of, business apps not on the web and on pda for that matter is a no no.&lt;/p&gt;</description>
      <pubDate>Tue, 09 Jan 2007 08:32:57 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:462436bf-6fb6-409d-8a99-6c61b74850a3</guid>
      <link>http://jmatter.org/articles/2006/12/12/gui-navigation-part-2-new-view-placement-options#comment-25</link>
    </item>
    <item>
      <title>"GUI Navigation, Part 2: New View Placement Options" by eitan</title>
      <description>&lt;p&gt;this is a new feature so i'm sure i'll discover a number of cases where previous features need to be revised to be aware of tabbed navigation (and in-place navigation).  one example is when using a picker to establish an association, while browsing in in-place mode.  i've logged both this issue and the 'save and close' one you mention.&lt;/p&gt;

&lt;p&gt;operations that originate from the classbar will always create a new window.  the way i implemented this feature is that a new tab is created on the window where the operation originated.  since the classbar has no windows, then the classbar is an exception.  i hope that makes sense.&lt;/p&gt;</description>
      <pubDate>Sun, 17 Dec 2006 15:47:15 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:a218d4c2-0b0b-45d5-adbd-aa3309293ede</guid>
      <link>http://jmatter.org/articles/2006/12/12/gui-navigation-part-2-new-view-placement-options#comment-24</link>
    </item>
    <item>
      <title>"GUI Navigation, Part 2: New View Placement Options" by goodkind</title>
      <description>&lt;p&gt;Nevermind, looks like it has something to do with the "No specific abstractType so go with complexeobject.." bug as reported by another user.&lt;/p&gt;

&lt;p&gt;The create view is opened in a tab via the "Adminstrative-&gt;Types-&gt;Person Contacts" class bar, but opens in a new window via "Manager-&gt;Person Contacts"&lt;/p&gt;

&lt;p&gt;Other observations - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Browse views seem to always open in a new window even when "new tab/in place" is selected.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When selecting "Save and Close" on a tab item, this closes the entire window which includes all other tabs.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
      <pubDate>Sun, 17 Dec 2006 09:13:22 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:9f9fe8a4-962d-4e65-a3db-22cf79718a9e</guid>
      <link>http://jmatter.org/articles/2006/12/12/gui-navigation-part-2-new-view-placement-options#comment-21</link>
    </item>
    <item>
      <title>"GUI Navigation, Part 2: New View Placement Options" by Eitan</title>
      <description>&lt;p&gt;i assume you're suggesting you've come across a bug?  can you send to the mailing list steps to reproduce?&lt;/p&gt;</description>
      <pubDate>Sun, 17 Dec 2006 09:01:49 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:9bfb4f21-16e2-4f96-b1d9-ea86ed69d84a</guid>
      <link>http://jmatter.org/articles/2006/12/12/gui-navigation-part-2-new-view-placement-options#comment-20</link>
    </item>
    <item>
      <title>"GUI Navigation, Part 2: New View Placement Options" by goodkind</title>
      <description>&lt;p&gt;Seems you cannot create a new object in a tab - still opens a new window.&lt;/p&gt;</description>
      <pubDate>Sun, 17 Dec 2006 08:51:01 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:c0764a99-4dcc-464a-9f15-db57d088d02d</guid>
      <link>http://jmatter.org/articles/2006/12/12/gui-navigation-part-2-new-view-placement-options#comment-19</link>
    </item>
  </channel>
</rss>
