use of org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager in project webtools.sourceediting by eclipse.
the class XSDComplexTypeSection method handleWidgetSelection.
private void handleWidgetSelection(SelectionEvent e) {
if (e.widget == baseTypeCombo) {
IEditorPart editor = getActiveEditor();
if (editor == null)
return;
ComponentReferenceEditManager manager = (ComponentReferenceEditManager) editor.getAdapter(XSDComplexTypeBaseTypeEditManager.class);
String selection = baseTypeCombo.getText();
ComponentSpecification newValue;
IComponentDialog dialog = null;
if (selection.equals(Messages._UI_COMBO_BROWSE)) {
dialog = manager.getBrowseDialog();
} else if (selection.equals(Messages._UI_COMBO_NEW)) {
dialog = manager.getNewDialog();
}
if (dialog != null) {
if (dialog.createAndOpen() == Window.OK) {
newValue = dialog.getSelectedComponent();
manager.modifyComponentReference(input, newValue);
} else {
refresh();
}
}
} else if (e.widget == derivedByCombo) {
XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) input;
String value = derivedByCombo.getText();
Command command = new UpdateComplexTypeDerivationBy(complexType, value);
if (getCommandStack() != null) {
getCommandStack().execute(command);
}
}
super.doWidgetSelected(e);
}
use of org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager in project webtools.sourceediting by eclipse.
the class XSDElementDeclarationSection method fillElementsCombo.
private void fillElementsCombo() {
IEditorPart editor = getActiveEditor();
ComponentReferenceEditManager manager = (ComponentReferenceEditManager) editor.getAdapter(XSDElementReferenceEditManager.class);
if (manager != null) {
componentNameCombo.removeAll();
componentNameCombo.add(Messages._UI_COMBO_BROWSE);
componentNameCombo.add(Messages._UI_COMBO_NEW);
ComponentSpecification[] quickPicks = manager.getQuickPicks();
if (quickPicks != null) {
for (int i = 0; i < quickPicks.length; i++) {
ComponentSpecification componentSpecification = quickPicks[i];
componentNameCombo.add(componentSpecification.getName());
}
}
ComponentSpecification[] history = manager.getHistory();
if (history != null) {
for (int i = 0; i < history.length; i++) {
ComponentSpecification componentSpecification = history[i];
componentNameCombo.add(componentSpecification.getName());
}
}
}
XSDElementDeclaration namedComponent = (XSDElementDeclaration) input;
Element element = namedComponent.getElement();
if (element != null) {
String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE);
if (attrValue == null) {
// $NON-NLS-1$
attrValue = "";
}
ComponentSpecification ret = getComponentSpecFromQuickPickForValue(attrValue, manager);
if (ret == null) {
componentNameCombo.add(attrValue);
}
componentNameCombo.setText(attrValue);
}
}
use of org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager in project webtools.sourceediting by eclipse.
the class XSDElementDeclarationSection method handleWidgetSelection.
private void handleWidgetSelection(SelectionEvent e) {
if (e.widget == typeCombo) {
IEditorPart editor = getActiveEditor();
if (editor == null)
return;
ComponentReferenceEditManager manager = (ComponentReferenceEditManager) editor.getAdapter(XSDTypeReferenceEditManager.class);
String selection = typeCombo.getText();
ComponentSpecification newValue;
IComponentDialog dialog = null;
if (selection.equals(Messages._UI_COMBO_BROWSE)) {
dialog = manager.getBrowseDialog();
((XSDSearchListDialogDelegate) dialog).showComplexTypes(true);
} else if (selection.equals(Messages._UI_COMBO_NEW)) {
dialog = manager.getNewDialog();
((NewTypeDialog) dialog).allowComplexType(true);
}
if (dialog != null) {
if (dialog.createAndOpen() == Window.OK) {
newValue = dialog.getSelectedComponent();
XSDElementDeclaration elementDeclaration = ((XSDElementDeclaration) input).getResolvedElementDeclaration();
manager.modifyComponentReference(elementDeclaration, newValue);
} else {
typeCombo.setText(typeName);
}
} else // use the value from selected quickPick item
{
newValue = getComponentSpecFromQuickPickForValue(selection, manager);
if (newValue != null)
manager.modifyComponentReference(input, newValue);
}
} else if (e.widget == componentNameCombo) {
IEditorPart editor = getActiveEditor();
if (editor == null)
return;
ComponentReferenceEditManager manager = (ComponentReferenceEditManager) editor.getAdapter(XSDElementReferenceEditManager.class);
String selection = componentNameCombo.getText();
ComponentSpecification newValue;
IComponentDialog dialog = null;
if (selection.equals(Messages._UI_COMBO_BROWSE)) {
dialog = manager.getBrowseDialog();
} else if (selection.equals(Messages._UI_COMBO_NEW)) {
dialog = manager.getNewDialog();
}
if (dialog != null) {
if (dialog.createAndOpen() == Window.OK) {
newValue = dialog.getSelectedComponent();
manager.modifyComponentReference(input, newValue);
} else {
componentNameCombo.setText("");
}
} else // use the value from selected quickPick item
{
newValue = getComponentSpecFromQuickPickForValue(selection, manager);
if (newValue != null)
manager.modifyComponentReference(input, newValue);
}
} else if (e.widget == maxCombo) {
updateMaxAttribute();
} else if (e.widget == minCombo) {
updateMinAttribute();
}
}
use of org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager in project webtools.sourceediting by eclipse.
the class XSDSimpleTypeSection method fillTypesCombo.
private void fillTypesCombo() {
typesCombo.removeAll();
IEditorPart editor = getActiveEditor();
ComponentReferenceEditManager manager = (ComponentReferenceEditManager) editor.getAdapter(XSDTypeReferenceEditManager.class);
if (manager != null) {
ComponentSpecification[] items = manager.getQuickPicks();
typesCombo.add(Messages._UI_COMBO_BROWSE);
typesCombo.add(Messages._UI_COMBO_NEW);
for (int i = 0; i < items.length; i++) {
typesCombo.add(items[i].getName());
}
// Add the current Type of this attribute if needed
XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition) input;
XSDTypeDefinition baseType = simpleType.getBaseType();
if (baseType != null && baseType.getQName() != null) {
// no prefix
String currentTypeName = baseType.getQName(xsdSchema);
ComponentSpecification ret = getComponentSpecFromQuickPickForValue(currentTypeName, manager);
if (// not in quickPick
ret == null && currentTypeName != null) {
typesCombo.add(currentTypeName);
}
}
}
}
use of org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager in project webtools.sourceediting by eclipse.
the class SetTypeCommand method execute.
public void execute() {
try {
beginRecording(parent.getElement());
ComponentReferenceEditManager componentReferenceEditManager = getComponentReferenceEditManager();
continueApply = true;
if (parent instanceof XSDElementDeclaration) {
if (action.equals(SetTypeAction.SET_NEW_TYPE_ID)) {
ComponentSpecification newValue = (ComponentSpecification) invokeDialog(componentReferenceEditManager.getNewDialog());
if (continueApply)
componentReferenceEditManager.modifyComponentReference(adapter, newValue);
} else {
ComponentSpecification newValue = (ComponentSpecification) invokeDialog(componentReferenceEditManager.getBrowseDialog());
if (continueApply)
componentReferenceEditManager.modifyComponentReference(adapter, newValue);
}
formatChild(parent.getElement());
}
} finally {
endRecording();
}
}
Aggregations