package org.korsakow.domain; import java.util.ArrayList; import java.util.Collection; import org.dsrg.soenea.uow.UoW; import org.korsakow.domain.interf.IKeyword; import org.korsakow.domain.interf.IWidget; import org.korsakow.ide.DataRegistry; import org.korsakow.ide.resources.widget.WidgetPersistAction; import org.korsakow.ide.resources.widget.WidgetPersistCondition; public class WidgetFactory { public static Widget createNew(long id, long version) { Widget object = new Widget(id, version); UoW.getCurrent().registerNew(object); return object; } public static Widget createNew(String widgetType) { Widget object = createNew(); object.setWidgetId(widgetType); return object; } public static Widget createNew() { return createNew(DataRegistry.getMaxId(), 0); } public static Widget createNew(String name, Collection<IKeyword> keywords, String widgetId, WidgetPersistCondition persistCondition, WidgetPersistAction persistAction, int x, int y, int width, int height) { Widget object = new Widget(DataRegistry.getMaxId(), 0, name, keywords, widgetId, persistCondition, persistAction, x, y, width, height); UoW.getCurrent().registerNew(object); return object; } public static Widget createClean(long id, long version, String name, Collection<IKeyword> keywords, String widgetId, WidgetPersistCondition persistCondition, WidgetPersistAction persistAction, int x, int y, int width, int height) { Widget object = new Widget(id, version, name, keywords, widgetId, persistCondition, persistAction, x, y, width, height); UoW.getCurrent().registerClean(object); return object; } public static Widget copy(IWidget src) { Widget copy = createNew( src.getName(), KeywordFactory.copy(src.getKeywords()), src.getWidgetId(), src.getPersistCondition(), src.getPersistAction(), src.getX(), src.getY(), src.getWidth(), src.getHeight() ); for (String propId : src.getDynamicPropertyIds()) copy.setDynamicProperty(propId, src.getDynamicProperty(propId)); return copy; } public static Collection<IWidget> copy(Collection<IWidget> src) { Collection<IWidget> copies = new ArrayList<IWidget>(); for (IWidget widget : src) copies.add(copy(widget)); return copies; } }