plugin to read the templates from our installed frameworks location
Post here questions and problems related to oXygen frameworks/document types.
-
- Posts: 160
- Joined: Fri Feb 28, 2020 4:02 pm
plugin to read the templates from our installed frameworks location
Post by vishwavaranasi »
Hello Team , Would you please help here.
our custom plugin and custom frameworks will be installed as add-on.
and we wanted our plugin to read the templates from our installed frameworks location. see here how oxygen is reading and displaying for "choose a file template" dialog
we wanted to read the templates list from our custom DITA and DITAMP frameworks location in the plugin as like how oxygen is reading above.
would you please let me know how can we achieve the same?
our custom plugin and custom frameworks will be installed as add-on.
and we wanted our plugin to read the templates from our installed frameworks location. see here how oxygen is reading and displaying for "choose a file template" dialog
- image.png (76.48 KiB) Viewed 839 times
would you please let me know how can we achieve the same?
Thanks,
vishwa
vishwa
Re: plugin to read the templates from our installed frameworks location
Hi,
I assume you have defined your custom template directories in your DITA custom framework extensions.
https://blog.oxygenxml.com/topics/autho ... lates.html
Oxygen already has a "File->New" dialog, do you want to replicate this effort and create your own File->New dialog?
We have an API which could be used from a workspace access plugin extension:
ro.sync.exml.workspace.api.WorkspaceUtilities.getTemplateManager()
https://www.oxygenxml.com/InstData/Edit ... eManager()
Regards,
Radu
I assume you have defined your custom template directories in your DITA custom framework extensions.
https://blog.oxygenxml.com/topics/autho ... lates.html
Oxygen already has a "File->New" dialog, do you want to replicate this effort and create your own File->New dialog?
We have an API which could be used from a workspace access plugin extension:
ro.sync.exml.workspace.api.WorkspaceUtilities.getTemplateManager()
https://www.oxygenxml.com/InstData/Edit ... eManager()
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 160
- Joined: Fri Feb 28, 2020 4:02 pm
Re: plugin to read the templates from our installed frameworks location
Post by vishwavaranasi »
Thanks Radu ,
yes our custom dita and ditamap installed via addons , installed here
\AppData\Roaming\com.oxygenxml\extensions\v24.0\frameworks\https_oxygen_addons.host1.abc.com_updateSite.xml\my-dita-framework
the folders inside the my-dita-framework folder , here
Sure , We will try using the API getTemplateManager
Yes Radu , we wanted to have our own dialog , reading our templates and allow the user to create the dita file based on the selected template.
my next question was like , can we also achieve this from the oxygen plugin?
Thanks,
vishwa
yes our custom dita and ditamap installed via addons , installed here
\AppData\Roaming\com.oxygenxml\extensions\v24.0\frameworks\https_oxygen_addons.host1.abc.com_updateSite.xml\my-dita-framework
the folders inside the my-dita-framework folder , here
- image.png (14.7 KiB) Viewed 812 times
Code: Select all
Oxygen already has a "File->New" dialog, do you want to replicate this effort and create your own File->New dialog?
my next question was like , can we also achieve this from the oxygen plugin?
Thanks,
vishwa
Thanks,
vishwa
vishwa
Re: plugin to read the templates from our installed frameworks location
Hi,
I usually advise people against re-implementing our existing functionality. With enough effort anything can be done, an Oxygen workspace access plugin can access also the main toolbar, maybe remove the existing "New" action, add your own action to create a new file. The same for accessing the main menu and removing the "File->New" action from there. Then you can work on a custom Swing dialog to present new file templates to users.
About accessing from a plugin resources from a framework, we also have this API:
so if for example your framework's name is "DITA Extension", expanding the "${framework(DITA Extension)}"" editor variable should give you the folder path to it.
Regards,
Radu
I usually advise people against re-implementing our existing functionality. With enough effort anything can be done, an Oxygen workspace access plugin can access also the main toolbar, maybe remove the existing "New" action, add your own action to create a new file. The same for accessing the main menu and removing the "File->New" action from there. Then you can work on a custom Swing dialog to present new file templates to users.
About accessing from a plugin resources from a framework, we also have this API:
Code: Select all
ro.sync.exml.workspace.api.util.UtilAccess.expandEditorVariables("${framework(DITA Extension)}", null)
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 160
- Joined: Fri Feb 28, 2020 4:02 pm
Re: plugin to read the templates from our installed frameworks location
Post by vishwavaranasi »
Sure Radu , we will evaluate as per your suggestion.
my frameworks named as "my-dita-framework" installed via addons
and installed at this place
and i was trying the below from my pluginExtension class of
method as below
it is not printing anything
expandEditorVariables will only work from the OxygenInstllation directory?
my frameworks named as "my-dita-framework" installed via addons
and installed at this place
Code: Select all
\AppData\Roaming\com.oxygenxml\extensions\v24.0\frameworks\xxxxxx.com_updateSite.xml\my-dita-framework
Code: Select all
public void applicationStarted(StandalonePluginWorkspace oxygenWorkspace) ()
Code: Select all
String pathToDitaTemplatesFolder = oxygenWorkspace.getUtilAccess().expandEditorVariables("${framework(my-dita-framework)}", null);
expandEditorVariables will only work from the OxygenInstllation directory?
Thanks,
vishwa
vishwa
Re: plugin to read the templates from our installed frameworks location
Hi,
In your case "my-dita-framework" is the name of your framework directory.
The name of your framework is the name which appears in the Oxygen Preferences->"Document Type Association" page in the "Document type" column.
Regards,
Radu
In your case "my-dita-framework" is the name of your framework directory.
The name of your framework is the name which appears in the Oxygen Preferences->"Document Type Association" page in the "Document type" column.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 160
- Joined: Fri Feb 28, 2020 4:02 pm
Re: plugin to read the templates from our installed frameworks location
Post by vishwavaranasi »
Radu , in continuation with the the above question , our requirement is to create the file form the selected template
am trying this createNewEditor since am reading that is same like File - > new
so would you please help me to create the file form the selected template
Code: Select all
StandalonePluginWorkspace OXYGEN_WORKSPACE = (StandalonePluginWorkspace) PluginWorkspaceProvider.getPluginWorkspace();
String pathToDitaTemplatesFolder =OXYGEN_WORKSPACE.getUtilAccess().expandEditorVariables("${framework(my-dita-framework)}", null);
pathToDitaTemplatesFolder=pathToDitaTemplatesFolder+"\\templates\\Common Topics\\Concept.xml"
from one of our own dialog , reading our templates path (\\templates\\Common Topics\\Concept.xml) and trying to create the concept file based on the selected template.
and am trying like as below
try { OXYGEN_WORKSPACE.open(OXYGEN_WORKSPACE.createNewEditor("xml", "text/xml", <not sure what to fill here???);
} catch (MalformedURLException e) {
e.printStackTrace();
}
and our template file has custom editor variable
<concept id="${customUUID}" xml:lang="en-US">
---------------------
-----------------------
</concept>
so would you please help me to create the file form the selected template
Thanks,
vishwa
vishwa
Re: plugin to read the templates from our installed frameworks location
Hi,
I do not understand clearly what the problem is. Did you call the API? Does it not work?
You can look at our Javadoc API to know more about what each method does:
https://www.oxygenxml.com/InstData/Edit ... ng.String)
As for your custom editor variable, you can probably expand it yourself before calling our API which opens an untitled XML document.
About your use of file path separators like this:
"\\templates\\Common Topics\\Concept.xml"
they do not work on Linux or Mac, ideally even if your plugin is only for Windows Oxygen users, you should use the "/" separator for paths which works in Java both for Windows and Mac/Linux.
Regards,
Radu
I do not understand clearly what the problem is. Did you call the API? Does it not work?
You can look at our Javadoc API to know more about what each method does:
https://www.oxygenxml.com/InstData/Edit ... ng.String)
As for your custom editor variable, you can probably expand it yourself before calling our API which opens an untitled XML document.
About your use of file path separators like this:
"\\templates\\Common Topics\\Concept.xml"
they do not work on Linux or Mac, ideally even if your plugin is only for Windows Oxygen users, you should use the "/" separator for paths which works in Java both for Windows and Mac/Linux.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 160
- Joined: Fri Feb 28, 2020 4:02 pm
Re: plugin to read the templates from our installed frameworks location
Post by vishwavaranasi »
let me rephrase my question
for the API
createNewEditor(java.lang.String extension, java.lang.String contentType, java.lang.String content)
what is the content?
meanwhile i tried creating a sting like the below
and used that as
createNewEditor("xml", "text/xml", myconcept_content)
it is created and opened the file in oxygen but the customUUID is not resolved
the string i have created String myconcept_content is not a good approach , or i might be doing wrong here , please help me here.
for the API
createNewEditor(java.lang.String extension, java.lang.String contentType, java.lang.String content)
what is the content?
meanwhile i tried creating a sting like the below
Code: Select all
String myconcept_content="<?xml version="1.0" encoding="UTF-8"?>
<!-- Template: Concept -->
<!DOCTYPE concept PUBLIC "-//xxx//DTD xxx DITA Concept//EN" "xxxx.dtd"[]>
<concept id="${customUUID}" xml:lang="en-US">
<title><Enter Concept Title Here></title>
<shortdesc>(Required) <Enter a short description here.></shortdesc>
<prolog>
<metadata>
<othermeta name="template" content="Concept"/>
</metadata>
</prolog>
<conbody>
</conbody>
</concept>";
createNewEditor("xml", "text/xml", myconcept_content)
it is created and opened the file in oxygen but the customUUID is not resolved
- image.png (29.15 KiB) Viewed 450 times
Thanks,
vishwa
vishwa
Re: plugin to read the templates from our installed frameworks location
Hi,
I confirm that Oxygen will not auto expand editor variables when using this API to create a new document.
Did you add in Oxygen the support to expand the "customUUID" using the "UtilAccess.addCustomEditorVariablesResolver(EditorVariablesResolver)" API?
If so you can use "ro.sync.exml.workspace.api.util.UtilAccess.expandEditorVariables(String, URL)" API to expand the editor variables yourself before passing the content to Oxygen's API.
https://www.oxygenxml.com/InstData/Edit ... ccess.html
Regards,
Radu
I confirm that Oxygen will not auto expand editor variables when using this API to create a new document.
Did you add in Oxygen the support to expand the "customUUID" using the "UtilAccess.addCustomEditorVariablesResolver(EditorVariablesResolver)" API?
If so you can use "ro.sync.exml.workspace.api.util.UtilAccess.expandEditorVariables(String, URL)" API to expand the editor variables yourself before passing the content to Oxygen's API.
https://www.oxygenxml.com/InstData/Edit ... ccess.html
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 160
- Joined: Fri Feb 28, 2020 4:02 pm
Re: plugin to read the templates from our installed frameworks location
Post by vishwavaranasi »
Hi Radu,
yes we do the below inside
applicationStarted() method of CustomWorkspaceAccessPluginExtension implements WorkspaceAccessPluginExtension
oxygenWorkspace.getUtilAccess().addCustomEditorVariablesResolver(customEditorVariablesResolver);
when we do regular flow from oxygen
File - New , and then select template , that is resolving fine.
as you mentioned
ro.sync.exml.workspace.api.util.UtilAccess.expandEditorVariables(String, URL)
i have to try this.
and also please confirm me for the API
createNewEditor(java.lang.String extension, java.lang.String contentType, java.lang.String content)
the String content what am passing is correct? is there any better approach?
yes we do the below inside
applicationStarted() method of CustomWorkspaceAccessPluginExtension implements WorkspaceAccessPluginExtension
oxygenWorkspace.getUtilAccess().addCustomEditorVariablesResolver(customEditorVariablesResolver);
when we do regular flow from oxygen
File - New , and then select template , that is resolving fine.
as you mentioned
ro.sync.exml.workspace.api.util.UtilAccess.expandEditorVariables(String, URL)
i have to try this.
and also please confirm me for the API
createNewEditor(java.lang.String extension, java.lang.String contentType, java.lang.String content)
the String content what am passing is correct? is there any better approach?
Thanks,
vishwa
vishwa
Re: plugin to read the templates from our installed frameworks location
Hi,
Yes, you seem to be properly passing the API parameters, the first one being the extension "xml" in your case, the second the content type "text/xml" and the third the content to load in the untitled file.
Regards,
Radu
Yes, you seem to be properly passing the API parameters, the first one being the extension "xml" in your case, the second the content type "text/xml" and the third the content to load in the untitled file.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 160
- Joined: Fri Feb 28, 2020 4:02 pm
Re: plugin to read the templates from our installed frameworks location
Post by vishwavaranasi »
one more question here Radu.
our template content to load in the untitled file has the customUUID varable as below.
<concept id="${customUUID}" xml:lang="en-US">
so here when i before calling the createNewEditor(java.lang.String extension, java.lang.String contentType, java.lang.String content)
do i need to to expand the customUUID varable using o.sync.exml.workspace.api.util.UtilAccess.expandEditorVariables(String, URL)
and then replace that in my template content to load and then call
createNewEditor(java.lang.String extension, java.lang.String contentType, java.lang.String content)?
or is something this can be achieved in some other way?
our template content to load in the untitled file has the customUUID varable as below.
<concept id="${customUUID}" xml:lang="en-US">
so here when i before calling the createNewEditor(java.lang.String extension, java.lang.String contentType, java.lang.String content)
do i need to to expand the customUUID varable using o.sync.exml.workspace.api.util.UtilAccess.expandEditorVariables(String, URL)
and then replace that in my template content to load and then call
createNewEditor(java.lang.String extension, java.lang.String contentType, java.lang.String content)?
or is something this can be achieved in some other way?
Thanks,
vishwa
vishwa
-
- Posts: 160
- Joined: Fri Feb 28, 2020 4:02 pm
Re: plugin to read the templates from our installed frameworks location
Post by vishwavaranasi »
Thanks a ton Radu
your inputs worked for me to implement the feature of create new file from our custom dialogs.
your inputs worked for me to implement the feature of create new file from our custom dialogs.
Thanks,
vishwa
vishwa
Return to “SDK-API, Frameworks - Document Types”
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service