[jbosstools-dev] VPE editor
Max Areshkau
mareshkau at exadel.com
Thu Mar 13 07:26:28 EDT 2008
Max Rydahl Andersen wrote:
>> 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.
>>
>
> 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).
>
>
I have tried to separate of visual editor update on user input into
different thread(you can see commnets for JBIDE-675),
and I founded following problems:
1) Modifications of nsIDOM* nodes can be done only in UI thread, if it's
done in non UI thread it's crashes a
eclipse.
2)If we update nodes in UI thread, the user input thread are suspended.
Also i have tried to add some delay after change in source editor before
update visual editor, I have experimented with different delay
intervals, but this doesn't changed the performance situation and
doesn't helped to make vpe more responsible for user.
Other way that can usefull for us to improve performance it's change
event processing in VpeController.notifyChanged, for example
if we add 's' letter to '<te' and get '<tes' first event what we catch
it's delete event and we removing all child nodes for '<te' tag, than we
catch add and doesn't processing it, and third event is update event which
we catch for parent node of '<tes' and we updating all children nodes
and '<tes' too. Instead of all this for example we can collect all this
events
and in result made only update of '<te' to '<tes', and doesn't
update parent node and all children nodes.This three modification event
we catch in very short
interval.
Also applying cash for VpeCreation data can improve performance by my
opinion.
>> 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.
>>
>
> 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.
> http://www-128.ibm.com/developerworks/opensource/library/os-eclipse-iphone/?ca=dgr-eclipse-1
> 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.
>
>
>> This way it could be any combination of source/visual editing/preview.
>>
>
> Yes, but sometime collapsing things too much can make users not realize the feature is there.
>
>
>> 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
>>
>
> 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)
>
>
>> For asynchronous preview set Synchronize
>>
>
> I don't understand this last option ?
>
>
>> So if we are generating ides about VPE, I also have some after playing with
>>
>> http://jira.jboss.com/jira/browse/JBIDE-1304,
>> http://jira.jboss.com/jira/browse/JBIDE-1600,
>> http://jira.jboss.com/jira/browse/JBIDE-1227
>>
>> 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
>> http://jira.jboss.com/jira/browse/JBIDE-1304#action_12402618 with
>> several screen-shots.
>>
>
> 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
>
>
>> 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 <![CDATA[]> 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 http://jira.jboss.com/jira/browse/JBIDE-1600)
>> 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.
>>
>
>
>
>
>> Regards
>> Denis
>>
>> Snjezana Peco wrote:
>>
>>> 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
>>> http://jira.jboss.com/jira/browse/JBIDE-1479 (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
>>> jbosstools-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>>>
>> _______________________________________________
>> jbosstools-dev mailing list
>> jbosstools-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>>
>>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jbosstools-dev/attachments/20080313/623799ef/attachment.html
More information about the jbosstools-dev
mailing list