亚洲成人一区在线观看_天堂网www_国产精品久久9_中文在线播放_伊人天天_久久精品久久久精品美女

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > Eclipse WTP Projects Facets實戰指南(2)

Eclipse WTP Projects Facets實戰指南(2)
2010-01-14 23:06:05  作者:  來源:

Eclipse WTP Projects Facets實戰指南(2)

原創作者: macrochen   閱讀:388次   評論:0條   更新時間:2007-11-21    

修飾工作
給facet在選擇列表中添加圖標
格式如下:

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.ui.images">  
  2.   <image facet="{string}" path="{string}"/> (0 or more)   
  3.   <image category="{string}" path="{string}"/> (0 or more)   
  4. extension>  


設置如下:
 

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.ui.images">  
  2.   <image facet="formgen.core" path="icons/formgen-core.gif"/>  
  3.   <image facet="formgen.ext" path="icons/formgen-ext.gif"/>  
  4.   <image category="formgen.category" path="icons/formgen-cat.gif"/>  
  5. extension>  

效果如圖

 

添加向導頁
有時候我們可能需要根據用戶的輸入來執行facet, 通過添加wizard page來接收用戶的輸入, 用戶在facet選擇列表頁做出選擇之后,將出現我們添加的wizard Page
下面通過給我們的servlet指定url pattern的例子來進行說明
plugin.xml設置格式如下:

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.core.facets">  
  2.   <action>  
  3.     <config-factory class="class:org.eclipse.wst.common.project.facet.core.IActionConfigFactory"/>  
  4.   action>  
  5. extension>  
  6.   
  7. <extension point="org.eclipse.wst.common.project.facet.ui.wizardPages">  
  8.   <wizard-pages action="{string}"> (0 or more)   
  9.     <page class="{class:org.eclipse.wst.common.project.facet.ui.IFacetWizardPage}"/> (1 or more)   
  10.   wizard-pages>  
  11. extension>    

 
這里需要說明的是為了讓我們定制的wizard page和action delegate之間進行通信, 需要使用一個javabean或者是map來封裝wizard page中輸入的數據, 而且必須在action配置中提供一個action factory,該對象將由factory創建, wizard page填充數據, action delegate負責從該對象讀取數據

除外,wizard page將通過指定的action id來引用action, 這也是我們前面推薦指定action id而不是系統生成的原因

配置如下:

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.core.facets">  
  2.   <project-facet-version facet="formgen.core" version="1.0">  
  3.     <action type="INSTALL" id="formgen.core.install">  
  4.       <config-factory class="com.formgen.eclipse.FormGenCoreFacetInstallConfig$Factory"/>  
  5.     action>  
  6.   project-facet-version>  
  7. extension>  
  8.   
  9. <extension point="org.eclipse.wst.common.project.facet.ui.wizardPages">  
  10.   <wizard-pages action="formgen.core.install">  
  11.     <page class="com.formgen.eclipse.FormGenCoreFacetInstallPage"/>  
  12.   wizard-pages>  
  13. extension>  

 

代碼如下:

java 代碼
 
  1. package com.formgen.eclipse;   
  2.   
  3. import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;   
  4.   
  5. public final class FormGenCoreFacetInstallConfig   
  6. {   
  7.     private String urlPattern = "*.form";   
  8.   
  9.     public String getUrlPattern()   
  10.     {   
  11.         return this.urlPattern;   
  12.     }   
  13.   
  14.     public void setUrlPattern( final String urlPattern )   
  15.     {   
  16.         this.urlPattern = urlPattern;   
  17.     }   
  18.   
  19.     public static final class Factory implements IActionConfigFactory   
  20.     {   
  21.         public Object create()   
  22.         {   
  23.             return new FormGenCoreFacetInstallConfig();   
  24.         }   
  25.     }   
  26. }   
  27.   


 

