Bug 152828 Add the projectFolder property on module
When user doesn't set the resource folder path in designer, there should be a default working path for Birt to manage the report design and find the related resources. A new property should be added on Module: name: projectFolder type:URL This property only can be given from the open design method from session but should not be set after the module initialized. Concern about the backward compatiblity issue, a new method will be added. Open design with a config argument.
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/api/SessionHandle.java
import java.util.Iterator;
import java.util.Locale;
import org.eclipse.birt.report.model.api.activity.NotificationEvent;
import org.eclipse.birt.report.model.api.command.LibraryChangeEvent;
import org.eclipse.birt.report.model.api.command.ResourceChangeEvent;
import org.eclipse.birt.report.model.api.core.IResourceChangeListener;
import org.eclipse.birt.report.model.api.metadata.PropertyValueException;
import org.eclipse.birt.report.model.core.DesignSession;
import org.eclipse.birt.report.model.core.Module;
import com.ibm.icu.util.ULocale;
/**
 * Represents the design state -- a session for a user. In the Eclipse
 * environment, this represents the set of open designs. In the web environment,
 * this represents open designs and locale for the session. A session has a set
 * of default values for style properties and a default unit. The session also
 * has methods to create and open designs.
 * <p>
 * A session can also provides the mechanism for specified file searching
 * algorithm. After get an new instance of SessionHandle, an algorithm of how to
 * search a file should be set by calling
 * <code>{@link #setResourceLocator(IResourceLocator)}</code> if the default
 * resource locator is not the expected one.
 * <p>
 * The default resource locator will search in the folder where the design file
 * is located.
 * 
 * @see org.eclipse.birt.report.model.api.DefaultResourceLocator
 * @see org.eclipse.birt.report.model.core.DesignSession
 */
public class SessionHandle