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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? checkoutjob.java

?? The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: CheckOutJob.java * Project management tool * Written by: Steven M. Rubin * * Copyright (c) 2006 Sun Microsystems and Static Free Software * * Electric(tm) is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Electric(tm) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Electric(tm); see the file COPYING.  If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, Mass 02111-1307, USA. */package com.sun.electric.tool.project;import com.sun.electric.database.geometry.GenMath.MutableInteger;import com.sun.electric.database.hierarchy.Cell;import com.sun.electric.database.hierarchy.Library;import com.sun.electric.database.topology.NodeInst;import com.sun.electric.database.variable.UserInterface;import com.sun.electric.tool.Job;import com.sun.electric.tool.JobException;import com.sun.electric.tool.user.ui.WindowFrame;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;/** * Class to check-out cells from the Project Management repository. */public class CheckOutJob extends Job{	private List<Cell> checkOutCells;	private ProjectDB pdb;	private DisplayedCells displayedCells;	private boolean autoCheckout;	/**	 * Method to check the currently edited cell out of the repository.	 */	public static void checkOutThisCell()	{		UserInterface ui = Job.getUserInterface();		Cell cell = ui.needCurrentCell();		if (cell == null) return;		checkOut(cell);	}	/**	 * Method to check a cell out of the repository.	 * @param cell the Cell to check-out.	 */	public static void checkOut(Cell cell)	{			// make sure there is a valid user name and repository		if (Users.needUserName()) return;		if (Project.ensureRepository()) return;			// make a list of just this cell		List<Cell> oneCell = new ArrayList<Cell>();		oneCell.add(cell);			new CheckOutJob(oneCell, false);	}	/**	 * Constructor to make a "check out cells" job.	 * @param checkOutCells the List of cells to check out.	 * @param autoCheckout true if the checkout is automatically done to allow a change.	 * False if the checkout was explicitly requested by the user.	 */	CheckOutJob(List<Cell> checkOutCells, boolean autoCheckout)	{		super("Check out cells", Project.getProjectTool(), Job.Type.CHANGE, null, null, Job.Priority.USER);		this.checkOutCells = checkOutCells;		this.autoCheckout = autoCheckout;		pdb = Project.projectDB;		// save the current window configuration		displayedCells = new DisplayedCells();		displayedCells.setCellsToBeChanged(checkOutCells);		startJob();	}	public boolean doIt() throws JobException	{		// make a set of project libraries that are affected		Set<ProjectLibrary> projectLibs = new HashSet<ProjectLibrary>();		for(Cell oldVers : checkOutCells)		{			Library lib = oldVers.getLibrary();			ProjectLibrary pl = pdb.findProjectLibrary(lib);			projectLibs.add(pl);		}		// lock access to the project files (throws JobException on error)		ProjectLibrary.lockManyProjectFiles(projectLibs);		// check out the cell		try		{			preCheckOutCells(pdb, checkOutCells);		} catch (JobException e)		{			ProjectLibrary.releaseManyProjectFiles(projectLibs);			throw e;		}		// prevent tools (including this one) from seeing the changes		Project.setChangeStatus(true);		// make new version		for(Cell oldVers : checkOutCells)		{			// change version information (throws JobException on error)			Cell newVers = bumpVersion(oldVers);		// CHANGES DATABASE			if (newVers != null)			{				// update records for the changed cells	        	bumpRecordVersions(pdb, oldVers, newVers);	        	// record that cells changed so that displays get updated	        	displayedCells.swap(oldVers, newVers);			}		}		Project.setChangeStatus(false);		ProjectLibrary.releaseManyProjectFiles(projectLibs);		fieldVariableChanged("pdb");		fieldVariableChanged("displayedCells");		return true;	}    public void terminateOK()    {    	// take the new version of the project database from the server    	Project.projectDB = pdb;    	// redisplay windows to show current versions    	displayedCells.updateWindows();		// update explorer tree		WindowFrame.wantToRedoLibraryTree();		if (!autoCheckout)		{			// print dependencies and display			Iterator<Cell> createdCells = displayedCells.getCreatedCells();			if (createdCells.hasNext())			{				Cell newVers = createdCells.next();				StringBuffer cellNames = new StringBuffer();				int numCells = 0;				for(Iterator<Cell> it = displayedCells.getCreatedCells(); it.hasNext(); )				{					Cell c = it.next();					if (cellNames.length() > 0) cellNames.append(", ");					cellNames.append(c.describe(false));					numCells++;				}				if (numCells > 1) System.out.println("Cells " + cellNames + " checked out for your use"); else					System.out.println("Cell " + cellNames + " checked out for your use");				// advise of possible problems with other checkouts higher up in the hierarchy				HashMap<Cell,MutableInteger> cellsMarked = new HashMap<Cell,MutableInteger>();				for(Iterator<Library> it = Library.getLibraries(); it.hasNext(); )				{					Library oLib = it.next();					for(Iterator<Cell> cIt = oLib.getCells(); cIt.hasNext(); )					{						Cell cell = cIt.next();						cellsMarked.put(cell, new MutableInteger(0));					}				}				MutableInteger miNewVers = cellsMarked.get(newVers);				miNewVers.setValue(1);				boolean propagated = true;				while (propagated)				{					propagated = false;					for(Iterator<Library> it = Library.getLibraries(); it.hasNext(); )					{						Library oLib = it.next();						for(Iterator<Cell> cIt = oLib.getCells(); cIt.hasNext(); )						{							Cell cell = cIt.next();							MutableInteger val = cellsMarked.get(cell);							if (val.intValue() == 1)							{								propagated = true;								val.setValue(2);								for(Iterator<NodeInst> nIt = cell.getInstancesOf(); nIt.hasNext(); )								{									NodeInst ni = nIt.next();									MutableInteger pVal = cellsMarked.get(ni.getParent());									if (pVal.intValue() == 0) pVal.setValue(1);								}							}						}					}				}				miNewVers.setValue(0);				int total = 0;				for(Iterator<Library> it = Library.getLibraries(); it.hasNext(); )				{					Library oLib = it.next();					for(Iterator<Cell> cIt = oLib.getCells(); cIt.hasNext(); )					{						Cell cell = cIt.next();						MutableInteger val = cellsMarked.get(cell);						if (val.intValue() == 0) continue;						if (Project.getCellStatus(cell) == Project.CHECKEDOUTTOOTHERS)						{							val.setValue(3);							total++;						}					}				}				if (total != 0)				{					System.out.println("*** Warning: the following cells are above this in the hierarchy");					System.out.println("*** and are checked out to others.  This may cause problems");					for(Iterator<Library> it = Library.getLibraries(); it.hasNext(); )					{						Library oLib = it.next();						for(Iterator<Cell> cIt = oLib.getCells(); cIt.hasNext(); )						{							Cell cell = cIt.next();							MutableInteger val = cellsMarked.get(cell);							if (val.intValue() != 3) continue;							System.out.println("    " + cell + " is checked out to " + Project.getCellOwner(cell));						}					}				}				// advise of possible problems with other checkouts lower down in the hierarchy				for(Iterator<Library> it = Library.getLibraries(); it.hasNext(); )				{					Library oLib = it.next();					for(Iterator<Cell> cIt = oLib.getCells(); cIt.hasNext(); )					{						Cell cell = cIt.next();						MutableInteger val = cellsMarked.get(cell);						val.setValue(0);					}				}				miNewVers.setValue(1);				propagated = true;				while(propagated)				{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频一区二区| 欧美色老头old∨ideo| 亚洲自拍另类综合| 久久亚洲综合色| 欧美视频第二页| 国产精品白丝jk白祙喷水网站| 亚洲精品一卡二卡| 久久久噜噜噜久久人人看| 欧美午夜精品电影| www.一区二区| 九九精品视频在线看| 亚洲伊人伊色伊影伊综合网| 国产精品美女久久久久久| 69堂国产成人免费视频| 在线精品观看国产| 岛国av在线一区| 精品写真视频在线观看| 日韩激情一二三区| 亚洲成精国产精品女| 日韩一区在线看| 久久久午夜精品| 日韩视频一区在线观看| 欧美日韩国产综合久久| 91福利在线播放| www.成人在线| 成人永久免费视频| 国产精品一区二区男女羞羞无遮挡| 免费观看在线色综合| 午夜久久电影网| 亚洲在线一区二区三区| 亚洲乱码国产乱码精品精98午夜| 中文幕一区二区三区久久蜜桃| 久久综合久色欧美综合狠狠| 日韩免费性生活视频播放| 91精品免费在线| 欧美一区二区三区播放老司机| 欧美日韩一区二区三区四区| 欧美三级电影在线观看| 欧美日韩免费在线视频| 欧美日韩国产bt| 欧美日韩激情一区二区| 欧美精品在线观看播放| 欧美精品自拍偷拍| 欧美一级电影网站| 欧美一级爆毛片| 精品福利一区二区三区 | 国产麻豆视频一区二区| 美女视频一区在线观看| 韩国av一区二区三区四区| 久久 天天综合| 国产精品综合久久| 成人免费福利片| 97精品电影院| 欧美视频在线一区| 欧美放荡的少妇| 欧美成人三级电影在线| 久久精品一区二区三区不卡 | 丝袜亚洲另类欧美综合| 日本在线播放一区二区三区| 久久99蜜桃精品| 国产乱理伦片在线观看夜一区| 成人免费观看视频| 在线国产亚洲欧美| 日韩欧美国产小视频| 国产三级一区二区| 亚洲日本成人在线观看| 午夜视频久久久久久| 麻豆精品国产传媒mv男同| 国产一区二区三区av电影 | 色乱码一区二区三区88| 欧美群妇大交群的观看方式| 精品三级在线观看| 国产精品国产三级国产aⅴ中文| 亚洲欧美日韩在线不卡| 蜜桃视频一区二区三区 | 成人在线视频一区| 在线精品视频一区二区| 欧美哺乳videos| 亚洲天堂精品视频| 蜜桃91丨九色丨蝌蚪91桃色| 成人久久久精品乱码一区二区三区| 色综合欧美在线| 日韩精品一区二区三区蜜臀| 国产精品福利影院| 免费在线观看不卡| 不卡av电影在线播放| 欧美人xxxx| 国产精品美女久久久久久久| 青青草91视频| 91麻豆国产福利在线观看| 91精品国产一区二区| 国产精品污网站| 婷婷一区二区三区| 波多野结衣中文字幕一区二区三区| 欧美另类高清zo欧美| 国产人久久人人人人爽| 天天综合色天天综合色h| 成人av网站免费| 日韩精品中午字幕| 亚洲一区中文日韩| 国产激情精品久久久第一区二区| 欧美日本在线视频| 亚洲天堂2016| 成人综合婷婷国产精品久久 | 中文字幕在线一区二区三区| 另类小说色综合网站| 在线精品亚洲一区二区不卡| 国产欧美视频在线观看| 免费xxxx性欧美18vr| 91福利视频网站| 国产精品久久久久久妇女6080| 精品在线一区二区三区| 欧美日韩在线三级| 最新日韩av在线| 丁香六月久久综合狠狠色| 日韩女同互慰一区二区| 午夜成人免费视频| 欧美性受极品xxxx喷水| 中文字幕亚洲一区二区av在线| 国产麻豆精品视频| www国产成人免费观看视频 深夜成人网| 亚洲高清视频在线| 欧洲一区二区av| 亚洲精品视频在线| 99久久精品免费| 国产精品伦一区二区三级视频| 国产一区欧美一区| 亚洲精品一区二区在线观看| 捆绑紧缚一区二区三区视频| 欧美日韩国产成人在线免费| 亚洲国产另类精品专区| 在线看国产一区二区| 一区二区三区免费网站| 色呦呦日韩精品| 亚洲美女免费在线| 色欧美日韩亚洲| 亚洲精品写真福利| 欧美在线一区二区三区| 亚洲综合免费观看高清完整版 | 成人国产视频在线观看| 国产欧美一区二区三区沐欲| 国产精品一二三四五| 久久久久久久久久久99999| 国产一区二区三区最好精华液| 精品国产伦一区二区三区观看方式 | 日韩国产在线观看| 欧美夫妻性生活| 久久99久久精品| 久久综合久久久久88| 精东粉嫩av免费一区二区三区| 久久综合国产精品| 粉嫩av一区二区三区在线播放| 国产精品美女久久久久久久久| 99在线精品视频| 亚洲另类在线一区| 欧美日韩视频在线第一区| 日日摸夜夜添夜夜添亚洲女人| 日韩欧美综合一区| 国产精品一二三四五| 亚洲色大成网站www久久九九| 欧美在线制服丝袜| 六月丁香婷婷色狠狠久久| 精品乱码亚洲一区二区不卡| 粉嫩嫩av羞羞动漫久久久| 亚洲欧美一区二区三区极速播放 | 国产人成亚洲第一网站在线播放| 99精品一区二区| 天天免费综合色| 久久久久久一二三区| 91视频精品在这里| 亚洲va欧美va人人爽午夜| 日韩欧美一二三区| av电影一区二区| 污片在线观看一区二区| 久久久噜噜噜久久中文字幕色伊伊| 精品久久久久久亚洲综合网| 91精品国产综合久久蜜臀| 高清不卡在线观看| 亚洲精品成人悠悠色影视| 日韩一区二区在线观看| 国产成a人亚洲精| 亚洲综合激情另类小说区| 亚洲精品一区二区在线观看| 91免费看视频| 久久av老司机精品网站导航| 最新中文字幕一区二区三区| 日韩午夜激情免费电影| av激情综合网| 蜜臀99久久精品久久久久久软件| 亚洲欧洲精品成人久久奇米网 | 欧美精品一区二区在线播放| 91丨porny丨国产| 狠狠色狠狠色综合系列| 一区二区三区久久久| 久久久国产精华| 制服丝袜激情欧洲亚洲| 94色蜜桃网一区二区三区| 六月婷婷色综合| 亚洲福利一区二区| 亚洲欧美综合色|