<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-15"
 http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Max Rydahl Andersen wrote:
<blockquote cite="mid:op.t7x7l5ucw1tq5a@reddevil" type="cite">
  <blockquote type="cite">
    <pre wrap="">I agree with lazy Visual Editor update idea, it should be implemented
some way, for example Swing also does it for painting swing Components.
It looks like now all events are processed in the same thread, where
they were fired.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Doing it in a seperate thread is a different enhancement I think, but definitly
also worth it. The current idea is just to not update on every stroke since users
would normally write more than one letter and while he is typing the visual view
does not need to be updated 100% live (especially not when its update seem to be 
so slow in special cases).

  </pre>
</blockquote>
I have tried to separate of visual editor update on user input into
different thread(you can see commnets for JBIDE-675), <br>
and I founded following problems:<br>
1) Modifications of nsIDOM* nodes can be done only in UI thread, if
it's done in non UI thread it's crashes a<br>
eclipse.<br>
2)If we update nodes in UI thread, the user input thread are suspended.<br>
<br>
Also i have tried to add some delay after change in source editor
before update visual editor, I have experimented with different delay <br>
intervals, but this doesn't changed the performance situation and 
doesn't helped to make vpe more responsible for user.<br>
<br>
Other way that can usefull for us to improve performance it's change
event processing in VpeController.notifyChanged, for example<br>
if we add 's' letter to '&lt;te' and get '&lt;tes' first event what we
catch it's delete event and we removing all child nodes for '&lt;te'
tag, than we <br>
catch add and doesn't processing it, and third event is update event
which <br>
we catch for parent node of '&lt;tes' and we updating all children
nodes and '&lt;tes' too. Instead of all this for example we can collect
all this events<br>
and in result made   only  update  of '&lt;te' to '&lt;tes', and
doesn't update parent node and all children nodes.This three
modification event we catch in very short<br>
interval.<br>
<br>
Also applying cash for VpeCreation data can improve performance by my
opinion.<br>
<blockquote cite="mid:op.t7x7l5ucw1tq5a@reddevil" type="cite">
  <pre wrap=""></pre>
  <blockquote type="cite">
    <pre wrap="">I have one more idea about VPE layout. I have crazy idea about getting
rid of tabs at all. We have a Source/Visual part that have a split lets
just have button that can hide source part or visual it almost the same
like having source and visual tabs. You'll say, but we have preview tab.
Why we cannot just let user switch visual part from edit mode to preview
mode.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
At first I liked this idea..but I actually think it has value to have multiple
tabs for things like preview and possible other types of preview, see e.g. 
<a class="moz-txt-link-freetext" href="http://www-128.ibm.com/developerworks/opensource/library/os-eclipse-iphone/?ca=dgr-eclipse-1">http://www-128.ibm.com/developerworks/opensource/library/os-eclipse-iphone/?ca=dgr-eclipse-1</a>
where they have different types of preview.

That being said if we had the "hide/show" visual editor then Source/Visual, Source and Visual could
be collapsed into one - leaving Source/Visual and Preview - but then we should definitly 
find a good shortcut for toggling the visual part.

  </pre>
  <blockquote type="cite">
    <pre wrap="">This way it could be any combination of source/visual editing/preview.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Yes, but sometime collapsing things too much can make users not realize the feature is there.

  </pre>
  <blockquote type="cite">
    <pre wrap="">All actions to control the editor can be placed to Editor Related
toolbar it will contains:
1. Preview Mode toggle button with two states (preview/visual editing);
2. Show Source with two states (source visible/source invisible)
3. Show Visual (visual visible/visual invisible)
4. Enabling/disabling formatting toolbar
5. Refresh
7. Synchronize
4. Preferences
    </pre>
  </blockquote>
  <pre wrap=""><!---->
The problem with this is where should users click if they want the visual editor back ? 
That part will disappear when you click hide, how do you get it back ?

Maybe adding a simple toolbar to the editor that has:

