/******************************************************************************* * Copyright (c) 2007 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.ui.widget.editor; import java.util.List; import org.jboss.tools.common.ui.IValidator; import org.jboss.tools.common.ui.widget.editor.ButtonFieldEditor.ButtonPressedAction; public interface IFieldEditorFactory { final IFieldEditorFactory INSTANCE = new SwtFieldEditorFactory(); /** * Creates field editor with label and text input control. * * @param name - logic name of the editor * @param label - text for label control rendered near text input * @param defaultValue - initial value of text control * @return */ IFieldEditor createTextEditor(String name, String label, String defaultValue); /** * Creates field editor with label and text input control. * * @param name - logic name of the editor * @param label - text for label control rendered near text input * @param defaultValue - initial value of text control * @param description - human friendly explanation of what edited value is for * @return */ IFieldEditor createTextEditor(String name, String label, String defaultValue, String description); /** * Creates field editor with label and combo input control. * * @param name - logic name of the editor * @param label - text for label control rendered near combo input * @param values * @param defaultValue - initial value of combo control * @return */ ITaggedFieldEditor createComboEditor(String name, String label, List values, Object defaultValue); /** * Creates field editor with label and combo input control. * * @param name - logic name of the editor * @param label - text for label control rendered near combo input * @param values * @param defaultValue - initial value of text area * @param flat - if true, text area of the combo control is editable * @return */ ITaggedFieldEditor createComboEditor(String name, String label, List values, Object defaultValue, boolean flat); /** * Creates field editor with label and combo input control. * * @param name - logic name of the editor * @param label - text for label control rendered near combo input * @param values * @param defaultValue - initial value of text area * @param flat - if true, text area of the combo control is editable * @param description - human friendly explanation of what edited value is for * @return */ ITaggedFieldEditor createComboEditor(String name, String label, List values, Object defaultValue, boolean editable, String description); /** * Creates field editor with label and set of radio input controls. * * @param name - logic name of the editor * @param label - text for label control rendered near checkbox input * @param labels - human friendly text presentations of values * @param values - values associated with radio controls * @param defaultValue - initial value of editor, selected radio control * @return */ ITaggedFieldEditor createRadioEditor(String name, String label, List<String> labels, List values, Object defaultValue); /** * Creates field editor with label and set of radio input controls. * * @param name - logic name of the editor * @param label - text for label control rendered near checkbox input * @param labels - human friendly text presentations of values * @param values - values associated with radio controls * @param defaultValue - initial value of editor, selected radio control * @param description - human friendly explanation of what edited value is for * @return */ ITaggedFieldEditor createRadioEditor(String name, String label, List<String> labels, List values, Object defaultValue, String description); /** * Creates field editor with label and set of radio input controls. * * @param name - logic name of the editor * @param label - text for label control rendered near checkbox input * @param labels - human friendly text presentations of values * @param values - values associated with radio controls * @param defaultValue - initial value of editor, selected radio control * @param description - human friendly explanation of what edited value is for * @param valueDescriptions - human friendly explanation of what each option means * @return */ ITaggedFieldEditor createRadioEditor(String name, String label, List<String> labels, List values, Object defaultValue, String description, List<String> valueDescriptions); /** * Creates field editor with label and checkbox input control. * * @param name - logic name of the editor * @param label - text for label control rendered near checkbox input * @param defaultValue - initial state of checkbox control * @return */ IFieldEditor createCheckboxEditor(String name, String label, boolean defaultValue); /** * Creates field editor with label and checkbox input control. * * @param name - logic name of the editor * @param label - text for label control rendered near checkbox input * @param defaultValue - initial state of checkbox control * @param description - human friendly explanation of what edited value is for * @return */ public IFieldEditor createCheckboxEditor(String name, String label, boolean defaultValue, String description); /** * * @param name * @param label * @param defaultValue - initial value of text control * @return */ IFieldEditor createBrowseFolderEditor(String name, String label, String defaultValue); /** * * @param name * @param label * @param defaultValue * @return */ IFieldEditor createBrowseWorkspaceFolderEditor(String name, String label, String defaultValue); /** * * @param name * @param label * @param defaultValue * @return */ IFieldEditor createBrowseSourceFolderEditor(String name, String label, String defaultValue); /** * * @param name * @param label * @param initProjectName * @param defaultValue * @return */ IFieldEditor createBrowsePackageEditor(String name, String label, String initSourceFolderPath, String defaultValue); /** * * @param name * @param label * @param defaultValue * @return */ IFieldEditor createBrowseFileEditor(String name, String label, String defaultValue); /** * * @param name * @param label * @param defaultValue * @return */ IFieldEditor createUneditableTextEditor(String name, String label, String defaultValue); /** * Creates field editor with label, text input control, and button control. * * @param name - logic name of the editor * @param label - text for label control rendered near text input * @param defaultValue - initial value of text control * @param action - action executed when button is pushed * @param validator * @return */ IFieldEditor createButtonFieldEditor(String name, String label, String defaultValue, ButtonFieldEditor.ButtonPressedAction action, IValidator validator); /** * Creates field editor with label, text input control, and button control. * * @param name - logic name of the editor * @param label - text for label control rendered near text input * @param defaultValue - initial value of text control * @param action - action executed when button is pushed * @param validator * @param description - human friendly explanation of what edited value is for * @return */ IFieldEditor createButtonFieldEditor(String name, String label, String defaultValue, ButtonFieldEditor.ButtonPressedAction action, IValidator validator, String description); /** * * @param name * @param label * @param defaultValue * @param actions * @param validator * @return */ public IFieldEditor createButtonFieldEditor(String name, String label, String defaultValue, ButtonFieldEditor.ButtonPressedAction[] actions, IValidator validator); /** * * @param name * @param label * @param defaultValue * @param buttonAction * @param linkAction * @param validator * @return */ public IFieldEditor createButtonAndLinkFieldEditor(String name, String label, String defaultValue, ButtonFieldEditor.ButtonPressedAction buttonAction, ButtonFieldEditor.ButtonPressedAction linkAction, IValidator validator); /** * * @param name * @param label * @param values * @param defaultValue * @param editable * @param action1 * @param action2 * @param validator * @return */ IFieldEditor createComboWithTwoButtons(String name, String label, List values, Object defaultValue, boolean flat, ButtonFieldEditor.ButtonPressedAction action1, ButtonFieldEditor.ButtonPressedAction action2, IValidator validator); ButtonFieldEditor.ButtonPressedAction createNotImplementedYetAction(String buttonName); IFieldEditor createComboWithButton(String name, String label, List values, Object defaultValue, boolean flat, ButtonPressedAction action1, IValidator validator); }