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

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

?? tracetable.java

?? AStar算法
?? JAVA
字號:
/******************************************************************************* * Copyright ? 2008 Sandro Badame. All Rights Reserved. *  * This software and the accompanying materials is available under the  * Eclipse Public License 1.0 (EPL), which accompanies this distribution, and is * available at http://visualjpf.sourceforge.net/epl-v10.html ******************************************************************************/package com.javapathfinder.vjp.verify.view;import gov.nasa.jpf.jvm.Transition;import java.util.ArrayList;import org.eclipse.jface.resource.ImageDescriptor;import org.eclipse.jface.resource.ImageRegistry;import org.eclipse.jface.viewers.ILabelProviderListener;import org.eclipse.jface.viewers.ITableLabelProvider;import org.eclipse.jface.viewers.StructuredSelection;import org.eclipse.jface.viewers.TableViewer;import org.eclipse.jface.viewers.Viewer;import org.eclipse.swt.SWT;import org.eclipse.swt.graphics.Image;import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.TableColumn;import com.javapathfinder.vjp.VJP;/** * The table used to display information about the thread trace generated by  * JPF during verification. * @author Sandro Badame * */public class TraceTable extends TableViewer {  /*   * For our imaging needs   */  private static ImageRegistry imageRegistry = new ImageRegistry();  private static final String THREAD_IMAGE = "images/threadimage.gif";    static{    imageRegistry.put(THREAD_IMAGE,                       ImageDescriptor.createFromURL(VJP.getResourceURL(THREAD_IMAGE)));  }    /**   * @return the image that represents a transition being executed in a    *         particular thread.   */  public static Image getThreadImage(){    return imageRegistry.get(THREAD_IMAGE);  }    private ArrayList<TransitionInfo> transitions =  new ArrayList<TransitionInfo>();  private TransitionInfo currentTransition = null;  private int threadCount = 1;     /**   * @param parent   * @param style   */  public TraceTable(Composite parent, int style) {       super(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);    setContentProvider(new ArrayContentProvider());    setLabelProvider(new LabelProvider());    reset();  }    private void createColumns() {    getTable().setHeaderVisible(true);    int style = SWT.CENTER;        TableColumn typeColumn = new TableColumn(getTable(), style);    typeColumn.setText("Type");    typeColumn.pack();    typeColumn.setWidth(200);        TableColumn choiceColumn = new TableColumn(getTable(), style);    choiceColumn.setText("Choice");    choiceColumn.pack();    choiceColumn.setWidth(300);        TableColumn attributeColumn = new TableColumn(getTable(), style);    attributeColumn.setText("Attributes");    attributeColumn.pack();    attributeColumn.setWidth(300);  }    /**   * Called when a new set of choices has been created   * @param cgType the type of choices   * @param totalChoices the total number of choices to be explored   */  public void newChoiceSet(String cgType, int totalChoices){    currentTransition = new TransitionInfo();    cgType = cgType.substring(cgType.lastIndexOf('.')+1);    currentTransition.cgType = cgType;    currentTransition.totalChoices = totalChoices;    transitions.add(currentTransition);  }    /**   * Called when a choice is being advanced   * @param choice which choice was advanced   */  public void choiceAdvanced(int choice){    currentTransition.processedChoices = choice;  }    /**   * Called when the state has advanced    * @param t the transition is advancing   * @param stateId the id of the state   * @param isEndState whether this is an end state   * @param isVisitedState whether this is a visited state   */  //TODO There HAS to be a cleaner way.  public void stateAdvanced(Transition t, int stateId, boolean isEndState, boolean isVisitedState){    currentTransition.transition = t;    currentTransition.stateId = stateId;    currentTransition.endState = isEndState;    currentTransition.visited = isVisitedState;    safeRefresh();    safeSelectLast();  }    /**   * Backtrack from the current state   */  public void stateBacktrack(){    transitions.remove(currentTransition);    safeRefresh();    safeSelectLast();  }    /**   * Safely refresh the trace table.   *   */  public void safeRefresh(){    Display.getDefault().syncExec(new Runnable(){      public void run(){        refresh();      }    });  }    private class LabelProvider implements ITableLabelProvider {        public String getColumnText(Object element, int columnIndex) {      TransitionInfo t = (TransitionInfo) element;        while(t.getThreadIndex() >0 && t.getThreadIndex() >= threadCount)          addThreadColumn();      if (columnIndex == getTypeColumnIndex())        return t.cgType;      if (columnIndex == getChoiceColumnIndex())        return t.processedChoices + "/" + t.totalChoices;      if (columnIndex == getAttributeColumnIndex()){        StringBuilder s = new StringBuilder("ID: ").append(t.stateId);        if (!t.visited || t.endState){          s.append(" [");          if (!t.visited)            s.append("NEW");          if (t.endState){            if (!t.visited) s.append(',');            s.append("END");          }          s.append(']');        }        return s.toString();      }      return null;    }        public Image getColumnImage(Object element, int columnIndex) {      if (!showThreadColumns() || ((TransitionInfo) element).getThreadIndex() != columnIndex)         return null;      return getThreadImage();    }            public boolean isLabelProperty(Object element, String property) {return true;}    public void addListener(ILabelProviderListener listener) {}    public void dispose() {}    public void removeListener(ILabelProviderListener listener) {}  }    private boolean showThreadColumns(){    return threadCount>1;  }    private void addThreadColumn(){    TableColumn c = new TableColumn(getTable(), SWT.NULL, threadCount);    c.setText(String.valueOf(threadCount));    c.setToolTipText("Thread: "+threadCount);    c.setWidth(100);    c.pack();    addColumnProperty();    threadCount++;    refresh();  }     private void addColumnProperty(){    String[] p = (String[]) getColumnProperties();    int i = -1;    while(!p[++i].equals("T"));    String[] n = new String[p.length+1];    System.arraycopy(p, 0, n, 0, i);    n[i] = String.valueOf(i);    n[i+1] = "T";    n[i+2] = "C";  }    public int getTypeColumnIndex(){    return threadCount;  }    public int getChoiceColumnIndex(){    return getTypeColumnIndex()+1;  }    public int getAttributeColumnIndex(){    return getChoiceColumnIndex()+1;  }    public void clearAll() {    transitions.clear();    safeReset();  }    private void safeReset(){    Display.getDefault().syncExec(new Runnable(){      public void run() {        reset();      }          });  }    /**   * Clear this table of all threads and transition information.   *   */  public void reset(){    threadCount = 0;    setColumnProperties(new String[]{"T", "C"});    if (getTable().isDisposed())      return;    for(TableColumn c : getTable().getColumns())      c.dispose();    createColumns();    setInput(transitions);   }    /**   * Refresh this table   */  public void refresh(){    repackColumns();    super.refresh();  }    /**   * repack all of the columns in this table   *   */  public void repackColumns(){    for(TableColumn c : getTable().getColumns())      c.pack();  }    /**   * A thread safe way to select the last transition   */  public void safeSelectLast(){    Display.getDefault().asyncExec(new Runnable(){      public void run(){        selectLast();      }    });  }    /**   * Sets the selection to be last transition, then makes the transition   * visible   */  public void selectLast(){    setSelection(new StructuredSelection(currentTransition), true);  }    class ArrayContentProvider extends  org.eclipse.jface.viewers.ArrayContentProvider{    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {      repackColumns();        }  }  /**   *    * @return information about the currently verified transition   */  public TransitionInfo getCurrentTransitionInfo() {    return currentTransition;  }    class TransitionInfo {    public Transition transition;    public String cgType;        int totalChoices;    int processedChoices;        boolean visited;    boolean endState;    int stateId;        public int getTransitionNumber(){      return transitions.indexOf(this);    }        public int getThreadIndex(){      return transition.getThreadIndex();    }  }  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美经典一区二区| 国产精品小仙女| 日韩女优av电影在线观看| 国产成人免费视频网站高清观看视频 | 亚洲精品久久久久久国产精华液 | 久久久精品综合| 成人欧美一区二区三区黑人麻豆| 欧美日韩亚洲综合一区 | 美女www一区二区| 久久久av毛片精品| 91精品国产一区二区三区香蕉| 国产69精品久久久久毛片 | 国产老女人精品毛片久久| 91国产成人在线| 国产宾馆实践打屁股91| 亚洲精品自拍动漫在线| 国产精品视频第一区| 日韩视频永久免费| 欧美日韩精品一区二区| 91蝌蚪porny九色| 国产jizzjizz一区二区| 精品一区二区影视| 日本成人在线一区| 一本大道av一区二区在线播放 | 欧美视频第二页| 亚洲国产精品嫩草影院| 一区二区三区色| 亚洲另类在线制服丝袜| 国产精品福利影院| 久久久久久久久久久久久久久99| 欧美不卡一区二区三区四区| 欧美精品xxxxbbbb| 亚洲人成亚洲人成在线观看图片| 日韩一区二区三区免费看| 欧美日韩成人综合在线一区二区 | 久久99国产精品麻豆| 国产精品网站在线| 欧美国产激情二区三区| 国产精品拍天天在线| 国产精品久久久久久久久免费丝袜 | 国产成人av一区| 国产精品中文字幕一区二区三区| 国产一区二区三区在线观看免费视频 | 丝袜美腿亚洲一区| 亚州成人在线电影| 免费欧美高清视频| 日本伊人精品一区二区三区观看方式| 亚洲成人激情社区| 美日韩一区二区三区| 激情欧美一区二区| 国产精品456露脸| 91蜜桃视频在线| 一区二区三区四区在线| 五月天丁香久久| 丁香一区二区三区| 91免费观看在线| 在线91免费看| 欧美一区二区美女| 国产视频一区二区在线观看| 中文字幕欧美激情| 在线电影欧美成精品| 日韩视频一区二区在线观看| 国产亚洲欧洲一区高清在线观看| 久久蜜臀精品av| 亚洲免费大片在线观看| 强制捆绑调教一区二区| 一区二区三国产精华液| 久久电影网站中文字幕| 国产精品一区二区久久精品爱涩| 99久久久精品免费观看国产蜜| 一本色道久久加勒比精品| 日韩欧美在线123| 亚洲天堂中文字幕| 日本人妖一区二区| 91一区二区在线| 欧美电视剧免费全集观看| 亚洲欧美日韩国产另类专区| 麻豆成人综合网| 一本色道a无线码一区v| 欧美色综合影院| 国产精品欧美一区二区三区| 日韩黄色免费电影| www.亚洲国产| 日韩精品一区二区三区老鸭窝| 一区二区三区日韩精品视频| 丝袜国产日韩另类美女| 色综合久久六月婷婷中文字幕| 国产91丝袜在线观看| 亚洲成人免费视| 欧美videofree性高清杂交| 亚洲欧美另类图片小说| 972aa.com艺术欧美| 亚洲第四色夜色| 欧美一区二区视频观看视频| 久久国内精品视频| 亚洲永久精品国产| 成人一级片在线观看| 久久成人综合网| 亚洲成人自拍偷拍| 亚洲精品日日夜夜| 久久久久国色av免费看影院| 欧美一区永久视频免费观看| 欧美视频在线播放| 91麻豆蜜桃一区二区三区| 国产成人午夜99999| 国产综合色视频| 精品影院一区二区久久久| 午夜a成v人精品| 亚洲一区二区三区中文字幕在线| 色婷婷亚洲综合| 色94色欧美sute亚洲线路二| 国产精品 日产精品 欧美精品| 免费人成黄页网站在线一区二区| 丝袜诱惑亚洲看片| 调教+趴+乳夹+国产+精品| 日韩在线a电影| 日本成人超碰在线观看| 日韩精品国产欧美| 日精品一区二区三区| 午夜精品在线看| 日本亚洲免费观看| 久久精品国产亚洲5555| 国内成人免费视频| 国产成人在线影院| 北条麻妃一区二区三区| 99v久久综合狠狠综合久久| 97久久人人超碰| 色婷婷精品久久二区二区蜜臂av | 欧美性色aⅴ视频一区日韩精品| 99国产精品久| 欧洲视频一区二区| 欧美老肥妇做.爰bbww| 欧美r级电影在线观看| 精品国产精品网麻豆系列| 中文欧美字幕免费| 亚洲国产一区二区三区 | 国产一区二区在线看| 大尺度一区二区| 色诱视频网站一区| 91精品国产欧美一区二区18| 精品国产免费一区二区三区四区 | 国产成人综合精品三级| 色婷婷激情一区二区三区| 欧美精品在线视频| 精品国产一区二区亚洲人成毛片| 国产精品入口麻豆原神| 亚洲大尺度视频在线观看| 国产裸体歌舞团一区二区| 色婷婷综合久色| 日韩精品一区二区三区在线播放 | 欧美色图第一页| 久久理论电影网| 欧美一区二区三区啪啪| 久久在线观看免费| 亚洲欧洲精品一区二区精品久久久| 午夜视频一区在线观看| 国产九色精品成人porny| 91国偷自产一区二区开放时间 | 欧美嫩在线观看| 久久伊人蜜桃av一区二区| 亚洲一区二区三区美女| 激情深爱一区二区| 欧美色图免费看| 国产精品午夜免费| 日韩成人一区二区| 91一区二区三区在线播放| 欧美精品一区二区三区在线| 一区二区三区在线视频播放| 极品少妇xxxx精品少妇偷拍| 91极品视觉盛宴| 国产精品久久夜| 国产一区二区伦理片| 欧美高清视频不卡网| |精品福利一区二区三区| 精品在线播放午夜| 欧美嫩在线观看| 亚洲国产综合色| 成人18视频日本| 久久久精品欧美丰满| 麻豆91免费看| 3d成人h动漫网站入口| 亚洲欧美日韩国产手机在线| 国产精品456| 欧美成人精品福利| 视频一区欧美精品| 欧美在线小视频| 亚洲美女免费视频| 91色乱码一区二区三区| 国产精品美女久久久久久2018| 美日韩一区二区三区| 88在线观看91蜜桃国自产| 亚洲已满18点击进入久久| 91在线视频免费观看| 国产精品国产a| 不卡高清视频专区| 亚洲图片激情小说| 91在线精品一区二区三区| 亚洲欧洲无码一区二区三区| 成人黄动漫网站免费app| 欧美国产日韩在线观看|