java 代碼
 
  1. package com.formgen.eclipse;   
  2.   
  3. import org.eclipse.swt.SWT;   
  4. import org.eclipse.swt.layout.GridData;   
  5. import org.eclipse.swt.layout.GridLayout;   
  6. import org.eclipse.swt.widgets.Composite;   
  7. import org.eclipse.swt.widgets.Label;   
  8. import org.eclipse.swt.widgets.Text;   
  9. import org.eclipse.wst.common.project.facet.ui.AbstractFacetWizardPage;   
  10.   
  11. public final class FormGenCoreFacetInstallPage extends AbstractFacetWizardPage   
  12. {   
  13.     private FormGenCoreFacetInstallConfig config;   
  14.     private Text urlPatternTextField;   
  15.   
  16.     public FormGenCoreFacetInstallPage()   
  17.     {   
  18.         super"formgen.core.facet.install.page" );   
  19.   
  20.         setTitle( "FormGen Core" );   
  21.         setDescription( "Configure the FormGen servlet." );   
  22.     }   
  23.   
  24.     public void createControl( final Composite parent )   
  25.     {   
  26.         final Composite composite = new Composite( parent, SWT.NONE );   
  27.         composite.setLayout( new GridLayout( 1false ) );   
  28.   
  29.         final Label label = new Label( composite, SWT.NONE );   
  30.         label.setLayoutData( gdhfill() );   
  31.         label.setText( "URL Pattern:" );   
  32.   
  33.         this.urlPatternTextField = new Text( composite, SWT.BORDER );   
  34.         this.urlPatternTextField.setLayoutData( gdhfill() );   
  35.         this.urlPatternTextField.setText( this.config.getUrlPattern() );   
  36.   
  37.         setControl( composite );   
  38.     }   
  39.   
  40.     public void setConfig( final Object config )   
  41.     {   
  42.         this.config = (FormGenCoreFacetInstallConfig) config;   
  43.     }   
  44.   
  45.     public void transferStateToConfig()   
  46.     {   
  47.         this.config.setUrlPattern( this.urlPatternTextField.getText() );   
  48.     }   
  49.   
  50.     private static GridData gdhfill()   
  51.     {   
  52.         return new GridData( GridData.FILL_HORIZONTAL );   
  53.     }   
  54. }   
  55.   


 

java 代碼
 
  1. package com.formgen.eclipse;   
  2.   
  3. import org.eclipse.core.resources.IFolder;   
  4. import org.eclipse.core.resources.IProject;   
  5. import org.eclipse.core.runtime.CoreException;   
  6. import org.eclipse.core.runtime.IProgressMonitor;   
  7. import org.eclipse.core.runtime.Path;   
  8. import org.eclipse.wst.common.project.facet.core.IDelegate;   
  9. import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;   
  10.   
  11. public final class FormGenCoreFacetInstallDelegate implements IDelegate   
  12. {   
  13.     public void execute( final IProject pj,   
  14.                          final IProjectFacetVersion fv,   
  15.                          final Object config,   
  16.                          final IProgressMonitor monitor )   
  17.   
  18.         throws CoreException   
  19.   
  20.     {   
  21.         monitor.beginTask( ""2 );   
  22.   
  23.         try  
  24.         {   
  25.             final FormGenCoreFacetInstallConfig cfg   
  26.                 = (FormGenCoreFacetInstallConfig) config;   
  27.   
  28.             final IFolder webInfLib = Utils.getWebInfLibDir( pj );   
  29.   
  30.             Utils.copyFromPlugin( new Path( "libs/formgen-core.jar" ),   
  31.                                   webInfLib.getFile( "formgen-core.jar" ) );   
  32.   
  33.             monitor.worked( 1 );   
  34.   
  35.             Utils.registerFormGenServlet( pj, cfg.getUrlPattern() );   
  36.   
  37.             monitor.worked( 1 );   
  38.         }   
  39.         finally  
  40.         {   
  41.             monitor.done();   
  42.         }   
  43.     }   
  44. }   
  45.   

效果如圖

定義Preset
為了將創建某個工程所需要的facet集中在一個用一個名字代替,這就需要使用preset(或稱configuration),其擴展點格式如下:
 

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.core.facets">  
  2.   <preset id="{string}">  
  3.     <label>{string}</label>  
  4.     <description>{string}</description> (optional)   
  5.     <facet id="{string}" version="{string}"/> (1 or more)   
  6.   </preset>  
  7. </extension>  

為了讓preset能應用于指定的facet project, preset必須包含所有的fixed facet, 所謂的fixed facet指的是那些要創建的工程所必須的而不能刪除的facet.
設置如下:
 

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.core.facets">  
  2.   <preset id="formgen.preset">  
  3.     <label>FormGen Web Project</label>  
  4.     <description>Creates a web project with FormGen functionality.</description>  
  5.     <facet id="jst.java" version="5.0"/>  
  6.     <facet id="jst.web" version="2.2"/>  
  7.     <facet id="formgen.core" version="1.0"/>  
  8.     <facet id="formgen.ext" version="1.0"/>  
  9.   </preset>  
  10. </extension>  

