}
  public void initDone() throws FactoryException  {    String name = getProperties().getProperty("resource", null);    if(name!=null) name = name.replace('\\', '/');    if(name!=null && name.indexOf('/')==-1)    {      //it's a relative path to resource, lets convert it	    try	    {		    configFile = new File(new URL(Prefs.INSTANCE.get(Prefs.LAST_WORKSPACE, null)).getFile());	    }	    catch(MalformedURLException e)	    {		    throw new FactoryException(e);	    }	    try      {        workflowsXML = new File(configFile.getParentFile(), name);        getProperties().setProperty("resource", workflowsXML.toURL().toString());      }      catch(MalformedURLException e)      {        e.printStackTrace();      }    }    super.initDone();    String dir = workflowsXML.getParent();    Iterator iter = workflows.values().iterator();    while(iter.hasNext())    {      WorkflowConfig config = (WorkflowConfig)iter.next();      if(config.location.indexOf('/')==-1 && config.location.indexOf('\\')==-1)      {        try        {          File file = new File(dir, config.location);          config.url = file.toURL();          if(file.exists())            config.lastModified = file.lastModified();        }        catch(MalformedURLException e)        {          e.printStackTrace();        }      }    }    //now read in all layouts    iter = workflows.entrySet().iterator();    while(iter.hasNext())    {      Map.Entry entry = (Map.Entry)iter.next();      String workflowName = entry.getKey().toString();      WorkflowConfig config = (WorkflowConfig)entry.getValue();      String layoutUrl = getLayoutURL(config, workflowName);      layouts.put(workflowName, layoutUrl);    }  }