DITA menu customization
Post here questions and problems related to editing and publishing DITA content.
-
- Posts: 157
- Joined: Mon Aug 18, 2014 4:11 pm
DITA menu customization
Hi Team,
We know that in oXygen eclipse, we can customize DITA menu by using Document type association and by changing dita.framework file.
But there are some items in the DITA menu which cannot be removed using this method. They are Refresh, Tag display mode, Profiling/conditional text.
If we want to remove some items from these, please let us know how can we do it.
Thanks in advance!
Regards,
Shabeer
We know that in oXygen eclipse, we can customize DITA menu by using Document type association and by changing dita.framework file.
But there are some items in the DITA menu which cannot be removed using this method. They are Refresh, Tag display mode, Profiling/conditional text.
If we want to remove some items from these, please let us know how can we do it.
Thanks in advance!
Regards,
Shabeer
-
- Posts: 1016
- Joined: Wed Nov 16, 2005 11:11 am
Re: DITA menu customization
Post by alex_jitianu »
Hi Shabeer,
Starting with version 17.0 the com.oxygenxml.author.actionBarContributorCustomizer extension point will be able to intercept and customize this menu too. Until then I think you could use Eclipse mechanisms for the filtering.
Best regards,
Alex
Starting with version 17.0 the com.oxygenxml.author.actionBarContributorCustomizer extension point will be able to intercept and customize this menu too. Until then I think you could use Eclipse mechanisms for the filtering.
Best regards,
Alex
-
- Posts: 9446
- Joined: Fri Jul 09, 2004 5:18 pm
Re: DITA menu customization
Hi Shabeer,
Alex took a few days off.
You could extend the com.oxygenxml.author.actionBarContributorCustomizer extension and customize the Author coolbar like:
Regards,
Radu
Alex took a few days off.
You could extend the com.oxygenxml.author.actionBarContributorCustomizer extension and customize the Author coolbar like:
Code: Select all
@Override
public void customizeAuthorPageInternalCoolbar(CoolBar coolbar,
WSAuthorEditorPage authorEditorPage) {
Control[] children = coolbar.getChildren();
//Hide review toolbar
children[2].setVisible(false);
}
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 157
- Joined: Mon Aug 18, 2014 4:11 pm
Re: DITA menu customization
Hi Radu,
Thank you for the solution provided! It worked for us
I have two more queries :
1. After removing Review related coolbar icons, the coolbar looks to be a little odd. The place where we removed the items became white. Can we change this and make it better by removing the white space?
2. This is regarding DITA-> ID options submenu.
As of now, we are planning to remove ID options from the DITA menu by doing the changes in dita.framework file. But there is a problem doing this,
In DITA->ID options, "Auto Generate IDs for elements" and "Remove IDs when copying content in the same document" options are enabled (or checked) by default. But for us, the "Auto Generate IDs for elements" option should be disabled or unchecked. What can we do for this? Please help!
Thanks in Advance!
Regards,
Shabeer
Thank you for the solution provided! It worked for us
I have two more queries :
1. After removing Review related coolbar icons, the coolbar looks to be a little odd. The place where we removed the items became white. Can we change this and make it better by removing the white space?
2. This is regarding DITA-> ID options submenu.
As of now, we are planning to remove ID options from the DITA menu by doing the changes in dita.framework file. But there is a problem doing this,
In DITA->ID options, "Auto Generate IDs for elements" and "Remove IDs when copying content in the same document" options are enabled (or checked) by default. But for us, the "Auto Generate IDs for elements" option should be disabled or unchecked. What can we do for this? Please help!
Thanks in Advance!
Regards,
Shabeer
-
- Posts: 9446
- Joined: Fri Jul 09, 2004 5:18 pm
Re: DITA menu customization
Hi Shabeer,
Please see some answers below:
Regards,
Radu
Please see some answers below:
Sorry, I could not find a better way to remove that extra white spaces.1. After removing Review related coolbar icons, the coolbar looks to be a little odd. The place where we removed the items became white. Can we change this and make it better by removing the white space?
If you are using Oxygen 16.1 in the OXYGEN_PLUGIN_DIR/frameworks/dita/resources folder there is an idGenerationDefaultOptions.xml file which contains the defaults used in the ID Generation Options dialog.2. This is regarding DITA-> ID options submenu.
As of now, we are planning to remove ID options from the DITA menu by doing the changes in dita.framework file. But there is a problem doing this,
In DITA->ID options, "Auto Generate IDs for elements" and "Remove IDs when copying content in the same document" options are enabled (or checked) by default. But for us, the "Auto Generate IDs for elements" option should be disabled or unchecked. What can we do for this? Please help!
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 157
- Joined: Mon Aug 18, 2014 4:11 pm
Re: DITA menu customization
Hi Radu,
Thank you for the response!
We are using oxygen author 16.0. The mentioned XML file is not there in the specified version. Please let us know some alternative way for disabling "Auto generate IDs for elements".
Thank you!
Regards,
Shabeer
Thank you for the response!
We are using oxygen author 16.0. The mentioned XML file is not there in the specified version. Please let us know some alternative way for disabling "Auto generate IDs for elements".
Thank you!
Regards,
Shabeer
-
- Posts: 9446
- Joined: Fri Jul 09, 2004 5:18 pm
Re: DITA menu customization
Hi Shabeer,
If you are using Oxygen 16.0 you would need to get the Java sources for the DITA framework Java customizations (the Java sources used to build the dita.jar) modify them to set defaults in the Java code and then re-compile the dita.jar. I don't see any other option.
My advice to you is to upgrade to 16.1.
Regards,
Radu
If you are using Oxygen 16.0 you would need to get the Java sources for the DITA framework Java customizations (the Java sources used to build the dita.jar) modify them to set defaults in the Java code and then re-compile the dita.jar. I don't see any other option.
My advice to you is to upgrade to 16.1.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 9446
- Joined: Fri Jul 09, 2004 5:18 pm
Re: DITA menu customization
Hi Shabeer,
Our Oxygen 16.1 new features list is here:
http://www.oxygenxml.com/whatisnew16.1.html
We did not intentionally break any API so your customizations should work just as well with 16.1.
Regards,
Radu
Our Oxygen 16.1 new features list is here:
http://www.oxygenxml.com/whatisnew16.1.html
We did not intentionally break any API so your customizations should work just as well with 16.1.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 1016
- Joined: Wed Nov 16, 2005 11:11 am
Re: DITA menu customization
Post by alex_jitianu »
Hello Shabeer,
After some more research I can offer this workaround. It's a little better than the previous recommendation since there wont be any extra space:
Best regards,
Alex
After some more research I can offer this workaround. It's a little better than the previous recommendation since there wont be any extra space:
Code: Select all
CoolItem[] items = coolbar.getItems();
CoolItem coolItem = items[1];
coolItem.setControl(new Label(coolbar, SWT.NONE));
coolItem.setMinimumSize(0, 0);
coolItem.setSize(new Point(0, 0));
coolbar.update();
Alex
-
- Posts: 157
- Joined: Mon Aug 18, 2014 4:11 pm
Re: DITA menu customization
Hi team,
We would like to remove/ hide some items from DITA -> Profiling/Conditional Text in (like 2nd 3rd and 4th options) oxygen author 17.0 eclipse plugin version. We got previous reply as below when I asked for same question (that time we were using oxygen 16.0 )
Regards,
Shabeer
We would like to remove/ hide some items from DITA -> Profiling/Conditional Text in (like 2nd 3rd and 4th options) oxygen author 17.0 eclipse plugin version. We got previous reply as below when I asked for same question (that time we were using oxygen 16.0 )
We have already removed some items using the same extension point using action definition id. Could you please let us know the exact ID of these menus if it is possible to remove using action definition id. Or the way we can achieve it.Starting with version 17.0 the com.oxygenxml.author.actionBarContributorCustomizer extension point will be able to intercept and customize this menu too. Until then I think you could use Eclipse mechanisms for the filtering.
Regards,
Shabeer
-
- Posts: 9446
- Joined: Fri Jul 09, 2004 5:18 pm
Re: DITA menu customization
Hi Shabeer,
So you are already using the ActionBarContributorCustomizer.customizeAuthorPageExtensionMenu(IMenuManager, AuthorAccess) API to customize the main DITA menu, right?
The ID of the "Profiling" sub-menu manager should be Profiling.
Regards,
Radu
So you are already using the ActionBarContributorCustomizer.customizeAuthorPageExtensionMenu(IMenuManager, AuthorAccess) API to customize the main DITA menu, right?
The ID of the "Profiling" sub-menu manager should be Profiling.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 157
- Joined: Mon Aug 18, 2014 4:11 pm
Re: DITA menu customization
Hi Radu,
We are currently using the extension point as <extension point="com.oxygenxml.author.actionBarContributorCustomizer">. This we have used for customizing XML menu items only. We never removed any items in DITA menu using the extension point.
Please see the current code which we used for removing XML -> Validate Cached menu item.
Similarly do we need to use the new extension point is what you are saying. Also we do not need to remove complete set of Profiling items. Only one or two submenus in it like "Show excluded content". Please let us know more on these.
Regards,
Shabeer
We are currently using the extension point as <extension point="com.oxygenxml.author.actionBarContributorCustomizer">. This we have used for customizing XML menu items only. We never removed any items in DITA menu using the extension point.
Please see the current code which we used for removing XML -> Validate Cached menu item.
Code: Select all
public class CustomActionBarContributorCustomizer extends ActionBarContributorCustomizer {
private static final String VALIDATE_CACHED = "com.oxygenxml.editor.validate.cached"; //XML-->Validate_cached
/ @Override
public final List<IAction> customizeActionsContributedToDocumentMenu(List<IAction> actions)
{
List<IAction> allowed = new ArrayList<IAction>(actions);
for (Iterator<IAction> iterator = allowed.iterator(); iterator.hasNext();)
{
IAction iAction = (IAction)iterator.next();
if (iAction != null){
else if (VALIDATE_CACHED.equals(iAction.getActionDefinitionId())) {
iterator.remove();
}
}
}
return allowed;
}
}
Regards,
Shabeer
-
- Posts: 9446
- Joined: Fri Jul 09, 2004 5:18 pm
Re: DITA menu customization
Hi Shabeer,
So what you need to do is to edit the CustomActionBarContributorCustomizer extension that you already have and add a new Java method to it:
That method will be called when the "DITA" menu manager is constructed.
Regards,
Radu
So what you need to do is to edit the CustomActionBarContributorCustomizer extension that you already have and add a new Java method to it:
Code: Select all
/**
* CUSTOMIZE THE MAIN FRAMEWORK MENU (IN OUR CASE THE "DITA" menu)
*/
@Override
public void customizeAuthorPageExtensionMenu(IMenuManager extensionMenu,
AuthorAccess authorAccess) {
IContributionItem[] items = extensionMenu.getItems();
for (int i = 0; i < items.length; i++) {
if("Profiling".equals(items[i].getId())){
MenuManager profilingSubmenu = (MenuManager) items[i];
profilingSubmenu.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager manager) {
IContributionItem[] subItems = manager.getItems();
for (int j = 0; j < subItems.length; j++) {
if("Profiling_Condition_Sets/Show_excluded_content".equals(subItems[j].getId())
|| "Profiling_Condition_Sets/Show_Profiling_Attributes".equals(subItems[j].getId())
|| "Profiling_Condition_Sets/Apply_profiling_styles".equals(subItems[j].getId())
){
//Remove it
manager.remove(subItems[j]);
}
}
}
});
}
}
}
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 157
- Joined: Mon Aug 18, 2014 4:11 pm
Re: DITA menu customization
Hi Radu,
Thank you for your quick response!
The solution worked well for us
We have one more query related to the toolbar items related to same "Profiling".How we could remove it from toolbar. We tried it using the below code, but it is removing all the toolbar items related to profiling and some additional items,
Could you please let us know how we can remove specific items in the profiling toolbar group.
Regards,
Shabeer
Thank you for your quick response!
The solution worked well for us

