Hello,

Thanks a lot for your support. It works as expected now, no more need to
add the Cmd/Ctrl modifier to Delete and Backspace keybindings.

Just for info, the _docbook5.xxe customization file contains some common
customizations we use for different add-ons (to avoid writing them over and
over, and just include this file in all our customized add-ons), none of
them (should ;-)) have nothing to do with this particular delete command
thing.

Thanks again.


On Mon, Jan 19, 2015 at 7:03 AM, Hussein Shafie <[email protected]> wrote:

> It's difficult for me to find out what's wrong in what you did because 1)
> v5 is no longer supported 2) your 0docbook5.xxe starts by including
> "_docbook5.xxe" which I don't have.
>
> However please find attached to this email a mockup of what you did which
> works fine in XXE v6.1.
>
> I see no reason why, after recompiling this mockup against v5.9, this
> would not work there too.
>
> --> Because the BACK_SPACE and DELETE binding are found in the stock
> docbook5.xxe, I had to put the customized bindings in custom 0docbook5.xxe.
> It indeed does not work as expected when these bindings are added to
> customize.xxe.
>
> --> Mockup command "geresoDelete" is of course also declared in custom
> 0docbook5.xxe. In fact my custom 0docbook5.xxe contains what follows:
>
> ---
>   <include location="docbook5-config:docbook5.xxe"/>
>
>   <command name="geresoDelete">
>
> <class>com.calenco.xxe.ext.CustomDeleteSelectionOrJoinBlo
> ckOrDeleteChar</class>
>   </command>
>
>   <command name="deleteSelectionOrJoinBlockOrDeleteChar">
>     <macro>
>       <sequence>
>         <command name="geresoDelete" parameter="%0 %1" />
>       </sequence>
>     </macro>
>   </command>
>
>   <binding>
>     <keyPressed code="BACK_SPACE" />
>     <command name="deleteSelectionOrJoinBlockOrDeleteChar"
>              parameter="keypress backwards" />
>   </binding>
>
>   <binding>
>     <keyPressed code="DELETE" />
>     <command name="deleteSelectionOrJoinBlockOrDeleteChar"
>              parameter="keypress" />
>   </binding>
> ---
>
>
>
>
> On 01/07/2015 04:32 PM, Fabián Mandelbaum wrote:
>
>> Thanks a lot for your support. I've managed to do something like what we
>> need, but I'm still facing an issue (small, but kinda show-stopper).
>>
>> I've programmed in Java two custom delete commands: CustomDelete, to
>> replace the standard Delete command, and
>> CustomDeleteSelectionOrJoinBlockOrDeleteChar to replace
>> DeleteSelectionOrJoinBlockOrDeleteChar using my CustomDelete
>> implementation (where the "real" work happens).
>>
>> I'm using XXE 5.9.0 because that's what we're (still, shame on us...)
>> deploying to our customers (and cuz I don't have XXE 6.1 sources
>> handy... shame on me...).
>>
>> The custom command works as expected, no problem with that (but I'm
>> attaching their sources so you can inspect them if you feel like doing
>> so).
>>
>> However, the customize.xxe bindings to the BACK_SPACE and DEL keys do
>> not work as expected. What I had to do is to bind them with the "mod"
>> modifier (Ctrl/Cmd key) to have them work. If I bind them without any
>> modifier (which is what I really need), they are ignored, the 'standard'
>> binding is executed instead (or, said differently: my custom
>> deleteSelectionOrJoinBlockOrDeleteChar definition is not executed). I'm
>> also attaching my customize.xxe for your close inspection if needs be
>> (it's basically the standard one, fully commented out, plus my
>> customizations at the end).
>>
>> So, bottomline:
>>
>> <binding>
>>
>>      <keyPressed code="BACK_SPACE" modifiers="mod" />
>>
>>      <command name="deleteSelectionOrJoinBlockOrDeleteChar"
>> parameter="keypress backwards" />
>>
>>    </binding>
>>
>>    <binding>
>>
>>      <keyPressed code="DELETE" modifiers="mod" />
>>
>>      <command name="deleteSelectionOrJoinBlockOrDeleteChar"
>> parameter="keypress" />
>>
>>    </binding>
>>
>>
>> works, but it's not acceptable (users will not remember to press
>> Ctrl/Cmd, they will just press the backspace/del keys to delete stuff).
>> While the needed:
>>
>> <binding>
>>
>>      <keyPressed code="BACK_SPACE" />
>>
>>      <command name="deleteSelectionOrJoinBlockOrDeleteChar"
>> parameter="keypress backwards" />
>>
>>    </binding>
>>
>>    <binding>
>>
>>      <keyPressed code="DELETE" />
>>
>>      <command name="deleteSelectionOrJoinBlockOrDeleteChar"
>> parameter="keypress" />
>>
>>    </binding>
>>
>>
>> does not work (XXE's default deleteSelectionOrJoinBlockOrDeleteChar is
>> executed instead of the one defined in my customize.xxe file). I'm also
>> attaching the 0docbook5.xxe file where the relationship between my
>> custom command and the class implementing it is declared.
>>
>> I hope the scenario is clear. Thanks in advance for your help!
>>
>>
>> On Fri, Jan 2, 2015 at 1:27 PM, Hussein Shafie <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>     On 01/02/2015 04:34 PM, Fabián Mandelbaum wrote:
>>
>>
>>         I'd need to "subvert" the delete action in the following way:
>>
>>         Whenever a user deletes an element, instead of actually removing
>>         it from
>>         the document, an attribute should be set to a specific value on
>> the
>>         element in question (for example: revisionflag="deleted" on
>>         DocBook5).
>>
>>         I've tried to use customize.xxe to bind Ctrl+K to another action
>>         (tried
>>         with "alert boo!" command) and it does not work, the element is
>>         still
>>         deleted whenever I press Ctrl+K.
>>
>>
>>     I've added
>>
>>     ---
>>     <command name="delete">
>>        <macro>
>>          <sequence>
>>            <command name="alert" parameter="NOT DELETED" />
>>          </sequence>
>>        </macro>
>>     </command>
>>
>>     <binding>
>>        <keyPressed code="A" modifiers="mod" />
>>        <command name="alert" parameter="NOT REPEATED" />
>>     </binding>
>>     ---
>>
>>     to my existing customize.xxe and it works just fine:
>>
>>     * Ctrl-K (bound to my now custom "delete" command) shows an alert box.
>>     * My custom Ctrl-A binding also shows an alert box.
>>
>>     My guess is that you have created customize.xxe by hand (as opposed
>>     to installing the add-on called "A sample customize.xxe" using
>>     "Options|Install Add-ons") and forgot to clear the quick start cache.
>>
>>     See
>>     http://www.xmlmind.com/__xmleditor/_distrib/doc/help/__
>> advancedOptions.html#__cacheOptions
>>     <http://www.xmlmind.com/xmleditor/_distrib/doc/help/
>> advancedOptions.html#cacheOptions>
>>
>>
>>
>>
>>
>>         I've searched the docs for action specifiers and I could not
>>         find any. I
>>         confess I did not scan the full file set under doc/ folder for XXE
>>         deployment, but believe me I read LOTS of XXE docs.
>>
>>         I was wondering if I can redefine the menus and toolbars to
>>         remove all
>>         "delete" actions I can find, and then add a "custom delete"
>>         button that
>>         will perform the addAttribute command to set the needed
>>         attribute to the
>>         wanted value... but supposing I can do that (I'm 99.9% sure I
>>         can), how
>>         can I get rid of the default "delete" action so I'm sure the
>>         user cannot
>>         use that action inadvertently (or otherwise) in a way that the
>> only
>>         means to "delete" an element is with my "custom delete" button?
>>
>>
>>     Your first idea is the right one: simply replace all delete commands
>>     by a custom delete commands of yours.
>>
>>     I'm saying *all* delete commands because for example,
>>
>>     * Ctrl-K is bound to: delete [implicitElement]
>>
>>     while:
>>
>>     * Del is bound to: deleteSelectionOrJoinBlockOrDe__leteChar
>>
>>     You can list all bindings supported by a configuration by opening a
>>     document and then selecting "Help|Mouse and Key bindings". This menu
>>     item is present only if you turn on the "Enable the Developer Tools"
>>     feature. See
>>     http://www.xmlmind.com/__xmleditor/_distrib/doc/help/__
>> generalOptions.html#__featuresOptions
>>     <http://www.xmlmind.com/xmleditor/_distrib/doc/help/
>> generalOptions.html#featuresOptions>
>>
>>
>>
>>
>>
>>         I've seen there's some application events defined, but I have
>>         not seen
>>         such a thing as a generic "delete" (or "add") application event
>>         defined.
>>
>>         Even writing a custom delete command in Java is a viable option,
>>         provided I can get rid of (or disable somehow, or replace it by
>>         mine)
>>         the default XXE "delete" action (menu/toolbar).
>>
>>         I hope the scenario and constraints are clear.
>>
>>         I apologize in advance if what I need is explained somewhere in
>>         the doc,
>>         and I've happen to have missed that piece of doc.
>>
>>         Thanks in advance for your precious help!
>>
>>
>
>


-- 
Fabián Mandelbaum
IS Engineer
--
XMLmind XML Editor Support List
[email protected]
http://www.xmlmind.com/mailman/listinfo/xmleditor-support

Reply via email to