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

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

?? treejuxtaposer.java

?? 生物物種進化歷程的演示
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
	    mainFrame.validate();	} else {	    int numTrees = (treeArgs > treeCount) ? treeArgs : treeCount;	    if (matrix) { 		Toolkit toolkit = Toolkit.getDefaultToolkit();		Dimension screendim = toolkit.getScreenSize();		mainFrame.setSize(screendim.width-10, screendim.height-30);		        		mainFrame.setLocation(10,30);		//int cph  = controlPanel.getHeight();		int cph = 100;		width = (screendim.width - 20 - hgap*(numTrees-1))/numTrees;		height = (screendim.height - 30 - cph - vgap*(numTrees-1))/numTrees;		drawPanel.setSize(screendim.width, screendim.height-cph);		drawLayout = new GridLayout(0,numTrees,hgap,vgap);		drawPanel.setLayout( drawLayout );		drawPanel.validate();		//System.out.println("scr w " + screendim.width + " scr h " + screendim.height + " w " + width + " h " + height + " cph " + cph);		//mainFrame.pack();		mainFrame.validate();	    } else {			System.out.println("mainFrame validate :");						// please set this to 0 here in order to avoid the 'invalid-drawable'		// problem on macosx		// I think the problem is, that the canvas set its own w and h 		// so don't mess with that guy. he is awkward and don't likes		// sizes other then 0 at startup - Yes I know that this is strange...		height = 0;// drawPanel.getHeight();		width = 0;//drawPanel.getWidth()/numTrees;       //		drawPanel.setSize(width, height);//		drawPanel.validate();		mainFrame.validate();		System.out.println("mainFrame validate :");	    }	}		/**	 * Construct the data structures for structural comparison and	 * highlight	 **/	trees.add(newTree);//	TPs.addTree(newTree, edgeweightLevels);	//newTree.printLeaves();	addLeaves();	/**	 * Create and add the drawer(s) for the tree	 **/	if (matrix) {		TPs.addTree(newTree, edgeweightLevels);	    // matrix mode is n by n grid, where n is total number of	    // trees (like scatterplot matrix). there are n rows where	    // each tree is drawn n times: once with no highlights in	    // column that corresponds to own row (i.e. the diagonal),	    // and highlighted by the tree corresponding to that	    // column. example diagram for three trees: capital letter	    // is tree drawn, lower case is which tree it's	    // highlighted against.            // A   A/b  A/c            // B/a B    B/c	    // C/a C/b  C	    // because of the way the gridlayout works, we can't just	    // add new components because there's no way to rearrange	    // or insert at specific locations. so just clear the	    // panel and then insert everything in the correct order.	    // reshape before removing, otherwise command is ignored.	    // nope, this doesn't work either.	    Iterator tdIter = treeDrawers.iterator();	    while (tdIter.hasNext()) {		AccordionTreeDrawer atd = (AccordionTreeDrawer)tdIter.next();		atd.reshape(width,height);		atd.requestRedraw();	    }	    drawPanel.removeAll();	    ArrayList newRow = new ArrayList();	    ATDMatrix.add(newRow);	    for (int row = 0; row < treeCount; row++ ) {		ArrayList ATDRow = (ArrayList) ATDMatrix.get(row);		for (int col = 0; col < treeCount; col++) {		    int index = row*treeCount+col;		    //System.out.println("row " + row + " col " + col + " ind " + index + " tc " + treeCount + " TDsize " + treeDrawers.size());		    if (row >= treeCount-1 || col >= treeCount-1) {			// add new one			Tree treeToUse;			if (row == treeCount-1 && 0 == col) {			    // use new tree for the first new ATD on bottom row			    treeToUse = newTree;			    //System.out.println("use tree row " + row + " col " + col);			} else {			    // clone the tree, this isn't the first new ATD			    treeToUse = new Tree(((AccordionTreeDrawer)ATDRow.get(0)).tree);			    treeToUse.setKey(treeCount);			    TPs.addTree(treeToUse, edgeweightLevels);			    //System.out.println("add tree row " + row + " col " + col);			}			AccordionTreeDrawer newATD = (AccordionTreeDrawer) addATD(treeToUse, width, height);			ATDRow.add(newATD);		    } else {			// tell old one it got smaller			//((AccordionTreeDrawer)ATDRow.get(col)).reshape(width,height);			//((AccordionTreeDrawer)ATDRow.get(col)).requestRedraw();			//System.out.println("shrink tree row " + row + " col " + col);		    }		}	    }	    // can't set structural differences until all the new ATDs have been made	    for (int row = 0; row < treeCount; row++ ) {		ArrayList ATDRow = (ArrayList) ATDMatrix.get(row);		for (int col = 0; col < treeCount; col++) {		    ArrayList ATDCol = (ArrayList) ATDMatrix.get(col);		    int index = row*treeCount+col;		    if (showStructDiffs == true) {			if (row != col && (row >= treeCount-1 || col >= treeCount-1 )) {				AccordionTreeDrawer atdA = (AccordionTreeDrawer)ATDRow.get(col);				AccordionTreeDrawer atdB = (AccordionTreeDrawer)ATDCol.get(row);			    doStructuralDiff(atdA, atdB, diffGroup);				Tree2Tree t2t = TPs.getPair(atdA.tree, atdB.tree);  // new subtree => forest preprocessing:				t2t.subtree2Forest(atdA, atdB, edgeweightLevels); //    matrix mode untested			    //System.out.println("SD row " + row + " col " + col + " ind " + index + " tc " + treeCount);			}		    }		    AccordionTreeDrawer ATD = (AccordionTreeDrawer)ATDRow.get(col);		    drawPanel.add(ATD);		    //System.out.println("adding panel for " + row + " " + col + " atdkey " + ATD.getKey() + " treekey " + ATD.tree.getKey());		    //ATD.requestRedraw();		}	    }	    // create color trees for faster color lookup		RangeList diffGroupRangeList = getGroup(diffGroup);	} else {	    addATD(newTree, width, height);		TPs.addTree(newTree, edgeweightLevels);	    if (showStructDiffs == true) {		for (int i = 0; i < treeDrawers.size()-1; i++) {			AccordionTreeDrawer atdA = (AccordionTreeDrawer)treeDrawers.get(i);			AccordionTreeDrawer atdB = (AccordionTreeDrawer)treeDrawers.get(treeCount-1);		    doStructuralDiff((AccordionTreeDrawer)treeDrawers.get(i), 				     (AccordionTreeDrawer)treeDrawers.get(treeCount-1), 				     diffGroup);		    doStructuralDiff((AccordionTreeDrawer)treeDrawers.get(treeCount-1), 				     (AccordionTreeDrawer)treeDrawers.get(i), 				     diffGroup);			Tree2Tree t2t = TPs.getPair(atdA.tree, atdB.tree); // new subtree => forest preprocessing:			t2t.subtree2Forest(atdA, atdB, edgeweightLevels);		}//		System.out.println("Number of differences: " + ((RangeList)groups.get(diffGroup)).getRanges().size());//		System.out.println("Difference groups: " + groups.get(diffGroup));		// create color trees for faster color lookup//		RangeList diffGroupRangeList = getGroup(diffGroup);//		diffGroupRangeList.setColorTree(new ColorTree(diffGroupRangeList));	    }	    Component c = ((AccordionTreeDrawer)treeDrawers.get(treeCount-1)).getCanvas();	    drawPanel.add(c);	}		drawPanel.validate();	mainFrame.validate();	mainFrame.repaint();	drawPanel.repaint();	requestRedrawAll(); //  drawWithViewDirection();	    }// TODO: this all belongs in ATD, in a MUCH better way//	public void setHorizontalDirection(){//		viewDirection=1;//		drawWithViewDirection();//	}////	public void setVerticalDirection(){//		viewDirection=0;	//		drawWithViewDirection();//	}////   public void drawWithViewDirection()//   {//	int k = treeDrawers.size();//	   String[] file = new String[k];//	   int[] number = new int[k];//	   for(int i=0; i<k; i++)//	   {//		  file[i] = ((AccordionTreeDrawer)treeDrawers.get(i)).getTree().getName();//		  number[i] = ((AccordionTreeDrawer)treeDrawers.get(i)).getTree().getNumber();//	   }//	   for(int i=0; i<k; i++)//		 deleteTree(file[i]);//	   GridLayout newLayout = null;//	  if(viewDirection==1)//	  	newLayout = new GridLayout(1,0,8,0);//	  else//		newLayout = new GridLayout(0,1,0,8);//	  drawPanel.setLayout(newLayout);//	  	for(int i=0; i<k; i++)//	  	    if (number[i] == 0)//	  	        loadNewickTree(file[i]);//	  	    else//	  	    {//	  	        Vector v = new Vector();//	  	        v.add(new Integer(number[i]));//	  	        loadNexusTree(file[i], v);//	  	    }////   }			 		  //   //// draw Rite Left butterfly layout//   public void drawRL()//   {//   	winSize[0] = this.mainFrame.getSize().width;//   	winSize[1] = this.mainFrame.getSize().height;//   	drawButterFly = true;//	int k = treeDrawers.size();//		String[] file = new String[k];//		for(int i=0; i<k; i++)//		   file[i] = ((AccordionTreeDrawer)treeDrawers.get(i)).getTree().getName();//	    for(int i=0; i<k; i++)//		  deleteTree(file[i]);  ////		 for(int i=0; i<k; i++)//         {//         	if(i%2==0)//         	{//         		setLeftRight(0);			 //				loadNewickTree(file[i]);//         	}//         	else //         	{//         		setLeftRight(1);				//				loadNewickTree(file[i]);//         	}//         }////         drawButterFly = false;//   }////// draw Rite Rite butterfly layout//   public void drawRR()//   {//	winSize[0] = this.mainFrame.getSize().width;//	winSize[1] = this.mainFrame.getSize().height;//	drawButterFly = true;//  	//	int k = treeDrawers.size();//	String[] file = new String[k];//	for(int i=0; i<k; i++)//	   file[i] = ((AccordionTreeDrawer)treeDrawers.get(i)).getTree().getName();//	for(int i=0; i<k; i++)//		deleteTree(file[i]);//	setLeftRight(0);//	 for(int i=0; i<k; i++)//		loadNewickTree(file[i]);////	drawButterFly = false;//   }//   //  // draw Up Up  //   public void drawUU()//	 {//		winSize[0] = this.mainFrame.getSize().width;//		winSize[1] = this.mainFrame.getSize().height;//		drawButterFly = true;//	 	//	 	int k = treeDrawers.size();//	 	String[] file = new String[k];//	 	for(int i=0; i<k; i++)//	       file[i] = ((AccordionTreeDrawer)treeDrawers.get(i)).getTree().getName();//		for(int i=0; i<k; i++)//			deleteTree(file[i]);//	    setLeftRight(2);//	     for(int i=0; i<k; i++)//	        loadNewickTree(file[i]);////	        drawButterFly = false;//	 }//   //	// draw Down Down  //	  public void drawDD()//		{//			winSize[0] = this.mainFrame.getSize().width;//			winSize[1] = this.mainFrame.getSize().height;//			drawButterFly = true;//			//			int k = treeDrawers.size();//		   String[] file = new String[k];//		   for(int i=0; i<k; i++)//		    file[i] = ((AccordionTreeDrawer)treeDrawers.get(i)).getTree().getName();//		  for(int i=0; i<k; i++)//		   deleteTree(file[i]);	//		 setLeftRight(3);//		 for(int i=0; i<k; i++)//			loadNewickTree(file[i]);////			drawButterFly = false;//		}//   //   //// draw Rite Left butterfly layout//   public void drawLL()//   {//	winSize[0] = this.mainFrame.getSize().width;//	winSize[1] = this.mainFrame.getSize().height;//	drawButterFly = true;//   	//	int k = treeDrawers.size();//	String[] file = new String[k];//	for(int i=0; i<k; i++)//	   file[i] = ((AccordionTreeDrawer)treeDrawers.get(i)).getTree().getName();//	for(int i=0; i<k; i++)//	deleteTree(file[i]);//	//	setLeftRight(1);//	 for(int i=0; i<k; i++)//		loadNewickTree(file[i]);//     drawButterFly = false;//   }/** * draw independent resize window * *//*	public void drawIndependentResizeWindow(){		        int k = treeDrawers.size();			   JSplitPane[] jsp = new JSplitPane[10];			   Canvas[]  temp = new Canvas[10];	     			  JPanel[] jp = new JPanel[10];				for(int i =0 ; i< jp.length; i++)				{				 jp[i] = new JPanel();				 jp[i].setMinimumSize(new Dimension(10,10));				 jp[i].setLayout(new BorderLayout());				} 			  for(int i=0; i<treeDrawers.size();i++){										  temp[i] = (AccordionTreeDrawer)treeDrawers.get(i);//				  temp[i].setSize(0,0);						  jp[i].add(temp[i]);			  }		  					   int wh;		   if(viewDirection == 1)			 wh = mainFrame.getSize().width;			 else			 wh = mainFrame.getHeight()-30;                                jsp[0] = new JSplitPane(viewDirection, jp[0], jp[1]);			 if(k==1)				 jsp[0].setDividerLocation(wh);  		    else if(k == 2){			 	jsp[0] = new JSplitPane(viewDirection, jp[0], jp[1]);				jsp[0].setDividerLocation(wh/2);				jsp[0].setContinuousLayout(true);			 }				                                 for(int i=2; i<k; i++){                    jsp[i-2].setDividerLocation(wh*(i-1)/k);                    jsp[i-2].setContinuousLayout(true);                 	jsp[i-1] = new JSplitPane(viewDirection, jsp[i-2], jp[i]);                 	jsp[i-1].setDividerLocation(wh*i/k);                 	jsp[i-1].setContinuousLayout(true);          		   }			   mainFrame.removeAll();		   if(k == 0){}		   else if(k<=2)			mainFrame.add(jsp[0], BorderLayout.CENTER);					else		    mainFrame.add(jsp[k-2], BorderLayout.CENTER);//			drawPanel.add(c); //			drawPanel.validate();    		mainFrame.validate();	//		    mainFrame.repaint();		  }	*/    /**     * Utility function to make new AccordionTreeDrawer, set initial     * parameters and do treeDrawer list bookkeeping.     * @author Tamara Munzner     */    private AccordionTreeDrawerFinal addATD(Tree newTree,int width,int height) {	AccordionTreeDrawerFinal ATD = new AccordionTreeDrawerFinal(newTree, width, height, this);	ATD.setBackgroundColor(backgroundColor);	ATD.setObjectColor(objectColor);	ATD.setLabelColor(labelColor);	ATD.setLabelBackColor(labelBackColor);	ATD.setLabelHiColor(labelHiColor);	ATD.setLabelBackHiColor(labelBackHiColor);	ATD.setRubberbandColor(Color.getHSBColor(0.0f/360f,.0f,0.3f));

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久天天做天天爱综合色| 亚洲电影在线免费观看| 欧美精品久久一区二区三区| 欧美日韩在线三区| 欧美视频第二页| 在线不卡免费av| 日韩视频免费直播| 精品日韩欧美一区二区| 精品盗摄一区二区三区| 国产亚洲欧美一区在线观看| 国产婷婷色一区二区三区在线| 国产视频一区在线播放| 中文字幕亚洲电影| 亚洲自拍偷拍综合| 国内精品国产成人| 99re热这里只有精品视频| 欧美性一区二区| 久久久久久久久久电影| 亚洲乱码国产乱码精品精的特点 | 在线观看国产一区二区| 在线观看www91| 日韩一区二区在线免费观看| 国产精品麻豆视频| 奇米影视一区二区三区| 成人av免费在线观看| 欧美日韩电影一区| 中文字幕乱码亚洲精品一区| 日韩和欧美一区二区| 色噜噜偷拍精品综合在线| 国产视频一区不卡| 蜜桃av噜噜一区二区三区小说| 99国产精品久久久久| 26uuu亚洲综合色| 三级久久三级久久| 欧美视频你懂的| 一区二区三区av电影| 成人毛片视频在线观看| 久久亚洲综合色一区二区三区| 婷婷综合在线观看| 成人午夜视频福利| 日本一区二区高清| 国产成人午夜精品5599| 精品日本一线二线三线不卡| 日韩高清国产一区在线| 欧美午夜精品理论片a级按摩| 国产精品成人网| 99麻豆久久久国产精品免费| 国产精品美女久久福利网站| 99在线精品免费| 亚洲色图视频网| 一本色道综合亚洲| 一区二区三区资源| 欧美自拍偷拍午夜视频| 亚洲一区二区偷拍精品| 91精品国产乱| 99re这里都是精品| 亚洲一区二区3| 精品国产伦一区二区三区观看体验| 国产在线精品国自产拍免费| 久久综合国产精品| 成人黄色av电影| 水蜜桃久久夜色精品一区的特点| 欧美视频一区二| 国产成人在线影院 | 亚洲男人天堂av| 制服丝袜国产精品| 久久精品国产99国产精品| 国产精品国产三级国产aⅴ原创 | 在线成人av影院| 国产激情视频一区二区三区欧美 | 免费人成精品欧美精品| 337p粉嫩大胆噜噜噜噜噜91av| 成人午夜精品在线| 国内欧美视频一区二区| 亚洲欧美日韩久久| 国产夜色精品一区二区av| 在线视频一区二区三区| 国产乱子伦视频一区二区三区 | 蜜桃视频一区二区| 婷婷六月综合亚洲| 樱桃视频在线观看一区| 国产女同互慰高潮91漫画| 欧美一区二区三区喷汁尤物| 色域天天综合网| 成人免费毛片aaaaa**| 国产麻豆91精品| 国产一区欧美一区| 国产最新精品免费| 国产91露脸合集magnet| 国产精品白丝jk白祙喷水网站| 亚洲综合色成人| 欧美aaa在线| 国产成人精品综合在线观看| 色悠悠亚洲一区二区| 日韩欧美综合在线| 欧美国产一区在线| 午夜精品久久久久久久99水蜜桃 | 奇米精品一区二区三区在线观看| 日韩不卡手机在线v区| 国产精品18久久久久久久网站| 91在线观看下载| 精品毛片乱码1区2区3区| 国产精品乱人伦| 久久99久久精品欧美| 色先锋久久av资源部| 国产欧美一区二区三区在线看蜜臀 | 久久精品亚洲国产奇米99| 国产香蕉久久精品综合网| 国产欧美精品一区二区色综合 | 国内成+人亚洲+欧美+综合在线| 精品午夜久久福利影院| 色琪琪一区二区三区亚洲区| 精品99一区二区三区| 亚洲综合色网站| 国产69精品一区二区亚洲孕妇| 97超碰欧美中文字幕| 日韩精品资源二区在线| 最近日韩中文字幕| 国产在线一区二区综合免费视频| 91网站在线播放| 中日韩av电影| 日本女优在线视频一区二区| 成人h版在线观看| 日韩午夜激情视频| 亚洲成人免费视| 色综合久久中文综合久久97| 日韩一区二区麻豆国产| 亚洲免费高清视频在线| 国产不卡免费视频| 久久久九九九九| 精品午夜久久福利影院| 91精品蜜臀在线一区尤物| 亚洲福利视频一区二区| 91网页版在线| 亚洲欧美日韩电影| 在线看一区二区| 极品少妇xxxx偷拍精品少妇| 日韩一区二区视频在线观看| 午夜av电影一区| 欧美成人一区二区三区片免费 | 成人毛片在线观看| 中文字幕一区日韩精品欧美| 国产91高潮流白浆在线麻豆 | 日韩av高清在线观看| 91精品国产乱码| 国产精品1区2区3区| 亚洲色图另类专区| 欧美日韩美女一区二区| 久久99蜜桃精品| 亚洲人成伊人成综合网小说| 91成人免费电影| 免费看日韩a级影片| 欧美变态tickling挠脚心| 粉嫩绯色av一区二区在线观看| 国产精品理论在线观看| 色屁屁一区二区| 久久成人免费网站| 最新国产の精品合集bt伙计| av电影在线观看完整版一区二区| 一区二区三区免费| 中文字幕国产精品一区二区| 日韩欧美123| 日韩欧美久久一区| 欧美日韩免费高清一区色橹橹| 成人动漫一区二区| 99re热视频这里只精品| 国产专区综合网| 麻豆中文一区二区| 麻豆专区一区二区三区四区五区| 亚洲自拍另类综合| 一区二区三区四区五区视频在线观看 | 国产精品影视在线观看| 韩国av一区二区三区在线观看| 日本视频一区二区| 免费人成黄页网站在线一区二区| 亚洲国产精品嫩草影院| 亚洲一区二区三区中文字幕在线| 国产精品久久三| 夜夜嗨av一区二区三区中文字幕 | 成人黄色小视频在线观看| 国产suv一区二区三区88区| 成人成人成人在线视频| 91久久线看在观草草青青| 91久久精品网| 日韩精品专区在线| 国产婷婷色一区二区三区四区| 中文字幕亚洲欧美在线不卡| 亚洲综合小说图片| 久久爱www久久做| 成人一区在线看| 91.com在线观看| 中文字幕不卡三区| 亚洲成av人片在线| 国产成人鲁色资源国产91色综| 欧美中文字幕久久| 国产欧美日韩视频一区二区 | 欧美中文字幕一区| 久久欧美中文字幕| 天天综合天天做天天综合| 粉嫩aⅴ一区二区三区四区 |