1. the "selection bar" (the one that shows where you are in the xml)
2. Toggle for source/visual part (possibly let it be an dropdown button with option of what to show (Source only, Visual only, Visual/Source)

  </pre>
  <blockquote type="cite">
    <pre wrap="">For asynchronous preview set Synchronize
    </pre>
  </blockquote>
  <pre wrap=""><!---->
I don't understand this last option ? 

  </pre>
  <blockquote type="cite">
    <pre wrap="">So if we are generating ides about VPE, I also have some after playing with

<a class="moz-txt-link-freetext" href="http://jira.jboss.com/jira/browse/JBIDE-1304">http://jira.jboss.com/jira/browse/JBIDE-1304</a>,
<a class="moz-txt-link-freetext" href="http://jira.jboss.com/jira/browse/JBIDE-1600">http://jira.jboss.com/jira/browse/JBIDE-1600</a>,
<a class="moz-txt-link-freetext" href="http://jira.jboss.com/jira/browse/JBIDE-1227">http://jira.jboss.com/jira/browse/JBIDE-1227</a>

I just have finished DocBook preview, it is preview because there are
actually some issues in VPE that doesn't allow me to say it is editor.
Short comment how to use it can be found here
<a class="moz-txt-link-freetext" href="http://jira.jboss.com/jira/browse/JBIDE-1304#action_12402618">http://jira.jboss.com/jira/browse/JBIDE-1304#action_12402618</a> with
several screen-shots.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Nice! I can use that for my Eclipsecon talk ;)

I think you should put these observations in to a VPE jira and we can take it from there.

/max

  </pre>
  <blockquote type="cite">
    <pre wrap="">During my quest I realized there are several problems with  VPE:
1. It always handle tags without prefixes as HTML tags
2. all tags without prefix is stored in same hash map in
VpeTemplateManager and there is no way separate templates for html tags
from docbook tags. That means I can use html tags in DocBook XML and it
will work fine and vice versa.
3. It doesn't shows attributes for xml tags because some exceptions
4. There is no way to process &lt;![CDATA[]&gt; blocks

What would be nice to have:
1. There is dialog with settings for unknown tags, it would be nice not
only setup predefined parameters but do something meaningful: show
unknown tag as known html tag
2. It wold be nice to say VPE use this template from eclipse workspace
or local  file  system  or even load all templates from defined location
(related to <a class="moz-txt-link-freetext" href="http://jira.jboss.com/jira/browse/JBIDE-1600">http://jira.jboss.com/jira/browse/JBIDE-1600</a>)
3. VPE should provide the way to change default template for unknown tags.
4. VPE should allow points to location where to save templates created
by Template Dialog mentioned above.
5. Combination of points 1 and 4 is a fast way to create simple
templates as I did for DocBook.
    </pre>
  </blockquote>
  <pre wrap=""><!---->


  </pre>
  <blockquote type="cite">
    <pre wrap="">Regards
Denis

Snjezana Peco wrote:
    </pre>
    <blockquote type="cite">
      <pre wrap="">Hi,

I have two suggestions for improving performance in the VPE editor:

- lazy Visual Editor update
The Visual editor is updated on every keystroke. I propose to postpone
the update for some time. This means - if a user enters a few keys
quickly, the Visual editor will be updated only once. There is the
org.eclipse.wst.sse.ui.sourcevalidation extenison point within the
Webtools project that can be used for adding this feature. It is also
possible to implement this feature using the code I added when fixing
<a class="moz-txt-link-freetext" href="http://jira.jboss.com/jira/browse/JBIDE-1479">http://jira.jboss.com/jira/browse/JBIDE-1479</a> (we could use 400 ms
during editing; this is the default value for the sourcevalidation
extenison point).

- adding the Link (Synchronize) action to the Visual editor next to
the Preferences, Refresh, Page Design Options actions.
This action would be a check box similar to the "Link with editor" in
the Package Explorer view. It would be checked/enabled by default. In
that case, the VPE would behave as it does now. If the user disables
the action, the VPE wouldn't be updated (VpeController.notifyChanged()
wouldn't be called). This would be very useful when editing large JSP
files. The user could always call Refresh (or check Link) to show the
visual part of the editor.

These features are easy to implement and don't require a lot of
changes in the code.

Snjeza






_______________________________________________
jbosstools-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:jbosstools-dev@lists.jboss.org">jbosstools-dev@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/jbosstools-dev">https://lists.jboss.org/mailman/listinfo/jbosstools-dev</a>
      </pre>
    </blockquote>
    <pre wrap="">_______________________________________________
jbosstools-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:jbosstools-dev@lists.jboss.org">jbosstools-dev@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/jbosstools-dev">https://lists.jboss.org/mailman/listinfo/jbosstools-dev</a>

    </pre>
  </blockquote>
  <pre wrap=""><!---->


  </pre>
</blockquote>
<br>
</body>
</html>