blob: 2275079f8df264bb368f9b4696424f7d2f82c03f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 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.pagedesigner.meta;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
import org.eclipse.jst.pagedesigner.meta.internal.CellEditorFactoryRegistry;
import org.eclipse.jst.pagedesigner.ui.dialogfields.DialogFieldWrapper;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
/**
* @author mengbo
* @version 1.5
*/
public class DefaultEditorCreator extends EditorCreator {
static IPropertyPageDescriptor _staticAttr;
static IDOMElement _staticElement;
//static IBindingHandler _staticHandler;
static CellEditorHolder _staticHolder;
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createCellEditor(org.eclipse.swt.widgets.Composite,
* org.eclipse.jst.pagedesigner.meta.IPropertyPageDescriptor,
* org.w3c.dom.Element)
*/
public CellEditor createCellEditor(Composite parent,
IPropertyPageDescriptor attr, IDOMElement element) {
return CellEditorFactoryRegistry.getInstance().createCellEditor(parent,
attr, element);
}
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createDialogField(org.eclipse.jst.pagedesigner.meta.IPropertyPageDescriptor)
// */
// public DialogField createDialogField(IPropertyPageDescriptor attr) {
// return CellEditorFactoryRegistry.getInstance().createDialogField(attr);
// }
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createCellEditorWithWrapper(org.eclipse.swt.widgets.Composite,
* org.eclipse.jst.pagedesigner.meta.IPropertyPageDescriptor,
* org.w3c.dom.Element,
* org.eclipse.jst.pagedesigner.meta.IBindingHandler,
* org.eclipse.swt.graphics.Image)
*/
@SuppressWarnings("deprecation")
public CellEditor createCellEditorWithWrapper(Composite parent,
IPropertyPageDescriptor attr, final IDOMElement element,
IBindingHandler handler1) {
// final IBindingHandler handler = (handler1 == null ? getSystemDefaultBindingHandler()
// : handler1);
// String uri = CMUtil.getElementNamespaceURI(element);
// String tagName = element.getLocalName();
return createCellEditor(parent, attr, element);
//
// if (!handler.isEnabled(element, element, uri, tagName, attr)) {
// // should not enabled, so directly return original cell editor
// return createCellEditor(parent, attr, element);
// }
// try {
// // since "createWrappedCellEditor()" and "getBindingImage()" is
// // called from the constructor of CellEditorWrapper, at that time,
// // can't reference this DefaultEditorCreator and final fields yet,
// // so use static variable for it.
// _staticAttr = attr;
// _staticElement = element;
// _staticHandler = handler;
//
// return new CellEditorWrapper(parent) {
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#createWrappedCellEditor(org.eclipse.swt.widgets.Composite)
// */
// protected CellEditor createWrappedCellEditor(Composite cell) {
// return EditorCreator.getInstance().createCellEditor(cell,
// _staticAttr, _staticElement);
// }
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#openDialogBox(org.eclipse.swt.widgets.Control)
// */
// protected Object openDialogBox(Control cellEditorWindow) {
// return handler.handleBinding(cellEditorWindow.getShell(),
// element, element, convertToString(this.getValue()));
// }
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#getBindingImage()
// */
// protected Image getBindingImage() {
// return _staticHandler.getImage();
// }
// };
// } finally {
// _staticAttr = null;
// _staticElement = null;
// _staticHandler = null;
// _staticHolder = null;
// }
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createCellEditorWithWrapper(org.eclipse.swt.widgets.Composite,
* org.eclipse.jst.pagedesigner.meta.IPropertyPageDescriptor,
* org.eclipse.jst.pagedesigner.meta.EditorCreator.CellEditorHolder,
* org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement,
* org.eclipse.jst.pagedesigner.meta.IBindingHandler)
*/
@SuppressWarnings("deprecation")
public CellEditor createCellEditorWithWrapper(Composite parent,
IPropertyPageDescriptor attr, CellEditorHolder holder,
final IDOMElement element, IBindingHandler handler1) {
// final IBindingHandler handler = (handler1 == null ? getSystemDefaultBindingHandler()
// : handler1);
// String uri = CMUtil.getElementNamespaceURI(element);
// String tagName = element.getLocalName();
return holder.createCellEditor(parent);
// if (!handler.isEnabled(element, element, uri, tagName, attr)) {
// // should not enabled, so directly return original cell editor
// return holder.createCellEditor(parent);
// }
// try {
// // since "createWrappedCellEditor()" and "getBindingImage()" is
// // called from the constructor of CellEditorWrapper, at that time,
// // can't reference this DefaultEditorCreator and final fields yet,
// // so use static variable for it.
// _staticElement = element;
// _staticHandler = handler;
// _staticHolder = holder;
//
// return new CellEditorWrapper(parent) {
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#createWrappedCellEditor(org.eclipse.swt.widgets.Composite)
// */
// protected CellEditor createWrappedCellEditor(Composite cell) {
// return _staticHolder.createCellEditor(cell);
// }
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#openDialogBox(org.eclipse.swt.widgets.Control)
// */
// protected Object openDialogBox(Control cellEditorWindow) {
// return handler.handleBinding(cellEditorWindow.getShell(),
// element, element, convertToString(this.getValue()));
// }
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#getBindingImage()
// */
// protected Image getBindingImage() {
// return _staticHandler.getImage();
// }
// };
// } finally {
// _staticAttr = null;
// _staticElement = null;
// _staticHandler = null;
// _staticHolder = null;
// }
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createDialogFieldWithWrapper(java.lang.String,
* java.lang.String,
* org.eclipse.jst.pagedesigner.meta.IPropertyPageDescriptor,
* org.eclipse.jst.pagedesigner.meta.IBindingHandler)
*/
@SuppressWarnings("deprecation")
public DialogField createDialogFieldWithWrapper(String uri, String tagName,
IPropertyPageDescriptor attr, IBindingHandler handler1) {
final IBindingHandler handler = (handler1 == null ? getSystemDefaultBindingHandler()
: handler1);
DialogField field = createDialogField(attr);
// if (field instanceof StringButtonDialogField)
// {
// ((StringButtonDialogField) field).setButtonLabel("...");
// }
DialogFieldWrapper wrapper = new DialogFieldWrapper(field, handler
.getImage(), handler.getDisabledImage(), uri, tagName, attr,
handler);
wrapper.setDatabindingEnabled(true);
return wrapper;
}
// private String convertToString(Object value) {
// if (value == null) {
// return null;
// }
// return value.toString();
// }
@SuppressWarnings("deprecation")
@Override
public DialogField createDialogFieldWithWrapper(
IPropertyPageDescriptor attr, IBindingHandler handler1) {
final IBindingHandler handler = (handler1 == null ? getSystemDefaultBindingHandler()
: handler1);
DialogField field = createDialogField(attr);
// if (field instanceof StringButtonDialogField)
// {
// ((StringButtonDialogField) field).setButtonLabel("...");
// }
DialogFieldWrapper wrapper = new DialogFieldWrapper(field, handler
.getImage(), handler.getDisabledImage(), attr.getUri(), attr.getTagName(), attr,
handler);
wrapper.setDatabindingEnabled(true);
return wrapper;
}
@Override
public DialogField createDialogField(IPropertyPageDescriptor attr) {
return CellEditorFactoryRegistry.getInstance().createDialogField(attr);
}
}