We have one more query related to the toolbar items related to same "Profiling".How we could remove it from toolbar. We tried it using the below code, but it is removing all the toolbar items related to profiling and some additional items,
Code: Select all
@Override
public void customizeAuthorPageInternalCoolbar(CoolBar coolbar,
WSAuthorEditorPage authorEditorPage) {
Control[] children = coolbar.getChildren();
//Hide review toolbar
children[2].setVisible(false);
}
Regards,
Shabeer
-
- Posts: 9446
- Joined: Fri Jul 09, 2004 5:18 pm
Re: DITA menu customization
Hi Shabeer,
The Javadoc for the method customizeAuthorPageInternalCoolbar has a sample filter usage:
https://www.oxygenxml.com/InstData/Edit ... mizer.html
Basically in your case the filter would look something like:
Regards,
Radu
The Javadoc for the method customizeAuthorPageInternalCoolbar has a sample filter usage:
https://www.oxygenxml.com/InstData/Edit ... mizer.html
Basically in your case the filter would look something like:
Code: Select all
public void customizeAuthorPageInternalCoolbar(CoolBar coolbar,
WSAuthorEditorPage authorEditorPage) {
CoolItem[] items = coolbar.getItems();
for (CoolItem coolItem : items) {
Control control = coolItem.getControl();
if (control instanceof ToolBar) {
ToolBar toolBar = (ToolBar) control;
ToolItem[] tollbarItems = toolBar.getItems();
for (ToolItem toolItem : tollbarItems) {
if("Profiling".equals(toolItem.getData("OXYGEN_ID"))){
//Remove it
toolItem.dispose();
}
}
}
}
}
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 157
- Joined: Mon Aug 18, 2014 4:11 pm
Re: DITA menu customization
Hi Radu,
I have tried the solution provided, but it removes the complete Profiling items from toolbar. I have checked the URL which you have provided and could not find a way to remove only submenu of the "Profiling". Printed the oxygen ID's of the toolbar items and could see only "Profiling" coming in the log.
I tried the below also and it did not work
Could you please let me know how we can remove the submenu items of "Profiling" from toolbar.
Thanks in advance.
Regards,
Shabeer
I have tried the solution provided, but it removes the complete Profiling items from toolbar. I have checked the URL which you have provided and could not find a way to remove only submenu of the "Profiling". Printed the oxygen ID's of the toolbar items and could see only "Profiling" coming in the log.
Code: Select all
CoolItem[] items = coolbar.getItems();
for (CoolItem coolItem : items) {
Control control = coolItem.getControl();
Object oxygenID = control.getData("OXYGEN_ID");
System.out.println(oxygenID);
if (control instanceof ToolBar) {
ToolBar toolBar = (ToolBar) control;
ToolItem[] tollbarItems = toolBar.getItems();
for (ToolItem toolItem : tollbarItems) {
System.out.println(" " + toolItem.getData("OXYGEN_ID"));
}
}
}
I tried the below also and it did not work
Code: Select all
if("Profiling_Condition_Sets/Show_excluded_content".equals(toolItem.getData("OXYGEN_ID"))){
//Remove it
toolItem.dispose();
}
Thanks in advance.
Regards,
Shabeer
-
- Posts: 9446
- Joined: Fri Jul 09, 2004 5:18 pm
Re: DITA menu customization
Hi Shabeer,
Oh, so you do not want to remove the entire drop down button, you just want to remove some actions from the drop down.
Unfortunately I do not see how this could be done using our current API. I will add an issue and try to come up with such a possibility in Oxygen 18.1.
Regards,
Radu
Oh, so you do not want to remove the entire drop down button, you just want to remove some actions from the drop down.
Unfortunately I do not see how this could be done using our current API. I will add an issue and try to come up with such a possibility in Oxygen 18.1.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 9446
- Joined: Fri Jul 09, 2004 5:18 pm
Re: DITA menu customization
Hi Shabeer,
We released Oxygen 18.1 a couple of weeks ago and with Oxygen 18.1 when you want to customize a drop-down tool item, you can cast it to the API interface "com.oxygenxml.editor.editors.xml.IDropDownToolItem" and add a filter to it.
Javadoc here:
https://www.oxygenxml.com/InstData/Edit ... ditorPage-
Regards,
Radu
We released Oxygen 18.1 a couple of weeks ago and with Oxygen 18.1 when you want to customize a drop-down tool item, you can cast it to the API interface "com.oxygenxml.editor.editors.xml.IDropDownToolItem" and add a filter to it.
Javadoc here:
https://www.oxygenxml.com/InstData/Edit ... ditorPage-
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
Return to “DITA (Editing and Publishing DITA Content)”
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ Artificial Intelligence (AI Positron Assistant add-on)
- ↳ 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