/*******************************************************************************
* Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.common.model.ui.attribute.editor;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.swt.widgets.Composite;
public interface IPropertyEditor extends IAdaptable {
public static final String ERROR = "IPropertyEditor.error"; //$NON-NLS-1$
public static final String VALUE = "IPropertyEditor.value"; //$NON-NLS-1$
public static final String LIST_CONTENT = "IPropertyEditor.listContent"; //$NON-NLS-1$
// get components
public CellEditor getCellEditor(Composite parent);
public ExtendedFieldEditor getFieldEditor(Composite parent);
// listeners
public void addPropertyEditorListener(IPropertyEditorListener l);
public void removePropertyEditorListener(IPropertyEditorListener l);
// for slava support
public Object getValue();
public void setValue(Object value);
// input object must be implemetation IAdaptable
public Object getInput();
public void setInput(Object input);
// label text
public void setLabelText(String labelText);
public String getLabelText();
/*
* Returns system name for edited model attribute.
*/
public String getAttributeName();
/*
* Returns true if field editor requires ample vertical space.
* If form cannot provide required vertical space it creates
* text field and change button that will call dialog with
* the field editor.
*/
public boolean isGreedyEditor();
/*
* Returns Name for change button that form creates if it cannot
* provide required vertical space for the field editor
*/
public String getChangeButtonName();
// destroy object
public void dispose();
}