View | Details | Raw Unified | Return to bug 196226
Collapse All | Expand All

(-)src/org/eclipse/pde/internal/ui/PDEUIMessages.java (-4 lines)
Lines 2384-2393 Link Here
2384
2384
2385
	public static String AbstractSchemaDetails_unboundedButton;
2385
	public static String AbstractSchemaDetails_unboundedButton;
2386
2386
2387
	public static String ElementSection_compositorMenu;
2388
2389
	public static String ElementSection_referenceMenu;
2390
2391
	public static String NewRestrictionDialog_title;
2387
	public static String NewRestrictionDialog_title;
2392
2388
2393
	public static String NewRestrictionDialog_message;
2389
	public static String NewRestrictionDialog_message;
(-)src/org/eclipse/pde/internal/ui/pderesources.properties (-2 lines)
Lines 1707-1715 Link Here
1707
ApplicationSelectionDialog_dtitle=Debug
1707
ApplicationSelectionDialog_dtitle=Debug
1708
ApplicationSelectionDialog_rtitle=Run
1708
ApplicationSelectionDialog_rtitle=Run
1709
1709
1710
ElementSection_compositorMenu=&Compositor
1711
ElementSection_missingRefElement=Referenced element not available
1710
ElementSection_missingRefElement=Referenced element not available
1712
ElementSection_referenceMenu=&Reference
1713
TargetPlatformPreferencePage_pluginsTab=&Plug-ins
1711
TargetPlatformPreferencePage_pluginsTab=&Plug-ins
1714
TargetPlatformPreferencePage_sourceCode=S&ource Code Locations
1712
TargetPlatformPreferencePage_sourceCode=S&ource Code Locations
1715
TargetPlatformPreferencePage_reset=Rese&t
1713
TargetPlatformPreferencePage_reset=Rese&t
(-)src/org/eclipse/pde/internal/ui/editor/schema/ElementSection.java (-16 / +24 lines)
Lines 36-41 Link Here
36
import org.eclipse.pde.internal.core.ischema.ISchemaObject;
36
import org.eclipse.pde.internal.core.ischema.ISchemaObject;
37
import org.eclipse.pde.internal.core.ischema.ISchemaObjectReference;
37
import org.eclipse.pde.internal.core.ischema.ISchemaObjectReference;
38
import org.eclipse.pde.internal.core.ischema.ISchemaRootElement;
38
import org.eclipse.pde.internal.core.ischema.ISchemaRootElement;
39
import org.eclipse.pde.internal.core.ischema.ISchemaSimpleType;
39
import org.eclipse.pde.internal.core.ischema.ISchemaType;
40
import org.eclipse.pde.internal.core.ischema.ISchemaType;
40
import org.eclipse.pde.internal.core.schema.Schema;
41
import org.eclipse.pde.internal.core.schema.Schema;
41
import org.eclipse.pde.internal.core.schema.SchemaAttribute;
42
import org.eclipse.pde.internal.core.schema.SchemaAttribute;
Lines 301-307 Link Here
301
		final Object object = ((IStructuredSelection) selection).getFirstElement();
302
		final Object object = ((IStructuredSelection) selection).getFirstElement();
302
303
303
		MenuManager submenu = new MenuManager(PDEUIMessages.Menus_new_label);
304
		MenuManager submenu = new MenuManager(PDEUIMessages.Menus_new_label);
304
		if (object == null || object instanceof SchemaElement) {
305
		if (object == null) {
305
			fNewElementAction.setSchema(fSchema);
306
			fNewElementAction.setSchema(fSchema);
306
			fNewElementAction.setEnabled(fSchema.isEditable());
307
			fNewElementAction.setEnabled(fSchema.isEditable());
307
			submenu.add(fNewElementAction);
308
			submenu.add(fNewElementAction);
Lines 331-362 Link Here
331
				schemaObject = schemaObject.getParent();
332
				schemaObject = schemaObject.getParent();
332
			}
333
			}