效果如圖

指定runtime映射
在創建project的時候,有時候需要指定項目依賴的runtime,我們也可以通過擴展點來檢查當前的facet所需要的runtime是否指定.
配置格式如下:
 

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.core.runtimes">  
  2.   <supported> (0 or more)   
  3.     <runtime-component any="{boolean}"/> (optional)   
  4.     <runtime-component id="{string}"version="{version.expr}"/> (0 or more)   
  5.     <facet id="{string}"version="{version.expr}"/> (1 or more)   
  6.   </supported>  
  7. </extension>  


下面是不依賴其他組件的配置:
 

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.core.runtimes">  
  2.   <supported>  
  3.     <runtime-component any="true"/>  
  4.     <facet id="formgen.core"/>  
  5.     <facet id="formgen.ext"/>  
  6.   </supported>  
  7. </extension>  


下面是依賴tomcat的配置
 

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.core.runtimes">  
  2.   <supported>  
  3.     <runtime-component id="org.eclipse.jst.server.tomcat" version="[5.0"/>  
  4.     <facet id="formgen.core"/>  
  5.     <facet id="formgen.ext"/>  
  6.   </supported>  
  7. </extension>  

總結

通過上面的步驟, 我們創建了一個完整的project facet, 這里面包括指定約束, 實現action, 對facet分組, 創建wizard page. 更多的信息可看下面的參考附錄
附錄A 定制Version Comparetor
就是對版本進行比較的策略進行定制, 如果要使用自己的版本比較方式, 那么可以通過擴展點來處理,格式如下:
 

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.core.facets">  
  2.   <project-facet>  
  3.     <version-comparator class="{class:java.util.Comparator<String>}"/>  
  4.   </project-facet>  
  5. </extension>  


可以直接從接口從頭實現,也可以繼承org.eclipse.wst.common.project.facet.core.DefaultVersionComparator來進行定制
代碼如下:
 

java 代碼
 
  1. /**  
  2.  * Returns the string containing the separator characters that should be  
  3.  * used when breaking the version string into segments. The default  
  4.  * implementation returns ".". Subclasses can override this method.  
  5.  *   
  6.  * @return the separator characters  
  7.  */  
  8.        
  9. protected String getSeparators();   
  10.        
  11. /**  
  12.  * Parses a segment of the version string. The default implementation parses  
  13.  * the first segment as an integer (leading zeroes are ignored) and the  
  14.  * rest of the segments as decimals (leading zeroes are kept). Subclasses   
  15.  * can override this method to provide custom parsing for any number of   
  16.  * segments.  
  17.  *   
  18.  * @param version the full version string  
  19.  * @param segment the version segment  
  20.  * @param position the position of the segment in the version string  
  21.  * @return the parsed representation of the segment as a {@see Comparable}  
  22.  * @throws VersionFormatException if encountered an error while parsing  
  23.  */  
  24.        
  25. protected Comparable parse( final String version,   
  26.                             final String segment,   
  27.                             final int position )   
  28.        
  29.     throws VersionFormatException;   

