diff options
author | ptessier | 2013-12-10 17:39:22 +0000 |
---|---|---|
committer | ptessier | 2013-12-10 17:39:22 +0000 |
commit | 1c2ab3ecf11d18c39e68b616ec352f360ea1cb2d (patch) | |
tree | 9e1c539d4d81d69688d8250f390fed576227660e /plugins/infra/org.eclipse.papyrus.infra.newchild | |
parent | e82745f2606c2d5428a54ddd253cf32ad7fbdb63 (diff) | |
download | org.eclipse.papyrus-1c2ab3ecf11d18c39e68b616ec352f360ea1cb2d.tar.gz org.eclipse.papyrus-1c2ab3ecf11d18c39e68b616ec352f360ea1cb2d.tar.xz org.eclipse.papyrus-1c2ab3ecf11d18c39e68b616ec352f360ea1cb2d.zip |
351803: [New Child] Papyrus shall provide a customizable "New Child"
menu
https://bugs.eclipse.org/bugs/show_bug.cgi?id=351803
Diffstat (limited to 'plugins/infra/org.eclipse.papyrus.infra.newchild')
-rw-r--r-- | plugins/infra/org.eclipse.papyrus.infra.newchild/src/org/eclipse/papyrus/infra/newchild/CreationMenuFactory.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/plugins/infra/org.eclipse.papyrus.infra.newchild/src/org/eclipse/papyrus/infra/newchild/CreationMenuFactory.java b/plugins/infra/org.eclipse.papyrus.infra.newchild/src/org/eclipse/papyrus/infra/newchild/CreationMenuFactory.java index d899f0c8838..8ed37a10f26 100644 --- a/plugins/infra/org.eclipse.papyrus.infra.newchild/src/org/eclipse/papyrus/infra/newchild/CreationMenuFactory.java +++ b/plugins/infra/org.eclipse.papyrus.infra.newchild/src/org/eclipse/papyrus/infra/newchild/CreationMenuFactory.java @@ -83,11 +83,10 @@ public class CreationMenuFactory { topMenuItem.setMenu(topMenu);
boolean oneDisplayedMenu=false;
for(org.eclipse.papyrus.infra.newchild.ElementCreationMenuModel.Menu currentMenu : folder.getMenu()) {
+ boolean result=false;
if( currentMenu instanceof Folder){
- boolean subMenu=populateMenu(topMenu, (Folder) currentMenu, selectedObject);
- if(subMenu){
- oneDisplayedMenu=true;
- }
+ result=populateMenu(topMenu, (Folder) currentMenu, selectedObject);
+
}
@@ -100,20 +99,23 @@ public class CreationMenuFactory { EStructuralFeature feature= selectedObject.eClass().getEStructuralFeature(role);
if( feature instanceof EReference){
reference=(EReference)feature;
- oneDisplayedMenu = constructMenu(selectedObject, topMenu, currentCreationMenu, reference);
+ result =constructMenu(selectedObject, topMenu, currentCreationMenu, reference);
}
}
else{//no precisison
//test if all roles must be displayed
if(currentCreationMenu.isDisplayAllRoles()){
- oneDisplayedMenu = constructMenu(selectedObject, topMenu, currentCreationMenu);
+ result = constructMenu(selectedObject, topMenu, currentCreationMenu);
}
else{
- oneDisplayedMenu = constructMenu(selectedObject, topMenu, currentCreationMenu, reference);
+ result = constructMenu(selectedObject, topMenu, currentCreationMenu, reference);
}
}
}
+ if(result){
+ oneDisplayedMenu=true;
+ }
}
if(!oneDisplayedMenu){
topMenuItem.dispose();
@@ -125,6 +127,7 @@ public class CreationMenuFactory { }
+
/**
* create menu by displaying if possible different roles
* @param selectedObject the current object
|