333
			if (sourceElement != null) {
334
			if (sourceElement != null) {
334
				ISchema schema = sourceElement.getSchema();
335
				if (object instanceof SchemaCompositor || sourceElement.getType() instanceof ISchemaSimpleType ||
335
				MenuManager cmenu = new MenuManager(PDEUIMessages.ElementSection_compositorMenu);
336
						((ISchemaComplexType)sourceElement.getType()).getCompositor() == null) {
336
				cmenu.add(new NewCompositorAction(sourceElement, object, ISchemaCompositor.CHOICE));
337
					if (submenu.getItems().length > 0)
337
				cmenu.add(new NewCompositorAction(sourceElement, object, ISchemaCompositor.SEQUENCE));
338
						submenu.add(new Separator());
338
				if (submenu.getItems().length > 0)
339
					submenu.add(new NewCompositorAction(sourceElement, object, ISchemaCompositor.CHOICE));
339
					submenu.add(new Separator());
340
					submenu.add(new NewCompositorAction(sourceElement, object, ISchemaCompositor.SEQUENCE));
340
				submenu.add(cmenu);
341
				}
341
				if (object instanceof SchemaCompositor) {
342
				if (object instanceof SchemaCompositor) {
342
					MenuManager refMenu = new MenuManager(PDEUIMessages.ElementSection_referenceMenu);
343
					boolean seperatorAdded = false;
343
					ISchemaElement[] elements = schema.getResolvedElements();
344
					ISchemaElement[] elements = sourceElement.getSchema().getResolvedElements();
344
					Arrays.sort(elements);
345
					Arrays.sort(elements);
345
					for (int i = 0; i < elements.length; i++) {
346
					for (int i = 0; i < elements.length; i++) {
346
						if (!(elements[i] instanceof SchemaRootElement))
347
						if (!(elements[i] instanceof SchemaRootElement)) {
347
							refMenu.add(new NewReferenceAction(sourceElement,object, elements[i]));
348
							if (!seperatorAdded) {
349
								submenu.add(new Separator());
350
								seperatorAdded = true;
351
							}
352
						submenu.add(new NewReferenceAction(sourceElement,object, elements[i]));
353
						}
348
					}
354
					}
349
					if (!refMenu.isEmpty())
350
						submenu.add(refMenu);
351
				}
355
				}
352
			}
356
			}
353
		}
357
		}
354
		manager.add(submenu);
358
		manager.add(submenu);
355
		if (object != null) {
359
		if (object != null) {
356
			if (!(object instanceof ISchemaRootElement)) { //$NON-NLS-1$
360
			if (!(object instanceof ISchemaRootElement)) { //$NON-NLS-1$
361
				if (manager.getItems().length > 0)
362
					manager.add(new Separator());
357
				if(!(object instanceof ISchemaAttribute 
363
				if(!(object instanceof ISchemaAttribute 
358
						&& ((ISchemaAttribute)object).getParent() instanceof ISchemaRootElement))
364
						&& ((ISchemaAttribute)object).getParent() instanceof ISchemaRootElement))
359
				{	manager.add(new Separator());
365
				{	
360
					Action deleteAction = new Action() {
366
					Action deleteAction = new Action() {
361
						public void run() {
367
						public void run() {
362
							handleDelete((IStructuredSelection) selection);
368
							handleDelete((IStructuredSelection) selection);
Lines 574-580 Link Here
574
		getTreePart().setButtonEnabled(1, canAddAttribute);
580
		getTreePart().setButtonEnabled(1, canAddAttribute);
575
		
581
		
576
		boolean canAddCompositor = false;
582
		boolean canAddCompositor = false;
577
		if (sobject instanceof ISchemaCompositor || (sobject instanceof ISchemaElement && !(sobject instanceof SchemaElementReference)))
583
		if (sobject instanceof ISchemaCompositor || (sobject instanceof ISchemaElement &&
584
				!(sobject instanceof SchemaElementReference) && (((ISchemaElement)sobject).getType() instanceof ISchemaSimpleType ||
585
						((ISchemaComplexType)((ISchemaElement)sobject).getType()).getCompositor() == null)))
578
			canAddCompositor = true;
586
			canAddCompositor = true;
579
		getTreePart().setButtonEnabled(2, canAddCompositor);
587
		getTreePart().setButtonEnabled(2, canAddCompositor);
580
		getTreePart().setButtonEnabled(3, canAddCompositor);
588
		getTreePart().setButtonEnabled(3, canAddCompositor);

Return to bug 196226