附錄B Version Expression
為了一次指定多個版本,就需要使用版本表達式(version expression), 在很多地方我都用到了版本表達式, 版本表達式如果有多個,則使用逗號分隔,這里的逗號表示或的意思, 范圍通過括號加破折號來制定,如[x-z), 中括號表示包含, 小括號表示不包含
下面是一些例子:
1.2
1.2,1.5,3.2
[1.2-3.2]
[3.7-5.0)
[3.7
5.0)
1.2,[3.0-4.5),[7.3
附錄C Event Handler
project fact可以為某些事件注冊listener, 這些時間包括:
PRE_INSTALL
POST_INSTALL
PRE_UNINSTALL
POST_UNINSTALL
PRE_VERSION_CHANGE
POST_VERSION_CHANGE
RUNTIME_CHANGED
事件處理器的聲明和action的聲明非常類似,但是他們也有一些區別,主要體現在:
與action不同, 事件處理器無法由用戶直接觸發,因此無法將事件處理器與wizard page關聯,也無法為其提供封裝數據的配置對象
可以給一個事件設置多個事件處理器,但是他們的調用順序是不確定的
事件處理器的配置格式如下:
 

xml 代碼
 
  1. <extension point="org.eclipse.wst.common.project.facet.core.facets">  
  2.   <event-handler facet="{string}" version="{version.expr}" type="{event.type}">  
  3.     <delegate class="{class:org.eclipse.wst.common.project.facet.core.IDelegate}"/>  
  4.   </action>  
  5. </extension>  


與action的配置很類似,也實現了IDelegate接口, 而且event-handler也可以嵌入到project-facet-version元素內部,此時的facet和version屬性將被忽略.

PRE_* and POST_* 事件處理器用來取得配置對象,然后傳遞給IDelegate的execute方法使用, RUNTIME_CHANGED 事件處理器是用來取得IRuntimeChangedEvent實例
 

java 代碼
 
  1. package org.eclipse.wst.common.project.facet.core;   
  2.   
  3. import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;   
  4.   
  5. /**  
  6.  * Describes the runtime changed event to the RUNTIME_CHANGED event handlers.  
  7.  */  
  8.   
  9. public interface IRuntimeChangedEvent   
  10. {   
  11.     /**  
  12.      * Returns the runtime previously associated with the project.  
  13.      *   
  14.      * @return the runtime previously associated with the project, or null  
  15.      */  
  16.        
  17.     IRuntime getOldRuntime();   
  18.        
  19.     /**  
  20.      * Returns the runtime that's now associated with the project.  
  21.      *   
  22.      * @return the runtime that's now associated with the project, or null  
  23.      */  
  24.        
  25.     IRuntime getNewRuntime();   
  26. }   
  27.   

附錄D Property Tester
Property Tester是用來被org.eclipse.core.expressions 包中的擴展點測試使用的,它常用來決定某些菜單或者屬性頁選項是否可用.屬性名為org.eclipse.wst.common.project.facet.core.projectFacet,值為facet id或者facet id 加冒號再加版本表達式的組合
下面的這個例子用來控制project的屬性頁是否可用
 

xml 代碼
 
  1. <extension point="org.eclipse.ui.propertyPages">  
  2.   <page    
  3.     adaptable="true"  
  4.     objectClass="org.eclipse.core.resources.IProject"  
  5.     name="FormGen Properties"  
  6.     class="com.formgen.eclipse.FormGenPropertiesPage"  
  7.     id="org.eclipse.jst.j2ee.internal.J2EEDependenciesPage">  
  8.     <enabledWhen>  
  9.       <test    
  10.         forcePluginActivation="true"  
  11.         property="org.eclipse.wst.common.project.facet.core.projectFacet"  
  12.         value="formgen.core"/>  
  13.     </enabledWhen>             
  14.   </page>  
  15. </extension>  


附錄E Wizard Content
有時候我們可能根據其他facet所對應的wizard page的用戶輸入來調整action的行為, 而IWizardContet接口就是為該目的而設計的, wizard page的setWizardContext方法被調用的時候會取得該接口的handler, 如果你的代碼對IWziardContenxt造成依賴,可能需要注意以下事項:
1.fact需要的內容可能在執行前已經被install了, 此時在wizard context中將無法找到要install的配置,所以在需要做一些判斷
2.如果某些情況下wizard page不被調用的話,要給配置對象設置默認值
下面是IWizardContext接口的代碼:
 

java 代碼
 
  1. package org.eclipse.wst.common.project.facet.ui;   
  2.   
  3. import java.util.Set;   
  4. &nb
    安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 国产精品一区二区三区四区 | 蜜臀精品 | 国产精品1区2区 | 一区二区精品在线观看 | 99精品国产高清一区二区麻豆 | 日韩av黄色 | 久久精品一区二区三区四区 | 日韩欧美综合在线 | 精品96久久久久久中文字幕无 | 亚洲伊人久久综合 | 五月天婷婷在线视频 | 亚洲精品国产电影 | 国产一级免费在线观看 | 亚洲精品在线看 | 91久久久久久 | 中文字幕在线观看2021 | av片在线观看 | 亚洲精品久久久久久下一站 | 日韩在线免费电影 | 蜜臀久久99精品久久久无需会员 | 在线看一级片 | 日韩免费视频 | 狠狠亚洲 | 成人亚洲视频 | 久久久久一区二区三区 | 中文字幕免费在线观看 | 黑人巨大精品欧美一区二区小视频 | 毛片综合| 91精品电影 | 美女黄视频网站 | 91精品国产乱码久久久久久久久 | 国产精品99久久久久久宅男 | 四虎影院最新地址 | 午夜影院在线观看 | 亚洲高清av | 国产精品成人国产乱一区 | 久久机热| 国产成人一区二区 | 精品视频一区二区三区四区 | 日韩成人短视频 | 国产精品网站在线看 | 久久夜精 | 久久精品国产亚洲一区二区三区 | 九九久久影视 | 欧美国产一区二区 | aaaa网站| 成人在线激情 | 亚洲欧洲一区二区 | 国产精品久久久久久久久久久久冷 | 久久久久久亚洲一区二区三区蜜臀 | 日韩三区在线 | 中文字幕综合 | 国产精品美女久久久久aⅴ国产馆 | 久久久久中文字幕 | 毛片在线免费 | 91精品久久 | www.日韩精品.com | 在线精品亚洲欧美日韩国产 | 国产精品美女视频免费观看软件 | 亚洲va中文字幕 | 久久国产一 | 爱草在线| 久久久国产一区二区三区 | 欧美videosex性欧美黑吊 | 日韩一区二区视频在线 | 中文一二区 | 99re视频在线播放 | 九九热精品视频在线观看 | 国产一区二区三区免费播放 | 久久久久久午夜 | 91久久久久久久 | 精品在线一区二区 | 欧美日韩一区二区在线 | 国产欧美精品一区二区三区四区 | 国产精品1区2区 | 成人在线视频免费观看 | 亚洲一区成人在线观看 | 嫩草视频入口 | 国产精品成人国产乱一区 | 日本在线不卡视频 | 欧美国产在线观看 | 午夜欧美一区二区三区在线播放 | 久久精品国产亚卅av嘿嘿 | av黄色一级片 | 天天久久 | 亚洲综合在 | 午夜激情视频在线观看 | 影视一区二区 | 黄色毛片视频网站 | 国产精品久久久久久久久久久久久 | 国产高清毛片 | 欧美三级视频在线播放 | 免费观看毛片 | 欧美自拍视频 | 91免费在线看 | 亚洲卡一 | 一级毛片一级毛片一级毛片 | www.福利视频| 欧美老妇交乱视频 | 一区二区免费播放 | 亚洲欧美日韩在线 | 在线免费观看av片 | 久久久a| 亚洲人成网站999久久久综合 | 一区免费看 | 玖玖玖精品视频 | 欧美黄色片免费观看 | 日韩福利视频网 | 夜夜久久| 国产片久久 | 欧美一区二区三区免费观看视频 | 国产黄色精品 | 亚洲精品久久久久久下一站 | 欧美一级特黄aaaaaa大片在线观看 | 国产欧美精品一区二区三区 | 久久成人在线 | 黄色大片网站在线观看 | 成人在线观 | 亚洲第一福利视频 | 欧美在线视频一区二区 | 欧美激情一区二区三区在线观看 | 人人爱夜夜爽日日视频 | 欧美成人一区二区三区片免费 | 青青草亚洲 | 91精品国产综合久久精品 | 国产精品一区二区三区免费 | 国产精品无码永久免费888 | a在线播放| 亚洲国产午夜视频 | 综合中文字幕 | 亚洲国产精品自拍 | 欧美一区二区三区免费电影 | 中文字幕一区二区三区乱码图片 | 日本精品在线观看 | 精品96久久久久久中文字幕无 | 午夜精品久久久久久久久久久久 | 四虎影视网址 | 亚洲精品免费视频 | 一级毛片观看 | 久久久久久免费视频 | 成人久久久久久久久 | 污视频在线观看免费 | 欧美一级片在线观看 | 米奇狠狠操 | 亚洲天天| 日本一区二区不卡视频 | 成人av影片在线观看 | 一区二区在线看 | 国产一级免费视频 | 国产在线播 | 美女一级 | 国产精品影院在线观看 | 涩涩导航 | 国产亚洲成av人片在线观看桃 | 日本国产欧美 | 国产精品99久久久久久久久久久久 | 亚洲国产日韩欧美 | www.成人| 中文字幕国产区 | 欧美日韩成人激情 | 久久久久女人精品毛片九一韩国 | 久久精品国产视频 | 国产二区免费 | 艳妇荡乳豪妇荡淫 | www.一区 | 久草中文在线 | 国产精品久久久久久久久久ktv | 99re久久 | 亚洲精品日韩在线 | 久久精品国产v日韩v亚洲 | 欧美日本韩国一区二区 | 国产区在线 | www.欧美| 日本福利视频网 | 特级淫片女子高清视频在线观看 | 国产精品无码久久久久 | 日本大人吃奶视频xxxx | 国产成人毛片 | 久久精品亚洲欧美日韩精品中文字幕 | 日韩在线一区二区 | 91在线激情 | 51ⅴ精品国产91久久久久久 | 天天摸夜夜摸爽爽狠狠婷婷97 | 国产一区高清 | 精品国产乱码久久久久久1区2区 | www日本在线 | 亚州中文字幕 | 欧日韩不卡在线视频 | 国产超碰人人爽人人做人人爱 | 一级片黄片毛片 | 天天草草草 | 午夜色视频在线观看 | 欧美在线观看一区二区 | 狼人狠狠干 | 成人欧美一区二区三区在线播放 | 日韩不卡一区 | 亚洲欧美网站 | 日日干天天操 | 狠狠色狠狠色合久久伊人 | 日本不卡精品 | 国产精品一区久久久久 | 欧美日韩午夜精品 | 污色视频在线观看 | 亚洲久久 | 成人看的羞羞视频免费观看 | 香蕉久久久 | 亚洲精品乱码久久久久久按摩观 | 2021狠狠干 | 天天操网| 一区二区精品在线 | 亚洲情网站 | 亚洲福利电影网 | 日韩精品久久久久久 | 欧美国产一区二区 | 99国产精品久久久久久久 | 亚洲国产精品久久 | 天天操天天拍 | 精品少妇一区二区三区 | 69黄在线看片免费视频 | 欧美精品一区二区三区蜜桃视频 | 久久人人爽人人爽人人片av不 | 国产精品99久久久久久久vr | 久久久精品免费观看 | av性色| 91在线入口| 国产精品一区二区av | 97高清国语自产拍 | 日韩高清成人 | 亚洲国产精品福利 | 成人免费视频在线观看 | 久久综合中文字幕 | 免费看的毛片 | 国产精品无码专区在线观看 | 国产精品成人3p一区二区三区 | 亚洲蜜臀av乱码久久精品蜜桃 | 精品九九 | 超碰天堂 | 91麻豆视频 | 久久精品一 | av一区二区三区 | 日韩亚洲在线 | 成人久久久精品乱码一区二区三区 | 国久久久 | 婷婷久| 国产日韩欧美精品 | 99久久99热这里只有精品 | 欧美综合在线观看 | 黄色大片视频网站 | 国产免费av在线 | 亚洲一区中文字幕永久在线 | www.国产.com| 欧美在线观看一区 | 久久精品国产99精品国产亚洲性色 | 三a毛片 | www.av在线| 黄色一级免费观看 | 日韩在线一区二区 | 久久久999精品视频 五月天婷婷在线视频 | 久久夜夜 | 99免费在线播放99久久免费 | 狠狠操狠狠干 | 日日摸天天爽天天爽视频 | 欧美一区二区精品 | 夜夜操天天操 | 国产一区网站 | av影音资源 | 国产丝袜在线 | 国产欧美一二三区在线粉嫩 | 91社影院在线观看 | 一区二区在线视频 | h在线免费| 欧美一级做a爰片免费视频 亚洲精品一区在线观看 | 伊人久久艹| 福利91 | 一区二区三区国产 | 国产精品456在线影视 | 亚洲欧美在线视频 | 国产精品久久久久久久久久久久久 | 亚洲 自拍 另类 欧美 丝袜 | 91麻豆精品国产91久久久久久久久 | 日本不卡免费新一二三区 | 国产精品一区二区av | 一道本视频 | 黄久久久| 午夜国产羞羞视频免费网站 | 91av导航| 精品一区二区三区免费看 | 久久精品欧美电影 | 在线草| 成人免费视频 | 成人免费网站www网站高清 | 成人黄色免费 | 国产精品精品视频一区二区三区 | 日本免费一区二区三区 | 国产亚洲一区二区三区在线观看 | 久久久婷 | 精品视频一区二区 | 亚洲精品视频在线播放 | 亚洲一区精品在线 | 人人干在线| 国产欧美精品一区二区三区 | 九九综合九九 | 99视频在线 | 亚洲二区视频 | 亚洲成人精品一区 | 九九在线视频 | 搡女人真爽免费午夜网站 | 国产精品久久久久久久久久久久 | 欧美色综合| 欧美一区在线观看视频 | 日韩视频国产 | 色婷婷综合久久久中文字幕 | 国产xnxx | 成人性生交大片免费看中文带字幕 | 免费在线精品视频 | 久久日本视频 | 午夜不卡福利视频 | 日韩在线无 | 国产激情在线视频 | 日韩午夜一级片 | 国产一区二区三区视频 | 99精品国产高清一区二区麻豆 | 黄色免费高清视频 | 成人黄色片网站 | 一区二区日本 | 日本一区二区三区四区不卡视频 | 日韩成人影院 | 免费看的毛片 | 91精品国产综合久久福利软件 | www.99热 | a成人在线| 日韩视频免费在线观看 | 亚洲啊v在线 | 亚洲国产精品视频 | 欧美中文字幕一区二区 | 黄色三级视频 | 成人99| 日韩中文字幕在线 | 天天亚洲综合 | 国产91视频在线观看 | 国产精品久久久久久久久久久久 | 精品一区二区三区免费毛片 | 中文字幕一区二区三区不卡 | 久久亚洲精品中文字幕 | a视频在线观看 | 一区二区视频 | 成人在线视频免费观看 | 91午夜在线| 亚洲一区二区三区久久久 | 毛片在线免费 | 精品久久久久久久久久久久久久 | 欧洲国产伦久久久久久久 | 91精品啪啪 | av在线免费观看网址 | 久久av在线 | 亚洲福利小视频 | 精品一区二区三区免费视频 | 国产视频导航 | 欧美福利一区二区 | 亚洲精品国产9999久久久久 | 日韩在线视屏 | 欧美一区二区视频 | 999久久久 | 免费xxxxx在线观看网站软件 | 综合精品久久久 | 久久视频一区 | 性色av一区二区三区 | 一区二区三区在线播放 | v888av成人| av黄在线观看| 久久久精品日本 | 免费在线观看av | 在线观看国产www | 亚洲永久免费视频 | 黄色一级免费观看 | 亚洲高清网 | 天堂网色 | 澳门久久| 亚洲欧美日韩在线一区二区 | 操皮视频 | 国产精品久久久久免费 | 日本 国产 欧美 | julia中文字幕久久一区二区 | 三级精品| 国产精品久久久久久久午夜片 | 91精品久久久久久久99 | 91麻豆视频 | 国内自拍视频网 | 亚洲精选免费视频 | 国产一级视频 | 美女福利视频网站 | 国产成人精品一区二区三区视频 | 国产精品热| 午夜婷婷激情 | 成人中文网 | 国产美女久久 | 久久久精品一区 | 成人黄色电影小说 | 亚洲另类小视频 | 日韩成人在线看 | 一级在线看 | 色爽av | 亚洲精品毛片一区二区 | 黄色a视频 | 亚洲免费视频在线观看 | 国产亚洲一区二区三区在线观看 | 国产精品1区2区3区 欧美 中文字幕 | 亚洲协和影视 | 欧美激情在线精品一区二区三区 | 人人澡人人草 | 国产美女www爽爽爽免费视频 | 国产精品久久久久久久久免费桃花 | 日本黄色大片免费 | 久草免费在线视频 | av男人电影天堂 | 高清精品一区二区 | 密室大逃脱第六季大神版在线观看 | 精品成人在线 | 国产一级一级片 | 国产操片 | 精品九九九| 免费在线a | 一级大片免费观看 | 精品亚洲视频在线观看 | 亚洲一区二区免费看 | 精品国产髙清在线看国产毛片 | 九九国产精品视频 | 日本不卡一区二区 | 国产精品久久九九 | 国产亚洲成av人片在线观看桃 | 成人av入口 | 国产超碰人人模人人爽人人添 | 午夜窝窝| 黑人xxx视频| 欧美精品在线免费观看 | 欧美日韩综合视频 | 日韩成人在线播放 | 日韩欧美中文字幕在线视频 | 午夜在线小视频 | 精品国产乱码一区二区三 | 久久精品小视频 | 欧美一级爆毛片 | 日韩国产精品一区二区 | 在线观看免费视频黄 | 久热亚洲 | 亚洲97视频 | 国产视频二区 | 国产精品日韩欧美一区二区三区 | 亚洲成人一区 | 99re视频在线播放 | 一区二区精品视频在线观看 | 日本天天操 | 久久另类ts人妖一区二区 | 欧美视频三区 | 成人在线免费 | 成人练习生| 日韩日b视频 | 久草 在线 | 蜜桃在线视频 | 日韩视频―中文字幕 | 91国偷自产一区二区三区亲奶 | 久久一区二区视频 | 精品免费国产一区二区三区四区 | 91高清免费 | 午夜私人视频 | 日韩欧美综合 | 国产精品高潮呻吟久久av黑人 | 国产精品毛片久久久久久 | 亚洲三区在线观看 | 日韩精品成人 | 亚洲人成电影网 | 欧美一区二区三区在线视频 | 国产精品大全 | 久久久999成人 | 成人欧美一区二区三区在线播放 | 成人在线观看免费视频 | 久久国产精品免费一区二区三区 | 精品国产第一国产综合精品 | 日韩视频一区二区三区 | 久久精品国产精品青草 | 国产视频三区 | 久久9999久久 | 天天干天天操 | 国产乱码精品一区二区三区忘忧草 | 亚洲美女精品视频 | 国产成人精品在线 | 中字一区 | 国产精品美女www爽爽爽软件 | 久久久久久毛片免费观看 | 亚洲成人一区二区三区 | 超碰最新网址 | 国产成人免费视频网站高清观看视频 | 日韩国产免费观看 | 色综合久| 五月天电影网 | 五月婷婷综合激情 | 欧美视频三区 | av一区二区三区 | 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 97在线免费观看 | 亚洲国产区 | 亚洲视频在线观看 | 亚洲精品一区二区三区蜜桃久 | 直接看av的网站 | 黄片毛片| 国产精品99久久久久久动医院 | 精品亚洲国产成av人片传媒 | 亚洲精品色 | 国产精品久久久久无码av | 久久久久久免费看 | 精品综合久久久 | 麻豆av在线播放 | 久久一二区 | 99免费视频 | 成人国产免费视频 | 99伊人 | 久久综合久久综合久久 | 人人干人人干人人干 | 国产黄色在线观看 | 中文字幕国产一区 | 久久成人视屏 | 国产精品久久久久久久午夜片 | 四色成人av永久网址 | 成人免费视频网站在线观看 | 亚洲高清免费 | 色十八| 亚洲一区二区中文字幕在线观看 | 97精品国产| 精品自拍视频 | 国产中文在线播放 | 国产中文字幕在线观看 | 亚洲一道本| www.788.com色淫免费 | 爱爱网av | 欧美激情一区二区三级高清视频 | 性色av一二三杏吧传媒 | av影音 | 日韩精品中文字幕在线观看 | 国产高清精品在线 | 亚洲一区国产视频 | 精品久久久久久久久久久久 | 在线观看免费黄色片 | wwwsihu| 一区二区视频免费 | 免费看h | 国产精品视频一区二区三区不卡 | 欧美成人精品一区二区男人看 | 日韩在线电影 | 精品国产欧美一区二区三区成人 | 97伦理电影院 | 国产精品久久久久久久久福交 | 国产精品视频一区二区三区 | 精品久| 一区二区三区国产好的精 | 国产一区二区视频在线观看 | 精品在线视频一区 | 成人av视 | 国产乱码精品一区二区三区av | 亚洲第一免费视频网站 | 国产不卡一二三区 | 国语av在线 | 亚洲综合国产 | 夜夜草视频 | 另类sb东北妇女av | 日韩一区二区三区福利视频 | 黄色成人在线 | 91 在线| 一级全黄少妇性色生活片毛片 | 日韩综合一区二区 | 噜噜噜视频在线观看 | 日本亚洲欧美 | 色天天综合久久久久综合片 | 亚州中文 | 亚洲一区二区三区四区五区中文 | 欧美精品在线视频 | 亚洲视频三区 | 九热精品 | 91中文字幕网 | 97狠狠| 久久国产精品99久久久久久牛牛 | 日本三级做a全过程在线观看 | 中文亚洲欧美 | 亚洲一区二区 | 天天天天干 | 欧美日在线 | 国产色99精品9i | 国产精品一区二区无线 | 亚洲97色 | 欧美三级影院 | 欧美在线不卡 | 欧美成人免费视频 | 亚洲电影免费 | 麻豆专区一区二区三区四区五区 | 国产精品三级在线 | 91在线播 | 久久91| 天堂av一区 | 精品日韩一区二区 | 久久99久久久久 | 国产精品久久久久久久久久ktv | 久久久久亚洲一区二区三区 | 中文字幕在线视频观看 | 国产欧美一区二区三区在线看 | 在线观看国产小视频 | 久久久久在线 | 国产精品久久久久久亚洲调教 | 国产亚洲一区二区三区 | 羞羞午夜 | 色婷婷欧美| 99福利视频 | 91久久精品国产91久久 | 日韩久久精品 | 亚洲情网站 | 久久成人精品一区二区三区 | 久久国产精品视频 |