use of org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager in project webtools.sourceediting by eclipse.
the class SetTypeCommand method getComponentReferenceEditManager.
protected ComponentReferenceEditManager getComponentReferenceEditManager() {
ComponentReferenceEditManager result = null;
IEditorPart editor = getActiveEditor();
if (editor != null) {
result = (ComponentReferenceEditManager) editor.getAdapter(XSDTypeReferenceEditManager.class);
}
return result;
}
use of org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager in project webtools.sourceediting by eclipse.
the class XSDAttributeDeclarationSection 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(false);
} else if (selection.equals(Messages._UI_COMBO_NEW)) {
dialog = manager.getNewDialog();
((NewTypeDialog) dialog).allowComplexType(false);
}
if (dialog != null) {
if (dialog.createAndOpen() == Window.OK) {
newValue = dialog.getSelectedComponent();
XSDAttributeDeclaration xsdAttribute = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration();
manager.modifyComponentReference(xsdAttribute, 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(XSDAttributeReferenceEditManager.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(refName);
}
} else // use the value from selected quickPick item
{
newValue = getComponentSpecFromQuickPickForValue(selection, manager);
if (newValue != null)
manager.modifyComponentReference(input, newValue);
}
} else {
XSDAttributeDeclaration xsdAttribute = (XSDAttributeDeclaration) input;
Element element = xsdAttribute.getElement();
if (e.widget == usageCombo) {
final String newValue = usageCombo.getText();
if (element != null) {
PropertiesChangeCommand command = new PropertiesChangeCommand(element, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_USAGE) {
protected void doExecuteSteps() {
if (newValue.length() == 0)
element.removeAttribute(XSDConstants.USE_ATTRIBUTE);
else
element.setAttribute(XSDConstants.USE_ATTRIBUTE, newValue);
}
};
getCommandStack().execute(command);
}
} else if (e.widget == formCombo) {
final String newValue = formCombo.getText();
if (element != null) {
PropertiesChangeCommand command = new PropertiesChangeCommand(element, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_LABEL_FORM) {
protected void doExecuteSteps() {
if (newValue.length() == 0)
element.removeAttribute(XSDConstants.FORM_ATTRIBUTE);
else
element.setAttribute(XSDConstants.FORM_ATTRIBUTE, newValue);
}
};
getCommandStack().execute(command);
}
} else if (e.widget == defaultButton) {
boolean newValue = defaultButton.getSelection();
if (element != null) {
if (newValue) {
if (element.hasAttribute(XSDConstants.FIXED_ATTRIBUTE)) {
final String value = element.getAttribute(XSDConstants.FIXED_ATTRIBUTE);
PropertiesChangeCommand command = new PropertiesChangeCommand(element, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_DEFAULT) {
protected void doExecuteSteps() {
element.removeAttribute(XSDConstants.FIXED_ATTRIBUTE);
element.setAttribute(XSDConstants.DEFAULT_ATTRIBUTE, value);
}
};
getCommandStack().execute(command);
}
}
}
} else if (e.widget == fixedButton) {
boolean newValue = fixedButton.getSelection();
if (element != null) {
if (newValue) {
if (element.hasAttribute(XSDConstants.DEFAULT_ATTRIBUTE)) {
final String value = element.getAttribute(XSDConstants.DEFAULT_ATTRIBUTE);
PropertiesChangeCommand command = new PropertiesChangeCommand(element, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_FIXED) {
protected void doExecuteSteps() {
element.removeAttribute(XSDConstants.DEFAULT_ATTRIBUTE);
element.setAttribute(XSDConstants.FIXED_ATTRIBUTE, value);
}
};
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 XSDAttributeDeclarationSection method fillComponentNameCombo.
private void fillComponentNameCombo() {
IEditorPart editor = getActiveEditor();
ComponentReferenceEditManager manager = (ComponentReferenceEditManager) editor.getAdapter(XSDAttributeReferenceEditManager.class);
componentNameCombo.removeAll();
componentNameCombo.add(Messages._UI_ACTION_BROWSE);
componentNameCombo.add(Messages._UI_ACTION_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());
}
}
XSDAttributeDeclaration namedComponent = (XSDAttributeDeclaration) 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);
refName = attrValue;
}
}
use of org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager in project webtools.sourceediting by eclipse.
the class XSDElementDeclarationAdvancedSection method fillSubstitutionGroupCombo.
private void fillSubstitutionGroupCombo() {
IEditorPart editor = getActiveEditor();
ComponentReferenceEditManager manager = (ComponentReferenceEditManager) editor.getAdapter(XSDSubstitutionGroupEditManager.class);
if (manager != null) {
ComponentSpecification[] items = manager.getQuickPicks();
substGroupCombo.removeAll();
substGroupCombo.add(Messages._UI_COMBO_BROWSE);
substGroupCombo.add(Messages._UI_COMBO_NEW);
for (int i = 0; i < items.length; i++) {
substGroupCombo.add(items[i].getName());
}
// Add the current substitution group if needed
XSDElementDeclaration namedComponent = ((XSDElementDeclaration) input).getSubstitutionGroupAffiliation();
if (namedComponent != null) {
ComponentSpecification ret = getComponentSpecFromQuickPickForValue(namedComponent.getName(), manager);
if (ret == null) {
substGroupCombo.add(namedComponent.getQName(xsdSchema));
}
}
}
}
Aggregations