XML Blog

Wednesday, March 05, 2014

What's your greatest wish for Oxygen XML Author 16.0?

Share to Facebook Share to Twitter Email This Share on Google Plus Share on Tumblr
Oxygen 16.0 is planned to be released in a couple of months and we already have quite an impressive array of new features which we plan to make available in it.
Here's some of the stuff we are working on right now:
  1. Editing properties of multiple selected table columns, rows and cells will be a snap using the Table Properties action.
    You will be able to easily select table cells either by pressing CTRL and clicking them or by selecting cell content which spans multiple cells.
  2. You will be able to highlight with custom colors and styles elements which have certain profiling attributes with certain values set on them.
  3. The Oxygen Eclipse Plugin distribution will be updated to have a validation stripe showing all errors found in the visual Author editing mode. The Author visual editing mode will also have a validation status which will show the error closest to the caret position.
  4. We added API which allows you to programatically import an XML options file in the started application. Used with a plugin deployed as an add-on this API allows you to distribute a fixed set of options as a starting point to all users. Our Plugins SDK will contain such a sample plugin which makes use of the new API to distribute.
So what would be your biggest feature-request wish for the upcoming Oxygen XML Author 16.0?

18 comments:

  1. Hi Radu,

    What about adding CMIS support so that we could use oXygen seamlessly with any CMIS compliant repository?

    Frank Shipley

    ReplyDelete
  2. A nice, easy-to-use stylesheet in Author mode which allows form-based editing of DITA topics.

    ReplyDelete
  3. CMIS is definitely an interesting improvement for us to make in a future version, we'll see if we can find resources for it. It could be implemented as an Oxygen plugin and made available as a sample project.
    Frank, if you know more about what Java-based API exactly we can access with CMIS you can email us directly, we need to see if the CMIS interface is enough for such a connection.

    About the other comment, CSS for DITA form-based editing, we have the right tools for the job, the problem would be that DITA topics have a flexible content model and you need to restrict users when editing if you want to add buttons for easier insertion of elements. If you have some specific needs or ideas about this, you can contact us directly using support@oxygenxml.com.

    ReplyDelete
  4. Since oXygen supports many non-XML languages, I'd like to see Markdown support, both in text and author modes.

    ReplyDelete
  5. About the MarkDown support, although I personally would like to explore this area, the problem is that there is no official MarkDown specification.

    In order to make MarkDown work in the Author visual editing mode (which can edit only XML) we would need some kind of script (XSLT maybe?) which converts MarkDown to an XML language (possibly even XHTML) and a script which converts from that XML language back to MarkDown.

    ReplyDelete
  6. John Kirkilis11:55 PM

    You read my mind, or my emails, or both. ;) I'm excited by what I see. I can cross off many items.

    Table Editing: Perhaps it's included in your table editing enhancements, but we've received requests for the following usability tweaks as well:

    * shift-clicking to select either horizontal or vertical ranges of cells
    * select multiple rows or columns at a time
    * insert or delete multiple rows or columns at a time. (Just this morning, one of our users in Munich asked how to insert 150 rows into the middle of a large table.)
    * cell alignment options via context menu (left, center, right)

    DITAVAL Since we're a DITA shop, any ability to roundtrip edit between DITAVAL files and Oxygen's Profile Sets would reduce our internal development needs, but we're prepared to roll our own customizations if needed. If the Profile Sets could exist optionally as separate XML files that can be referenced from an options file, it would make it easier for some of our planned conditional content transforms (DITAVAL to/from Profile Sets).

    Deployment of Corporate Customizations:It looks like the new SDK API mentioned in teaser #4 will allow us to get one step closer to not having to ask users to manually download or email configuration or layout files onto their workstation.

    ReplyDelete
  7. Hi John,

    Some observations about what you asked for:

    1) shift-clicking to select either horizontal or vertical ranges of cells

    It will work to select horizontal table cells. I added an improvement request for selecting vertical cells, maybe we'll do this in 16.1.
    But in 16.0 you will also be able to select vertical cells my using Ctrl-Click on each cell.

    2) select multiple rows or columns at a time

    You can select multiple rows either by using the Outline or by pressing Shift and moving the cursor up/down using the arrow keys. But you cannot select more than one column, we'll try to work on this in a future version.

    3) insert or delete multiple rows or columns at a time. (Just this morning, one of our users in Munich asked how to insert 150 rows into the middle of a large table.)

    You can delete multiple rows by selecting them (in the ways I described above) and then pressing DEL. The first DEL will delete the content from the cells (will empty them) and the second DEL will remove all rows.
    We do not have a built-in action to insert more than one table row. You can either invoke the action multiple times or select several empty rows and then copy paste.
    Could you tell me what the use case is for this?

    4) cell alignment options via context menu (left, center, right)

    You will be able to right click inside a cell -> invoke "Table Properties" and set properties on the cell. But we did not add separate actions in the contextual menu for each of the possible align and border values.

    5) DITAVAL Since we're a DITA shop, any ability to roundtrip edit between DITAVAL files and Oxygen's Profile Sets would reduce our internal development needs......

    In the "Editor / Edit modes / Author / Profiling/Conditional Text" preferences you have the options to import DITAVAL files and automatically create profiling condition sets based on them.

    6) Deployment of Corporate Customizations:It looks like the new SDK API mentioned in teaser #4 will allow us to get one step closer to not having to ask users to manually download or email configuration or layout files onto their workstation.

    Indeed, the Plugins SDK which will be available with Oxygen 16 will contain a sample plugin called "ImposeOptions" which will impose a set of options in an XML configuration file which comes with the plugin to a started Oxygen application. The sample plugin will impose the options only on the first startup (and not on every startup) so that users can modify them. When the plugin's version will change (maybe an add-on is updated) the plugin will re-impose the options. This is what the sample plugin does by default, of course it can be changed, it is just an example.

    Regards,
    Radu

    ReplyDelete
  8. John Kirkilis8:19 PM

    Hi Radu, the use case for inserting 150 rows is that we have tables that sometimes span more than 1000 rows that show data on every pin on a semiconductor chip. For a new variation of a chip with more pins, the user wanted to add rows in the middle of the table in the appropriate location to describe the new pins. By the way, these rows will have a specific product attribute for conditional processing, so the number of rows published will be less than the total row count. Does your new styling of profile sets support table rows, colspecs, and cells?

    For testing the usability of table editing, you may want to create a long table to see how the UI holds up at that scale. I agree that it's most likely a rare use-case with most businesses. I'm also assuming that we could write our own Operation in Java that pops up a dialog for inserting multiple rows or columns, before or after the current row or cell, as some applications do.

    It also seems like it should be relatively straight forward for us to add context menu items and actions for cell alignment that invokes the operation for setting attribute values with the align attribute.

    p.s. I'm enjoying the Prague 2014 videos on your YouTube channel.

    ReplyDelete
  9. Hi John,

    Indeed you can probably create custom actions for your specific use cases.

    The profiling color styling should also work on table rows and cells, I'm not sure what you mean by colspecs. We'll try to provide you with an Oxygen 16.0 beta when we have something stable.

    If you have such sample topics with large profiled tables which you can share with us, please do.

    Regards,
    Radu

    ReplyDelete
  10. Dear Radu,

    more coloring options in text view would be really great. Specifically the option to color elements and/or element content that match a certain XPath expression.

    ReplyDelete
  11. I understand, it would indeed be interesting to configure in the Text page syntax highlight colors depending on certain xpaths.
    I will add this as an improvement, it's probably not trivial to do because you would need to somehow know the structure of the XML document and run the XPaths very fast over it to determine those areas. An XML document can be very large.
    Right now if you run an XPath using the XPath toolbar the matched elements will have a highlight which spans over them.

    ReplyDelete
  12. Ah right, I see the problem.
    But the coloring doesn't necessarily have to be applied on the fly, it could be triggered by invoking e.g. pretty print.

    ReplyDelete
  13. The coloring does not need to be applied on the fly but it needs to be consistent and updated as the XML is changed by the user.
    Maybe you could create a CSS for your XML and edit it in the Author visual editing mode, then set certain styles to certain elements by writing CSS selectors.

    ReplyDelete
  14. Basic Git integration. To me, the most useful Git features to implement in Oxygen would be:

    - stage the current file (possibly give users the option to automatically stage changed files in a Git repo on save)
    - diff the current file against its last commit in the current branch
    - commit changes with a commit message
    - push a commit

    More and more DITA shops are using Git. Other activities like branching, etc. should probably best be done with your Git client (I like SourceTree and GitBox), but these convenience features would be used daily.

    ReplyDelete
  15. Hi Shane,

    I understand, you want some limited GIT-support in Oxygen for operations you do very often compensated with a complete external GIT client solution for operations which you perform only from time to time.
    Right now we do not short term plans to add GIT support in Oxygen but we'll discuss your suggestion in our internal meeting.

    Oxygen also has quite a lot of API and support for plugins and an additional possibility would be to implement a plugin for Oxygen to perform these tasks your required.

    Regards,
    Radu

    ReplyDelete
  16. Hi Radu,

    I'll find you one of our many gargantuan tables that our lawyers won't complain about sending to you.

    Yes, we would appreciate the opportunity to be beta testers of 16.0 when you have a stable build, especially since our Framemaker refugees want to know if they'll get some of their familiar usability back soon.

    ReplyDelete
  17. Hi Radu,

    One of the things that would save me lots of time is to provide a view that shows the cascading of the currently selected element like the CSS debugging views that browsers have.

    I've mentioned this before, but since I just attracted attention in a coffee shop by sighing loudly and burying my head in my hands, I figured I'd second my own motion.

    John

    ReplyDelete
  18. Hi John,

    I added your vote for CSS debugging from within Oxygen. Customizing CSSs for DITA is especially tricky because the CSS selectors match based on a certain class attribute value and some elements are extensions of others and they would normally match two selectors (one for the base and one for the extension) so the order in which they are defined in the CSSs starts to matter.

    Regards,
    Radu

    ReplyDelete