Hi Scott,

I'll add an internal issue to improve the DocumentTypeInformation API.

Possibly a not so elegant approach would be to get access to the framework XML file "DocumentTypeInformation.getFrameworkStoreLocation()", parse it and obtain the information from there.

Regards,

Radu

Radu Coravu
Oxygen XML Editor

On 6/14/24 20:05, Scott Prentice wrote:

Hi Radu,

Thanks! I'll play with the script parameter a bit more to see how that works.

It seems that the DocumentTypeInfo API is different than the DocumentTypeInformation API. I'm trying to get the active framework's "Description", which is available from DocumentTypeInfo.getDescription() but not DocumentTypeInformation.getDescription(). Interestingly, DocumentTypeInformation.getName() does work.

Any ideas on how to access the framework description from the authorAccess object?

Thanks,

Scott

On 6/13/24 9:39 PM, Oxygen XML Editor Support (Radu Coravu) wrote:

Hi Scott,

So the "script" parameter should be a piece of Javascript content. For example you can pass as value of the "script" parameter this entire Javascript code here:

https://github.com/oxygenxml/javascript-sample-operations/blob/master/copy-xml-to-clipboard/copy-xml-to-clipboard.js

To the value passed using "script" we add the entire Javascript from the "commons.js". So I guess in your case you have placed the entire content in the "commons.js" and passed an empty "script" parameter, which should also work as long as you have a "doOperation()" function.

About accessing the DocumentTypeInfo API, your script has global access to an object named "authorAccess" which maps to this Java class:

https://www.oxygenxml.com/InstData/Editor/SDK/javadoc/ro/sync/ecss/extensions/api/AuthorAccess.html

So something like this in the JS code:

authorAccess.getEditorAccess().getDocumentTypeInformation()

should give you access to this Java class:

https://www.oxygenxml.com/InstData/Editor/SDK/javadoc/ro/sync/exml/workspace/api/editor/documenttype/DocumentTypeInformation.html

That similar "ro.sync.ecss.extensions.api.webapp.doctype.DocumentTypeInfo" API that you wanted access to is specific for our web author in browser editor tool.

Regards,

Radu

Radu Coravu
Oxygen XML Editor
On 6/13/24 19:48, Scott Prentice wrote:

Thanks, Radu.

I have a couple questions.

It's not clear to me how the "script" parameter works with the JSOperation class. I assume it can be used to pass in values to the code in commons.js, but I'm not seeing how you'd do that. Can you point me to any examples?

Also. I see that commons.js has access to the AuthorAccess API. I'd like to access DocumentTypeInfo interface (ro.sync.ecss.extensions.api.webapp.doctype.DocumentTypeInfo) .. can I do that from commons.js? I've tried a few things, without much success.

Thanks!

Scott


On 6/12/24 8:27 PM, Oxygen XML Editor Support (Radu Coravu) wrote:

Hi Scott,

Right. We do not have a special Author operation to show a message to the end user.

This operation could be used to open a web page if for example you want to present to the end user the information in a web browser:

https://www.oxygenxml.com/doc/versions/26.1/ug-editor/topics/dg-default-author-operations.html#dg-default-author-operations__openinsystemappoperation

Regards,
Radu

Radu Coravu
Oxygen XML Editor
On 6/13/24 03:06, Scott Prentice wrote:
If you're interested, here's one way to do this. I'm sure there's a more elegant way and this is probably a bit if a hack, but it does what I need right now.

1. In. your framework's Document Type dialog, on the Author:Actions subtab, add an action to the framework, give it an ID and a Name. 2. In the Action dialog select this Operation: ro.sync.ecss.extensions.commons.operations.JSOperation
3. A 'script' argument will be added, leave the value empty.
4. Choose OK. (Leave the Document Type dialog up for now.)
5. Create a commons.js file in the root of your framework directory, with the following content ..

    function doOperation(){
        parentFrame = authorAccess.getParentFrame();
javax.swing.JOptionPane.showMessageDialog(parentFrame, "MESSAGE HERE");
    }

6. In the Document Type dialog, on the Author:Menu subtab, add your new action to your menu (assuming one exists).
7. Choose OK, then OK.

Open a document in Author view that uses your framework. You should see the new menu item.

Clearly, if you're already using the commons.js file for something else, you'll need to pass in some parameter and tweak the JS code .. but this is a start. :-)

Cheers,

Scott

On 6/12/24 1:32 PM, Scott Prentice wrote:

Hi,

Is there a built-in method for creating an action (to call from a toolbar or menu) that displays a simple dialog that contains informational text? I'd like to have an "About" dialog that's associated with a framework. I assume I can do this by creating a custom class, but wanted to see if there was an OOB option for this.

Thanks!

Scott




_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
https://www.oxygenxml.com/mailman/listinfo/oxygen-user

_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
https://www.oxygenxml.com/mailman/listinfo/oxygen-user

_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
https://www.oxygenxml.com/mailman/listinfo/oxygen-user

_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
https://www.oxygenxml.com/mailman/listinfo/oxygen-user

_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
https://www.oxygenxml.com/mailman/listinfo/oxygen-user

_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
https://www.oxygenxml.com/mailman/listinfo/oxygen-user
_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
https://www.oxygenxml.com/mailman/listinfo/oxygen-user

Reply via email to