日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Java > 正文

SWT JFace Bookmark 制作

2020-01-31 16:51:08
字體:
來源:轉載
供稿:網友
代碼如下:
BookmarkOrganizer.java
復制代碼 代碼如下:

package swt_jface.demo11;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DragSource;
import org.eclipse.swt.dnd.DragSourceAdapter;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.DropTargetAdapter;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
class Bookmark {
    public String name;
    public String href;
    public String addDate;
    public String lastVisited;
    public String lastModified;
}
public class BookmarkOrganizer {

    private static String folderLinePrefix = "<DT><H3 FOLDED";
    private static String urlLinePrefix = "<DT><A HREF";
    private static Pattern folderPattern = Pattern.compile("/"(//d+)/">(.*)<");
    private static Pattern urlPattern = Pattern.compile("/"(.*)/".*/"(.*)/".*/"(.*)/".*/"(.*)/">(.*)<");
    private static String KEY_ADD_DATE = "ADD_DATE";
    //private static String KEY_HREF = "HREF";
    //private static String KEY_LAST_VISITED = "LAST_VISITED";
    //private static String KEY_LAST_MODIFIED = "LAST_MODIFIED";
    Display display = new Display();
    Shell shell = new Shell(display);
    Tree tree;
    Label label;
    TreeItem rootItem;
    Image iconRoot = new Image(display, "C:/icons/icon.gif");
    Image iconFolder = new Image(display, "C:/icons/folder.gif");
    Image iconURL = new Image(display, "C:/icons/file.gif");
    TreeItem dragSourceItem;
    public BookmarkOrganizer() {

        shell.setText("Bookmark organizer");
        shell.setLayout(new GridLayout(1, true));
        ToolBar toolBar = new ToolBar(shell, SWT.FLAT);
        ToolItem itemOpen = new ToolItem(toolBar, SWT.PUSH);
        itemOpen.setText("Load");
        itemOpen.addListener(SWT.Selection, new Listener() {
            public void handleEvent(Event event) {
                FileDialog dialog = new FileDialog(shell, SWT.OPEN);
                String file = dialog.open();
                if (file != null) {
                    TreeItem[] items = rootItem.getItems();
                    for (int i = 0; i < items.length; i++)
                        items[i].dispose();
                    loadBookmark(new File(file), rootItem);
                    setStatus("Bookmarks loaded successfully");
                }
            }
        });
        ToolItem itemSave = new ToolItem(toolBar, SWT.PUSH);
        itemSave.setText("Save as");
        itemSave.addListener(SWT.Selection, new Listener() {
            public void handleEvent(Event event) {
                FileDialog dialog = new FileDialog(shell, SWT.SAVE);
                String file = dialog.open();
                if (file != null) {
                    try {
                        BufferedWriter writer =
                            new BufferedWriter(new FileWriter(file));
                        saveBookmark(writer, rootItem);
                        writer.close();
                        setStatus(
                            "Bookmarks saved successfully to file: " + file);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        tree = new Tree(shell, SWT.BORDER);
        tree.setLayoutData(new GridData(GridData.FILL_BOTH));
        rootItem = new TreeItem(tree, SWT.NULL);
        rootItem.setText("BOOKMARKS");
        rootItem.setImage(iconRoot);
        label = new Label(shell, SWT.BORDER);
        label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        final DragSource dragSource =
            new DragSource(tree, DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK);
        dragSource.setTransfer(
            new Transfer[] { BookmarkTransfer.getInstance()});
        dragSource.addDragListener(new DragSourceAdapter() {
            public void dragStart(DragSourceEvent event) {
                TreeItem[] selection = tree.getSelection();
                if (selection.length > 0 && selection[0].getData() != null) {
                    event.doit = true;
                    dragSourceItem = selection[0];
                } else {
                    event.doit = false;
                }
            };
            public void dragSetData(DragSourceEvent event) {
                if (BookmarkTransfer
                    .getInstance()
                    .isSupportedType(event.dataType))
                    event.data = dragSourceItem.getData();
            }
            public void dragFinished(DragSourceEvent event) {
                if (event.detail == DND.DROP_MOVE)
                    dragSourceItem.dispose();
                dragSourceItem = null;
            }
        });
        final DropTarget dropTarget =
            new DropTarget(tree, DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK);
        dropTarget.setTransfer(
            new Transfer[] { BookmarkTransfer.getInstance()});
        dropTarget.addDropListener(new DropTargetAdapter() {
            public void dragOver(DropTargetEvent event) {
                event.feedback =
                    DND.FEEDBACK_EXPAND
                        | DND.FEEDBACK_SCROLL
                        | DND.FEEDBACK_SELECT;
            }
            public void dropAccept(DropTargetEvent event) {
                if (event.item == null
                    || ((TreeItem) event.item).getData() != null)
                    event.detail = DND.DROP_NONE;
            }
            public void drop(DropTargetEvent event) {
                try {
                    if (event.data == null) {
                        event.detail = DND.DROP_NONE;
                        return;
                    }
                    TreeItem item = new TreeItem((TreeItem) event.item, SWT.NULL);
                    Bookmark bookmark = (Bookmark) event.data;
                    item.setText(bookmark.name);
                    item.setImage(iconURL);
                    item.setData(bookmark);
                } catch (RuntimeException e) {
                    e.printStackTrace();
                }
            }
        });
        tree.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                TreeItem item = (TreeItem) e.item;
                Bookmark bookmark = (Bookmark) item.getData();
                if (bookmark != null) {
                    setStatus(bookmark.href);
                } else if (item.getData(KEY_ADD_DATE) != null) {
                    setStatus("Folder: " + item.getText());
                }
            }
        });
        shell.setSize(400, 300);
        shell.open();
        loadBookmark(new File("C:/icons/mybookmark.htm"), rootItem);
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        display.dispose();
    }
    private void saveBookmark(BufferedWriter writer, TreeItem item)
        throws IOException {
        if (item.getData() == null
            && item.getData(KEY_ADD_DATE) == null) {
            writer.write(
                "<!DOCTYPE NETSCAPE-Bookmark-file-1>/n"
                    + "<!-- This is an automatically generated file./n"
                    + "It will be read and overwritten./n"
                    + "Do Not Edit! -->/n"
                    + "<TITLE>Bookmarks</TITLE>/n"
                    + "<H1>Bookmarks</H1>/n"
                    + "<DL><p>/n");
            TreeItem[] items = item.getItems();
            for (int i = 0; i < items.length; i++)
                saveBookmark(writer, items[i]);
            writer.write("</DL><p>/n");
        } else if (item.getData() == null) {
            writer.write(
                "/t<DT><H3 FOLDED ADD_DATE=/""
                    + item.getData(KEY_ADD_DATE)
                    + "/">"
                    + item.getText()
                    + "</H3>/n");
            writer.write("/t<DL><p>/n");
            TreeItem[] items = item.getItems();
            for (int i = 0; i < items.length; i++)
                saveBookmark(writer, items[i]);
            writer.write("/t</DL><p>/n");
        } else {
            Bookmark bookmark = (Bookmark) item.getData();
            writer.write(
                "/t/t<DT><A HREF="/" HREF="/"""
                    + bookmark.href
                    + "/" ADD_DATE=/""
                    + bookmark.addDate
                    + "/" LAST_VISIT=/""
                    + bookmark.lastVisited
                    + "/" LAST_MODIFIED=/" +"
                    + bookmark.lastModified
                    + "/">"
                    + bookmark.name
                    + "</A>/n");
        }
    }
    private void loadBookmark(File file, TreeItem rootItem) {
        TreeItem parent = rootItem;
        try {
            BufferedReader reader = new BufferedReader(new FileReader(file));
            String line = null;
            while ((line = reader.readLine()) != null) {
                line = line.trim();
                if (line.startsWith(folderLinePrefix)) {
                    Matcher matcher = folderPattern.matcher(line);
                    if (matcher.find()) {
                        String addDate = matcher.group(1);
                        String name = matcher.group(2);
                        TreeItem item = new TreeItem(parent, SWT.NULL);
                        item.setText(name);
                        item.setData(KEY_ADD_DATE, addDate);
                        item.setImage(iconFolder);
                        parent = item;
                    }
                } else if (line.startsWith(urlLinePrefix)) {
                    Matcher matcher = urlPattern.matcher(line);
                    if (matcher.find()) {
                        Bookmark bookmark = new Bookmark();
                        bookmark.href = matcher.group(1);
                        bookmark.addDate = matcher.group(2);
                        bookmark.lastVisited = matcher.group(3);
                        bookmark.lastModified = matcher.group(4);
                        bookmark.name = matcher.group(5);
                        TreeItem item = new TreeItem(parent, SWT.NULL);
                        item.setText(bookmark.name);
                        item.setData(bookmark);
                        item.setImage(iconURL);
                    }
                } else if (line.equals("</DL><p>")) { // folder boundry.
                    parent = parent.getParentItem();
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    private void setStatus(String message) {
        label.setText(message);
    }
    public static void main(String[] args) {
        new BookmarkOrganizer();
    }
}

BookmarkTransfer.java
復制代碼 代碼如下:

package swt_jface.demo11;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import org.eclipse.swt.dnd.ByteArrayTransfer;
import org.eclipse.swt.dnd.TransferData;
public class BookmarkTransfer extends ByteArrayTransfer {
    private static final String BOOKMARK_TRANSFER_NAME = "BOOKMARK";
    private static final int BOOKMARK_TRANSFER_ID =
        registerType(BOOKMARK_TRANSFER_NAME);
    private static final BookmarkTransfer instance = new BookmarkTransfer();
    public static BookmarkTransfer getInstance() {
        return instance;
    }
    protected int[] getTypeIds() {
        return new int[] { BOOKMARK_TRANSFER_ID };
    }
    protected String[] getTypeNames() {
        return new String[] { BOOKMARK_TRANSFER_NAME };
    }
    protected void javaToNative(Object object, TransferData transferData) {
        if (object == null || !(object instanceof Bookmark)) return;
        Bookmark bookmark = (Bookmark) object;
        if (isSupportedType(transferData)) {
            try {
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                DataOutputStream out = new DataOutputStream(stream);
                out.writeUTF(bookmark.name);
                out.writeUTF(bookmark.href);
                out.writeUTF(bookmark.addDate);
                out.writeUTF(bookmark.lastVisited);
                out.writeUTF(bookmark.lastModified);
                out.close();
                super.javaToNative(stream.toByteArray(), transferData);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    protected Object nativeToJava(TransferData transferData) {
        if (isSupportedType(transferData)) {
            byte[] raw = (byte[]) super.nativeToJava(transferData);
            if (raw == null) return null;
            Bookmark bookmark = new Bookmark();
            try {
                ByteArrayInputStream stream = new ByteArrayInputStream(raw);
                DataInputStream in = new DataInputStream(stream);
                bookmark.name = in.readUTF();
                bookmark.href = in.readUTF();
                bookmark.addDate = in.readUTF();
                bookmark.lastVisited = in.readUTF();
                bookmark.lastModified = in.readUTF();
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
            return bookmark;
        } else {
            return null;
        }
    }
}

mybookmark.htm
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产在线一在线二| 日韩欧美国产一二三区| 国内精品99| 国产伦精品免费视频| 日韩精品第一区| 午夜国产欧美理论在线播放| 婷婷精品视频| 亚洲一区视频在线观看视频| 91精品久久久久久久91蜜桃| 婷婷中文字幕一区三区| 亚洲va中文字幕| 日韩精品视频在线观看视频| 精品激情国产视频| 在线中文免费视频| 精品1区2区3区| 欧美日韩国产不卡在线看| 久99久视频| 欧美一级手机免费观看片| 日韩精品首页| 国产一卡2卡3卡四卡网站| 欧美日韩亚洲一区| 日韩亚洲欧美中文三级| 最近免费中文字幕在线第一页| xxxcom在线观看| 精品欧美日韩精品| 免费在线视频一区二区| 久精品在线观看| 不卡视频一区二区| 区日韩二区欧美三区| 中文天堂在线一区| 亚洲一区二区三区精品中文字幕| 国产亚洲欧美色| 欧洲精品二区| 91精品在线观| 国产视频一区三区| 国产高清不卡av| 99久久婷婷| 精品人妻一区二区三区视频| 日韩欧美国产1| 国产日产一区二区三区 | 中文字幕亚洲乱码| 亚洲精品欧美二区三区中文字幕| 亚洲女人天堂a在线播放| 欧美日韩综合在线免费观看| 精品中文在线| 国产精品视频福利一区二区| 刘玥91精选国产在线观看| 一区精品在线播放| 日韩精品在线看| 精品av中文字幕在线毛片| 二区视频在线观看| 久久精品久久久久| 国产 欧美 日韩 在线| 欧美日韩视频在线| 午夜av一区二区| 国产福利一区二区| 亚洲欧美韩国综合色| 日韩欧美国产1| 免费在线亚洲| 久久久99免费| 国产亚洲一区字幕| 久久视频在线免费观看| 国产日韩精品视频| 精品999在线| 国产在线导航| 亚洲开心激情| 欧美成人vr18sexvr| 国产一区日韩| 亚洲v中文字幕| 91精品视频播放| 91久久精品国产91性色69| 国产三级在线| 精品国产免费视频| 91精品国产乱码久久蜜臀| 国产欧美日产一区| 中文字幕在线观看国产| 国产激情在线观看| 久久精品99国产国产精| 欧美日韩国产综合视频在线观看中文 | 亚洲高清不卡一区| 免费高清视频日韩| 一区二区三区精品99久久| 日韩在线视频观看| 亚洲欧美久久久| 国产日韩av高清| 日韩精品视频免费| 日韩在线 中文字幕| 精品日韩av一区二区| 久久99久久久久久久噜噜| 国产在线观看色| 91精品国产色综合久久不卡蜜臀 | 美女尤物久久精品| 91精品国产99| 国产亚洲人成a一在线v站| 精品久久久三级| 日韩不卡一二三区| 日韩精品 欧美| 中文av字幕一区| 最新中文字幕在线| 国产主播中文字幕| 国产欧美日韩三级| 欧美亚洲国产日韩| 99视频一区| 日韩欧美三级| 国产视频一区三区| 99视频精品全国免费| 成人ww免费完整版在线观看| 国产欧美综合视频| 欧美日韩成人一区二区| 国产网站欧美日韩免费精品在线观看 | 一区二区三区高清在线| 精品调教chinesegay| 91精品国产自产在线观看永久∴| av中文天堂在线| 亚洲高清在线免费| 中文在线一区| 日韩视频在线一区二区| 久久久精品网| 精品久久久久久无| 国产亚洲污的网站| 日韩精品资源二区在线| 中文字幕亚洲第一| 亚洲一区精品电影| 久久香蕉av| 日韩精品三级| 国产婷婷一区二区| 日韩一级二级三级精品视频| 日韩中文字幕在线视频播放| 91精品视频在线| 一区二区三区在线播放视频| 99国产成 人 综合 亚洲欧美| 欧美在线观看视频一区| 激情婷婷亚洲| 91精品国产91久久久久青草| 国产乱国产乱老熟300部视频| 日韩三级视频在线| 亚洲小说春色综合另类电影| 久久久99久久精品欧美| 亚洲高清精品视频| 日韩精品在线网站| 久久久精品99| 伊人伊成久久人综合网小说| 日韩wumaV| 中文精品电影| 欧美日韩中文字幕视频| 精品视频久久| 国产黄色网页| 91精品在线国产| 亚洲欧美视频一区二区三区 | 日韩国产高清一区| 欧美不卡视频一区| wwwww亚洲| 欧美区高清在线| 一区二区三区精品在线| 福利在线国产| 在线不卡日本| 国产成人精品三级| 日韩在线视频精品| 午夜国产在线| 99在线精品视频免费观看20| 香蕉精品久久| 国产三级视频在线| a在线观看免费视频| 欧美日韩亚洲系列| 国产福利精品导航| 日韩精品在线免费播放| 欧美日韩激情在线一区二区三区| 中文字幕精品一区二| 日本不卡高清视频一区| 欧美日韩国产大片| 一级特黄大欧美久久久| 麻豆精品99| 日韩色在线观看| 欧美片网站免费| 日韩精品视频中文字幕| 日韩在线高清| 中文字幕亚洲二区 | 高清在线一区| 国产欧美综合在线| 欧美日韩国产一中文字不卡| 欧美日韩视频免费播放| 日本亚洲欧美三级| 中文字幕在线观看视频www| 欧美日韩在线观看成人| 国产123在线| 国产欧美 在线欧美| 中文字幕线观看| 欧美国产小视频| 日韩精品福利视频| 亚洲理论中文字幕| 在线国产1区| 日韩精品视频在线观看网址| 91精品国产综合久久久久久| 欧美日韩国产高清视频| 国产在线小视频| 日韩欧美亚洲国产一区| 日韩免费精品视频| 日韩中文字幕91| 亚洲成在线观看| 国产一级视频| 欧美二区在线观看| 亚洲黄页一区| 国产91久久久久蜜臀青青天草二 | 欧美日韩国产一级片| 欧美日韩在线观看成人| 91精品国产自产观看在线| 亚洲欧洲精品在线| 在线日韩精品视频| 日本免费看黄| 久久婷婷综合国产| 欧美日韩中文字幕日韩欧美| 国产成人精品综合网站| 欧美一级在线观看| 日韩精品三级| 日韩中文字幕在线观看视频| 天天综合日日夜夜精品| 蜜桃视频中文字幕| 日韩中文字幕精品视频| 中文字幕欧美国内| 国产香蕉免费精品视频| 中文字幕 欧美日韩| 欧美日韩综合视频| 国产亚洲人成a一在线v站| 91精品国产综合久久久蜜臀粉嫩| 日韩国产专区| 一级一片免费视频| 午夜成人鲁丝片午夜精品| 精品日韩视频在线观看| 天天综合天天| 色国产在线视频| 午夜黄色小视频| 国产福利久久久| 日本亚洲欧美三级| 日韩一级在线免费观看| 日韩在线视频在线观看| 91精品久久久久久久久| 不卡视频一区二区| 国产欧美日韩中文字幕| 欧美三级日本三级少妇99| 日韩欧美综合在线视频| 日韩精品中文在线观看| 欧美日韩中文另类| 青青久在线视频免费观看| 丰满少妇一区二区| 最近中文av字幕在线中文| 国产黄色小视频| 亚洲视频电影在线| 日韩精品一二三四区| 91精品在线观| 中文字幕在线中文字幕二区| 欧美变态tickling挠脚心| 91精品久久久久久久久| 视频一区二区精品的福利| 欧美日韩亚洲综合在线| 中文字幕精品www乱入免费视频| 欧美日韩国产页| 先锋男人资源站| 亚洲福利在线观看| 日韩精品欧美在线| 玖玖在线免费视频| 日韩精品综合在线| 欧美日中文字幕| 日韩中文字幕在线视频播放| a天堂中文在线官网在线| 亚洲va中文字幕| 在线观看免费国产小视频| 久久精品国产成人一区二区三区| www..com日韩| 日韩欧美国产综合| 中文字幕在线视频第一页| 国产一区不卡在线| 中文字幕国产视频| 日韩精品综合在线| 亚洲福利在线观看| 日韩激情一区| 国产黄在线观看| 精品欧美日韩| 欧美日韩国产综合视频在线观看中文| 一区二区三区在线|网站| 91精品国产91久久| 国产日韩成人精品| 中文字幕视频在线免费欧美日韩综合在线看| 久久久综合av| 欧美一级日韩一级| 欧美激情一区二区三区在线| 日本va欧美va精品发布| 中文字幕精品一区二| 国产一区精品在线| 在线国产99| 91久久精品在线| 日本视频久久久| 亚洲高清在线观看一区| 亚洲一区不卡在线| 欧美国产综合在线V| 51精品免费网站| 在线观看精品国产| 人成在线免费视频| 在线观看国产福利视频| 日韩中文首页| 日韩精品在线播放| 久久久精品日韩欧美| 久久久久久久久99精品| 欧美日韩中文精品| 日韩一级二级三级精品视频| 国产成人综合精品| 午夜福利一区二区三区| 国产在线一在线二| 91精品国产经典在线观看| 欧美日韩亚洲视频| 中文字幕 欧美 日韩| 欧美日中文字幕| 中文字幕欧美日韩| 国产福利久久久| 亚洲校园欧美国产另类| 日韩三级精品电影久久久| 中文字幕在线看视频国产欧美| 午夜一区二区三区视频| 中文字幕一区二区三区精品| 中文官网资源新版中文第二页在线观看 | 91久久在线| 日韩中文字幕视频在线观看| 欧美sm一区| 91精品国产欧美日韩| 999精品色在线播放| 91精品国产自产| 色综合久久六月婷婷中文字幕| 国产在线视频不卡| 中文字幕久久精品| 国产xxx在线| 国产高清精品在线观看| 精品午夜av| av免费在线观看网址| 日韩中文字幕精品视频| 日韩欧美中文免费| 日韩精品视频网站| 一级片免费在线| 日韩欧美成人一区二区三区| 日韩精品高清不卡| aaa免费看大片| 国产不卡在线观看视频| 欧美三级日本三级少妇99| 中文字幕在线精品| 日本国产一区| 亚洲精华国产欧美| 1区不卡电影| 婷婷精品视频| 视频一区二区精品的福利| 中文字幕亚洲乱码| 日本中文字幕在线观看| 欧美成人精品在线| 日韩在线高清视频| 日韩欧美不卡在线| 国产不卡的av| 中文字幕在线导航| 一区二区三区在线|网站| 日韩欧美三级视频| 国产午夜在线观看| 日韩久久精品视频| 日韩不卡在线播放| 在线中文字幕网站| 亚洲图片小说综合| 国产黄色片中文字幕| 中文不卡在线| 亚洲成av人片| 午夜一区二区三区免费| 亚洲一区二区三区精品中文字幕| 一级日本免费的| 九一久久久久久| 国产婷婷色一区二区三区| 91精品综合久久| 国产91久久久久| 国产亚洲视频中文字幕视频| 亚洲伊人婷婷| 欧美日韩亚洲国内综合网| 日韩视频一区二区在线观看| 欧美日韩精品在线视频| 国产日韩中文在线| 尤物在线精品| www.狠狠干| 亚洲福利在线视频| 亚洲高清精品视频| 成人精品视频一区| av免费在线观看网址| 一区二区三区精品在线观看| 欧美婷婷精品激情| 久久99精品国产| 国产区在线看| 欧美日韩高清在线| 日韩不卡一二三区| 国产小视频免费在线观看| 欧美日韩精品欧美日韩精品一| 日韩精品在线免费看| 一区二区在线观看不卡| 亚洲一区资源| 日韩欧美中文在线视频| 色猫猫国产区一区二在线视频| 1区不卡电影| 国产小视频免费在线网址| 婷婷中文字幕综合| 日韩精品在线观看视频|