亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? workspace.java

?? 一個很好實用的工作流OSWORKFLOW開發(fā)例子.有著非常優(yōu)秀的靈活性.
?? JAVA
字號:
package com.opensymphony.workflow.loader;import java.io.*;import java.util.*;import java.net.URL;import java.net.MalformedURLException;import com.opensymphony.workflow.FactoryException;import com.opensymphony.workflow.designer.Layout;import com.opensymphony.workflow.designer.Prefs;import com.opensymphony.workflow.designer.ResourceManager;import com.opensymphony.workflow.designer.WorkflowGraph;/** * @author Hani Suleiman (hani@formicary.net) * Date: May 15, 2003 * Time: 7:56:36 PM */public class Workspace extends XMLWorkflowFactory{  private Map layouts = new HashMap();  private File workflowsXML;  private File configFile;  public Workspace()  {    workflows = new HashMap();  }  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);    }  }  private String getLayoutURL(XMLWorkflowFactory.WorkflowConfig config, String workflowName)  {    try    {      if(config.url==null) config.url = new File(workflowsXML.getParentFile(), workflowName + ".xml").toURL();    }    catch(MalformedURLException e)    {      e.printStackTrace();    }    String layoutUrl = config.url.toString();    layoutUrl = layoutUrl.substring(0, layoutUrl.lastIndexOf('/')+1);    layoutUrl = layoutUrl + workflowName + ".lyt";    return layoutUrl;  }  public String getName()  {    return configFile!=null ? configFile.getName().substring(0, configFile.getName().lastIndexOf('.')) : "<new>";  }  public boolean isNew()  {    return workflowsXML==null;  }  public void importDescriptor(String name, InputStream is)  {    WorkflowConfig config = new WorkflowConfig(null, "file", name + ".xml");    try    {      File file = new File(workflowsXML.getParentFile(), name+".xml");      config.url = file.toURL();      config.lastModified = file.lastModified();      workflows.put(name, config);    }    catch(MalformedURLException e)    {      //can't really happen      e.printStackTrace();    }  }  public Object getLayout(String workflowName)  {    Object obj = layouts.get(workflowName);    if(obj==null) return null;    if(obj instanceof Layout)      return (Layout)obj;    String url = obj.toString();    try    {      InputStream is = new URL(url).openStream();      if(is!=null)      {        Layout layout = new Layout(is);        layout.setUrl(url);        layouts.put(workflowName, layout);        return layout;      }    }    catch(FileNotFoundException ex)    {      //that's ok, no saved layout    }    catch(java.io.IOException e)    {      e.printStackTrace();    }    return null;  }  public void save()  {    if(workflowsXML==null)    {      return;    }    try    {      if(!configFile.exists())      {        //this is a brand new workspace, so lets create the main config file        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(configFile)));        out.println("<osworkflow>");        out.println("  <persistence class=\"com.opensymphony.workflow.spi.memory.MemoryWorkflowStore\"/>");        out.println("  <factory class=\"com.opensymphony.workflow.loader.Workspace\">");        out.println("    <property key=\"resource\" value=\"workflows.xml\" />");        out.println("  </factory>");        out.println("</osworkflow>");        out.flush();        out.close();      }      PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(workflowsXML)));      out.println("<workflows>");      Iterator iter = workflows.entrySet().iterator();      while(iter.hasNext())      {        Map.Entry entry = (Map.Entry)iter.next();        WorkflowConfig config = (WorkflowConfig)entry.getValue();        if(config.location==null) config.location = entry.getKey() + ".xml";        out.println("  <workflow name=\"" + entry.getKey() + "\" type=\"file\" location=\"" + config.location + "\" />");      }      out.println("</workflows>");      out.flush();      out.close();    }    catch(IOException e)    {      e.printStackTrace();    }  }  public boolean removeWorkflow(String name) throws FactoryException  {    WorkflowConfig removed = (WorkflowConfig)workflows.remove(name);    if(removed == null) return false;    save();    if(removed.url != null && removed.url.getProtocol().equals("file"))    {      return new File(removed.url.getFile()).delete();    }    return true;  }  public WorkflowDescriptor getWorkflow(String name, boolean validate) throws FactoryException  {    WorkflowConfig config = (WorkflowConfig)workflows.get(name);    if(config==null) return null;    if(config.url ==null)    {      return config.descriptor;    }    try    {      return super.getWorkflow(name, validate);    }    catch(FactoryException e)    {      //something went wrong, so lets delete the workflow from our list      workflows.remove(name);      throw e;    }  }  public boolean saveWorkflow(String name, WorkflowDescriptor descriptor, WorkflowGraph graph, boolean replace) throws FactoryException  {    Object obj = layouts.get(name);    if(obj instanceof Layout)    {      Layout layout = (Layout)obj;      try      {        WorkflowConfig config = (WorkflowConfig)workflows.get(name);        URL url = new URL(getLayoutURL(config, name));        File file = new File(url.getFile());        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file)));        layout.writeXML(out, 0, graph);        out.flush();        out.close();        if(config.location==null)        {          config.location = name + ".xml";          config.url = new File(workflowsXML.getParentFile(), config.location).toURL();        }      }      catch(IOException e)      {        e.printStackTrace();        return false;      }    }    if(descriptor!=null)    {      WorkflowConfig config = (WorkflowConfig)workflows.get(name);      if(config.url!=null)      {	      descriptor.getMetaAttributes().put("generator", "OSWOrkflow Designer");	      descriptor.getMetaAttributes().put("lastModified", (new Date()).toString());        return super.saveWorkflow(name, descriptor, replace);      }      else      {        System.out.println("WARN: *** saveWorkflow called with config.location=" + config.location + " url is null");      }    }    return false;  }  public void setLayout(String workflowName, Object layout)  {    layouts.put(workflowName, layout);  }  public File getLocation()  {    return workflowsXML;  }  public void setLocation(File file)  {    this.workflowsXML = new File(file.getParentFile(), "workflows.xml");    this.configFile = file;  }  public void createWorkflow(String name)  {    WorkflowConfig config = new WorkflowConfig(null, "file", null);    config.descriptor = DescriptorFactory.getFactory().createWorkflowDescriptor();    config.descriptor.setName(name);    ActionDescriptor initialAction = DescriptorFactory.getFactory().createActionDescriptor();    initialAction.setName(ResourceManager.getString("action.initial.start"));    config.descriptor.getInitialActions().add(initialAction);	  config.descriptor.getMetaAttributes().put("created", (new Date()).toString());    workflows.put(name, config);  }	public void renameWorkflow(String oldName, String newName)	{		//todo need to keep track of deleted workflows and delete their files on save		WorkflowConfig config = (WorkflowConfig)workflows.get(oldName);		config.location = newName + ".xml";		try		{			config.url = new File(workflowsXML.getParentFile(), config.location).toURL();		}		catch(MalformedURLException e)		{			//this can't ever happen			e.printStackTrace();		}		workflows.remove(oldName);		workflows.put(newName, config);	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re这里只有精品首页| 久久亚洲影视婷婷| 久久久久久一级片| 日韩精品电影在线| 99国产精品一区| 久久老女人爱爱| 免费黄网站欧美| 精品婷婷伊人一区三区三| 国产欧美一区二区在线| 久久99国内精品| 欧美日韩亚洲综合一区二区三区| 国产精品午夜免费| 国产成人综合精品三级| 337p日本欧洲亚洲大胆色噜噜| 亚洲综合男人的天堂| 成人深夜福利app| 国产亚洲一区二区在线观看| 日韩国产高清影视| 欧美亚州韩日在线看免费版国语版| 国产夜色精品一区二区av| 狂野欧美性猛交blacked| 91精品国产综合久久精品性色| 亚洲第一激情av| 欧美少妇一区二区| 五月婷婷激情综合| 欧美一区二区三区四区在线观看 | 美女国产一区二区三区| 欧美午夜寂寞影院| 亚洲1区2区3区视频| 欧美视频在线观看一区二区| 亚洲制服欧美中文字幕中文字幕| 99精品视频一区| 亚洲欧美日韩精品久久久久| 91一区一区三区| 亚洲精品视频在线观看网站| 91黄色在线观看| 午夜不卡在线视频| 日韩一区二区电影在线| 狠狠色狠狠色综合系列| 久久亚洲影视婷婷| 成人短视频下载| 亚洲精品高清视频在线观看| 欧美日韩一区二区欧美激情| 天天亚洲美女在线视频| 日韩一区二区三区在线视频| 国产一区久久久| 国产精品电影院| 欧美亚州韩日在线看免费版国语版| 亚洲午夜久久久| 精品国产自在久精品国产| 成人在线视频一区| 一区二区三区四区国产精品| 91麻豆精品国产91久久久使用方法| 蜜桃精品视频在线| 国产精品视频一二三区| 日本韩国欧美三级| 日av在线不卡| 亚洲欧洲av一区二区三区久久| 日本精品视频一区二区| 免费观看在线色综合| 国产精品热久久久久夜色精品三区| 色又黄又爽网站www久久| 老司机精品视频线观看86| 国产精品狼人久久影院观看方式| 欧美日韩一区精品| 国产suv一区二区三区88区| 亚洲男人都懂的| 久久先锋资源网| 在线观看区一区二| 国产成人精品午夜视频免费| 亚洲电影在线免费观看| 久久亚洲私人国产精品va媚药| 99在线精品观看| 韩日欧美一区二区三区| 亚洲图片激情小说| 亚洲女同女同女同女同女同69| 欧美艳星brazzers| 国产成人免费在线视频| 免费xxxx性欧美18vr| 亚洲精品菠萝久久久久久久| 久久久不卡影院| 日韩欧美亚洲一区二区| 日本电影欧美片| 国产成人自拍在线| 久久av中文字幕片| 性做久久久久久免费观看| 中文乱码免费一区二区| 欧美α欧美αv大片| 欧美系列日韩一区| 日本高清成人免费播放| 成人免费看视频| 国产91精品精华液一区二区三区| 奇米在线7777在线精品| 一区二区三区四区不卡在线| 国产精品网曝门| 日本一区二区免费在线观看视频 | 91在线丨porny丨国产| 美女视频黄久久| 三级亚洲高清视频| 亚洲午夜电影网| 亚洲综合免费观看高清完整版 | 91毛片在线观看| 成人综合在线视频| 国产精品538一区二区在线| 美国三级日本三级久久99| 五月综合激情日本mⅴ| 一区二区免费看| 国产精品传媒入口麻豆| 国产精品久线观看视频| 国产日韩欧美一区二区三区乱码 | 国产福利91精品一区| 久久99久久久久久久久久久| 日日摸夜夜添夜夜添国产精品| 亚洲成人在线免费| 日韩电影免费在线看| 日本三级韩国三级欧美三级| 日韩和欧美一区二区| 日韩电影免费在线看| 美女尤物国产一区| 久久精工是国产品牌吗| 麻豆国产欧美一区二区三区| 韩国成人精品a∨在线观看| 狠狠色丁香久久婷婷综| 国产成人免费在线观看不卡| 不卡的av网站| 欧美三区免费完整视频在线观看| 欧洲精品在线观看| 欧美一二区视频| 欧美国产日产图区| 一区二区在线免费观看| 性久久久久久久| 五月婷婷综合在线| 国产精品资源在线观看| 色综合久久综合中文综合网| 欧美日韩国产综合一区二区| 欧美丰满一区二区免费视频| 精品久久国产老人久久综合| 国产日韩欧美综合一区| 亚洲综合视频网| 久99久精品视频免费观看| 国产a级毛片一区| 91久久线看在观草草青青| 91麻豆精品国产91| 中文文精品字幕一区二区| 一区二区三区不卡视频| 韩国视频一区二区| 在线免费一区三区| 久久久亚洲精品石原莉奈 | 国产视频在线观看一区二区三区| 国产精品伦理在线| 肉色丝袜一区二区| 国产成人亚洲综合a∨婷婷| 在线观看日韩毛片| 国产亚洲福利社区一区| 亚洲午夜电影在线观看| 床上的激情91.| 91精品国产日韩91久久久久久| 国产午夜精品美女毛片视频| 亚洲一区二区四区蜜桃| 国产精品中文字幕日韩精品| 精品视频一区二区三区免费| 久久久久久久综合色一本| 午夜激情久久久| 色哟哟国产精品免费观看| 久久嫩草精品久久久久| 亚洲国产一区在线观看| 成人免费的视频| 久久综合色一综合色88| 亚洲国产一区二区三区青草影视| 国产成人免费视频网站| 日韩精品一区二区三区在线观看| 亚洲午夜久久久久久久久电影院| 国产999精品久久久久久绿帽| 欧美美女直播网站| 国产激情91久久精品导航| 欧美日韩免费观看一区三区| 中文字幕第一区综合| 激情欧美一区二区三区在线观看| 欧洲在线/亚洲| 亚洲欧美日韩国产一区二区三区| 国产精品88888| 久久影院电视剧免费观看| 首页国产丝袜综合| 欧美午夜精品久久久久久孕妇 | 男男视频亚洲欧美| 在线观看视频一区二区| 亚洲免费高清视频在线| 波多野结衣中文字幕一区二区三区 | 日本高清免费不卡视频| 中文字幕一区三区| 国产91高潮流白浆在线麻豆| 欧美va亚洲va国产综合| 免费国产亚洲视频| 欧美一区二区三区啪啪| 午夜精品久久久久久久99水蜜桃| 色综合天天狠狠| 亚洲一区二区视频| 91浏览器打开| 亚洲欧美日韩人成在线播放| 91网站最新地址|