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); |