/* D-RexGxt - D-RexGxt - GUI Design Tool for GWT
 * Copyright (c) 2008,  KPS Corporation
 * All rights reserved.
 *
 * Open Source License
 * ------------------------------------------------------------------------------------------
 * D-RexGxt is licensed under the terms of the Open Source GPL 3.0 license.
 *
 * http://www.gnu.org/licenses/gpl.html
 *
 * --
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 */
package jp.co.kpscorp.gwt.client.design.delegate;

import java.util.List;
import java.util.Map;

import com.extjs.gxt.ui.client.widget.Component;
import com.extjs.gxt.ui.client.widget.form.Field;

public interface Delegate {
	public Field getLtext(String prop);

	public void setLtext(String prop, Field ltext);

	public String[] getProps();

	public String[] getInnerProps();

	public Object exec(String mthodName, Object[] parms);

	public Object getParmObj(String parmStr);

	public void makeSetterCode(Component widget, List<String>[] lists,
			String fstr, String instr, String obstr, String fieldname, Map map);

	public String makeParmString(Object o);

	public boolean isAddable();

	public boolean isAddableToParent(Component parent);

	public boolean isRemovableToParent(Component parent);

	public String getAddCode(Component widget, List<String>[] lists,
			String parentFiledName, String fieldName, Map<Object, Object> map);

	public boolean isClickResize();

	public Component getParent();

	public void setTargetInfo(Component parent, Component child);

	public Component setInitStyle(Component widget);

	public Component getInstance();

	public Component removeWidget(Component widget);

	public void addWidget(Component widget);

	public String getCategory();

	public void setPropMap(Map<String, Field> fieldMap);

	public List<Component> getChildren();

	public String getIconStyle();

}
