diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/dialog/AddEditManagedPropertyDialog.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/dialog/AddEditManagedPropertyDialog.java | 530 |
1 files changed, 0 insertions, 530 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/dialog/AddEditManagedPropertyDialog.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/dialog/AddEditManagedPropertyDialog.java deleted file mode 100644 index b54adc43d..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/dialog/AddEditManagedPropertyDialog.java +++ /dev/null @@ -1,530 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 Sybase, Inc. and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.jsf.facesconfig.ui.dialog; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.resources.IProject; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.jdt.core.IType; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.window.Window; -import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ClassButtonDialogField; -import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ComboDialogField; -import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField; -import org.eclipse.jst.jsf.common.ui.internal.dialogfield.IDialogFieldApplyListener; -import org.eclipse.jst.jsf.common.ui.internal.dialogfield.IStringButtonAdapter; -import org.eclipse.jst.jsf.common.ui.internal.dialogfield.LayoutUtil; -import org.eclipse.jst.jsf.common.ui.internal.dialogfield.StringButtonDialogField; -import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigFactory; -import org.eclipse.jst.jsf.facesconfig.emf.ListEntriesType; -import org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanType; -import org.eclipse.jst.jsf.facesconfig.emf.ManagedPropertyType; -import org.eclipse.jst.jsf.facesconfig.emf.MapEntriesType; -import org.eclipse.jst.jsf.facesconfig.ui.EditorMessages; -import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin; -import org.eclipse.jst.jsf.facesconfig.ui.IFacesConfigConstants; -import org.eclipse.jst.jsf.facesconfig.ui.section.AbstractFacesConfigSection; -import org.eclipse.jst.jsf.facesconfig.ui.util.JavaBeanProperty; -import org.eclipse.jst.jsf.facesconfig.ui.util.JavaBeanUtils; -import org.eclipse.jst.jsf.facesconfig.ui.util.JavaClassUtils; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Shell; - -/** - * The dialog is for adding and editing managed property. - * - * @author sfshi - * - */ -public class AddEditManagedPropertyDialog extends Dialog { - - private static final int MIN_DIALOG_WIDTH = 300; - - private static final int DEFAULT_CONTROL_WIDTH = 200; - - private ComboDialogField nameField; - - private ClassButtonDialogField classField; - - private ComboDialogField valueTypeField; - - private StringButtonDialogField valueField; - - private IProject project; - - private String propertyName; - - private String propertyClass; - - private String valueType; - - /** - * the value could be a string, or instance of <code>NullValueType</code>, - * <code>MapEntriesType</code> and <code>ListEntriesType</code>. - */ - private Object valueObject; - - private ManagedBeanType managedBean; - - /** - * the list of this bean properties. - */ - private List beanPropertyList; - - /** - * the managed-property object that is editing, but it will be read-only. - */ - private ManagedPropertyType managedProperty; - - // private FormToolkit toolkit; - - private Composite parent; - - private static final String[] valueTypes = { IFacesConfigConstants.VALUE, - IFacesConfigConstants.NULL_VALUE, - IFacesConfigConstants.MAP_ENTRIES, - IFacesConfigConstants.LIST_ENTRIES }; - - private boolean isNew; - - private AbstractFacesConfigSection section; - - /** - * constructor for adding a managed property. - * - * @param parentShell - * @param managedBean - * @param section - */ - public AddEditManagedPropertyDialog(Shell parentShell, - ManagedBeanType managedBean, AbstractFacesConfigSection section) { - super(parentShell); - this.isNew = true; - this.managedBean = managedBean; - this.section = section; - } - - /** - * - * @param parentShell - * @param managedProperty - * @param section - */ - public AddEditManagedPropertyDialog(Shell parentShell, - ManagedPropertyType managedProperty, AbstractFacesConfigSection section) { - super(parentShell); - this.isNew = false; - this.managedProperty = managedProperty; - this.managedBean = (ManagedBeanType) managedProperty.eContainer(); - this.section = section; - } - - /* - * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) - */ - protected void configureShell(Shell newShell) { - super.configureShell(newShell); - if (isNew) - newShell.setText(EditorMessages.AddEditManagedPropertyDialog_Add); - else - newShell.setText(EditorMessages.AddEditManagedPropertyDialog_Edit); - } - - /* - * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) - */ - protected Control createDialogArea(Composite parent_) { - Composite container = new Composite(parent_, SWT.FILL); - this.parent = container; - GridLayout layout = new GridLayout(); - layout.numColumns = 2; - layout.marginWidth = layout.marginHeight = 5; - container.setLayout(layout); - GridData gd = new GridData(GridData.FILL_BOTH); - container.setLayoutData(gd); - - nameField = new ComboDialogField(SWT.DROP_DOWN | SWT.READ_ONLY - | SWT.BORDER); - nameField.setLabelText(EditorMessages.ManagedBeanPropertyEditDialog_PropertyName); - - int propertyCount = 0; - beanPropertyList = getBeanPropertyList(managedBean); - if (beanPropertyList != null) - propertyCount = beanPropertyList.size(); - - if (propertyCount > 0) { - String[] propertyNames = new String[propertyCount]; - - for (int i = 0; i < propertyCount; i++) { - JavaBeanProperty property = (JavaBeanProperty) beanPropertyList - .get(i); - propertyNames[i] = property.getName(); - } - nameField.setItems(propertyNames); - } - - nameField.setDialogFieldApplyListener(new IDialogFieldApplyListener() { - public void dialogFieldApplied(DialogField field) { - handleNameSelection(((ComboDialogField) field).getText()); - } - }); - - classField = new ClassButtonDialogField(null); - classField.setProject(getProject()); - classField.setLabelText(EditorMessages.ManagedBeanPropertyEditDialog_PropertyClass); - - valueTypeField = new ComboDialogField(SWT.DROP_DOWN | SWT.READ_ONLY - | SWT.BORDER); - valueTypeField.setLabelText(EditorMessages.ManagedBeanPropertyEditDialog_ValueType); - - valueTypeField.setItems(valueTypes); - valueTypeField - .setDialogFieldApplyListener(new IDialogFieldApplyListener() { - public void dialogFieldApplied(DialogField field) { - updateValueStatus(); - } - }); - - valueField = new StringButtonDialogField(new IStringButtonAdapter() { - public void changeControlPressed(DialogField field) { - handleChangeValue(valueTypeField.getText(), - ((StringButtonDialogField) field).getText()); - } - - }); - - valueField.setLabelText(EditorMessages.ManagedBeanPropertyEditDialog_Value); - valueField.setButtonLabel(EditorMessages.UI_Button_Edit_more); - - valueField.setDialogFieldApplyListener(new IDialogFieldApplyListener() { - - public void dialogFieldApplied(DialogField field) { - valueObject = ((StringButtonDialogField) field).getText(); - - } - }); - - GridData data = new GridData(GridData.FILL_BOTH); - container.setLayoutData(data); - - int numberOfColumns = 5; - GridLayout gl = new GridLayout(numberOfColumns, false); - container.setLayout(gl); - - nameField.doFillIntoGrid(null, container, numberOfColumns); - LayoutUtil.setWidthHint(nameField.getComboControl(null, container), - DEFAULT_CONTROL_WIDTH); - - classField.doFillIntoGrid(null, container, numberOfColumns - 1); - data = new GridData(SWT.FILL, SWT.CENTER, false, false); - data.horizontalSpan = 2; - classField.getChangeControl(null, container).setLayoutData(data); - LayoutUtil.setWidthHint(classField.getTextControl(null, container), - DEFAULT_CONTROL_WIDTH); - - valueTypeField.doFillIntoGrid(null, container, numberOfColumns); - - valueField.doFillIntoGrid(null, container, numberOfColumns); - - LayoutUtil.setHorizontalGrabbing(classField.getTextControl(null, - container)); - - valueTypeField.selectItem(0); - - if (!isNew && managedProperty != null) { - initFields(); - } - - return container; - } - - private void initFields() { - - if (managedProperty.getPropertyName() != null) - nameField.setText(managedProperty.getPropertyName() - .getTextContent()); - - if (managedProperty.getPropertyClass() != null) - classField.setText(managedProperty.getPropertyClass() - .getTextContent()); - - if (managedProperty.getValue() != null) { - valueTypeField.setText(valueTypes[0]); - valueField.setText(managedProperty.getValue().getTextContent()); - } else if (managedProperty.getNullValue() != null) - valueTypeField.setText(valueTypes[1]); - else if (managedProperty.getMapEntries() != null) - valueTypeField.setText(valueTypes[2]); - else if (managedProperty.getListEntries() != null) - valueTypeField.setText(valueTypes[3]); - else - valueTypeField.setText(valueTypes[0]); - updateValueStatus(); - } - - /** - * @param text - */ - protected void handleNameSelection(String text) { - int propertyCount = 0; - if (beanPropertyList != null) - propertyCount = beanPropertyList.size(); - - if (propertyCount > 0) { - for (int i = 0; i < propertyCount; i++) { - JavaBeanProperty property = (JavaBeanProperty) beanPropertyList - .get(i); - - if (property.getName().equals(text.trim())) { - classField.setText(property.getQualifiedType()); - break; - } - } - } - - } - - private void updateValueStatus() { - if (valueField == null) { - return; - } - valueObject = null; - if (valueTypeField.getText().equalsIgnoreCase( - IFacesConfigConstants.NULL_VALUE)) { - valueField.setEnabled(false); - valueObject = FacesConfigFactory.eINSTANCE.createNullValueType(); - } else if (valueTypeField.getText().equalsIgnoreCase( - IFacesConfigConstants.MAP_ENTRIES) - || valueTypeField.getText().equalsIgnoreCase( - IFacesConfigConstants.LIST_ENTRIES)) { - valueField.getTextControl(null, parent).setEditable(false); - valueField.setEnabled(true); - } else { - - valueObject = valueField.getText(); //Bug 173831 - valueField.getTextControl(null, parent).setEditable(true); - valueField.setEnabled(true); - } - } - - /** - * @param valueType_ - * @param value - */ - protected void handleChangeValue(String valueType_, String value) { - if (valueType_.equalsIgnoreCase(IFacesConfigConstants.VALUE)) { - handleChangeLongStringValue(value); - } else if (valueType_ - .equalsIgnoreCase(IFacesConfigConstants.MAP_ENTRIES)) { - handleChangeMapEntries(); - } else if (valueType_ - .equalsIgnoreCase(IFacesConfigConstants.LIST_ENTRIES)) { - handleChangeListEntries(); - } - } - - /** - * @param textControl - */ - private void handleChangeLongStringValue(String value) { - EditValueDialog valueDialog = new EditValueDialog(EditorPlugin - .getActiveShell(), value); - if (valueDialog.open() == Window.OK) { - valueField.setText((String) valueDialog.getResultData()); - valueObject = valueDialog.getResultData(); - } - } - - /** - * - */ - private void handleChangeMapEntries() { - - MapEntriesType mapEntries; - - if (valueObject instanceof MapEntriesType) - mapEntries = (MapEntriesType) valueObject; - else if (isNew || managedProperty.getMapEntries() == null) { - mapEntries = FacesConfigFactory.eINSTANCE.createMapEntriesType(); - } else { - mapEntries = EcoreUtil.copy(managedProperty - .getMapEntries()); - } - - EditMapEntriesDialog dialog = new EditMapEntriesDialog(EditorPlugin - .getActiveShell(), mapEntries, section); - if (dialog.open() == Dialog.OK) { - valueObject = dialog.getMapEntries(); - } else { - //user cancel the dialog, then restore. - if (!isNew && managedProperty.getMapEntries() != null) - valueObject = EcoreUtil.copy(managedProperty - .getMapEntries()); - // else - // valueObject = null; - } - } - - private void handleChangeListEntries() { - ListEntriesType listEntries; - - if (valueObject instanceof ListEntriesType) - listEntries = (ListEntriesType) valueObject; - else if (isNew || managedProperty.getListEntries() == null) { - listEntries = FacesConfigFactory.eINSTANCE.createListEntriesType(); - } else { - listEntries = EcoreUtil.copy(managedProperty - .getListEntries()); - } - - EditListEntriesDialog dialog = new EditListEntriesDialog(EditorPlugin - .getActiveShell(), listEntries, section); - if (dialog.open() == Dialog.OK) { - valueObject = dialog.getListEntries(); - } else { - //user cancel the dialog, then restore. - if (!isNew && managedProperty.getListEntries() != null) - valueObject = EcoreUtil.copy(managedProperty - .getListEntries()); - // else - // valueObject = null; - } - } - - /** - * Get a list of JavaBeanProperty that from the managed bean class. - * - * @return - */ - private List getBeanPropertyList(ManagedBeanType managedBean_) { - if (managedBean_.getManagedBeanClass() == null) - return null; - String beanClassName = managedBean_.getManagedBeanClass() - .getTextContent(); - IType classType = JavaClassUtils.getType(getProject(), beanClassName); - if (classType == null) { - return null; - } - List list = new ArrayList(); - JavaBeanProperty[] properties = JavaBeanUtils - .getBeanProperties(classType); - if (properties != null) { - for (int i = 0; i < properties.length; i++) { - list.add(properties[i]); - } - } - return list; - } - - /* - * @see org.eclipse.jface.window.Window#getInitialSize() - */ - protected Point getInitialSize() { - Point shellSize = super.getInitialSize(); - return new Point(Math.max( - convertHorizontalDLUsToPixels(MIN_DIALOG_WIDTH), shellSize.x), - shellSize.y); - } - - /** - * @return the project - */ - public IProject getProject() { - if (project == null) { - project = (IProject) section.getPage().getEditor().getAdapter( - IProject.class); - } - return project; - } - - /** - * - */ - protected void okPressed() { - propertyName = nameField.getText(); - propertyClass = classField.getText(); - valueType = valueTypeField.getText(); - - super.okPressed(); - } - - /** - * @return the property class - */ - public String getPropertyClass() { - return propertyClass; - } - - /** - * @param attributeClass - */ - public void setAttributeClass(String attributeClass) { - this.propertyClass = attributeClass; - } - - /** - * @return the property name - */ - public String getPropertyName() { - return propertyName; - } - - /** - * @param attributeName - */ - public void setAttributeName(String attributeName) { - this.propertyName = attributeName; - } - - /** - * @return the value type - */ - public String getValueType() { - return valueType; - } - - /** - * @param defaultValue - */ - public void setValueType(String defaultValue) { - this.valueType = defaultValue; - } - - /** - * @param project - */ - public void setProject(IProject project) { - this.project = project; - } - - /** - * @return the value object - */ - public Object getValueObject() { - return valueObject; - } - - /** - * @param valueObject - */ - public void setValueObject(Object valueObject) { - this.valueObject = valueObject; - } - -} |