/*
This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2010 Servoy BV
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option) any
later version.
This program 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along
with this program; if not, see http://www.gnu.org/licenses or write to the Free
Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
*/
package com.servoy.j2db;
import java.util.List;
import java.util.Map;
import com.servoy.j2db.persistence.Form;
import com.servoy.j2db.persistence.Portal;
import com.servoy.j2db.ui.IDataRenderer;
import com.servoy.j2db.util.TabSequenceHelper;
/**
* @author jcompagner
*
*/
public interface IDataRendererFactory<T>
{
/**
* @param application
* @param form
* @param scriptExecuter
* @param part_panels
* @param i
* @param b
* @param undoManager
*/
Map completeRenderers(IApplication application, Form form, IScriptExecuter scriptExecuter, Map part_panels, int width, boolean printing,
ControllerUndoManager undoManager, TabSequenceHelper<T> tabSequence) throws Exception;
/**
* @param name TODO
* @param application
* @return
*/
IDataRenderer getEmptyDataRenderer(String Id, String name, IApplication application, boolean showSelection);
/**
* @param app
* @param meta
* @param form
* @param el
* @param printing
* @param object
* @return
*/
IDataRenderer createPortalRenderer(IApplication app, Portal meta, Form form, IScriptExecuter el, boolean printing, ControllerUndoManager undoManager)
throws Exception;
void extendTabSequence(List<T> tabSequence, IFormUIInternal containerImpl);
void applyTabSequence(List<T> tabSequence, IFormUIInternal containerImpl);
void reapplyTabSequence(IFormUIInternal containerImpl, int newBaseTabSequenceIndex);
/**
* @param application TODO
* @param form
*/
void prepareRenderers(IApplication application, Form form);
}