⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attributes.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
	                if (high.isHighlightEOBJ())	                {	                    if (eobj instanceof ArcInst)	                    {	                        selectedArc = (ArcInst)eobj;   selectedObject = selectedArc;   currentButton = currentArc;	                    } else if (eobj instanceof NodeInst)	                    {	                        selectedNode = (NodeInst)eobj;   selectedObject = selectedNode;   currentButton = currentNode;	                    } else if (eobj instanceof PortInst)	                    {	                        PortInst pi = (PortInst)eobj;	                        selectedNode = pi.getNodeInst();   selectedObject = selectedNode;   currentButton = currentNode;	                        selectedPort = pi;	                    }	                } else if (high.isHighlightText())	                {	                	selectedVarKey = high.getVarKey();	                    if (selectedVarKey != null)	                    {	                        if (eobj instanceof NodeInst)	                        {	                            selectedNode = (NodeInst)eobj;   selectedObject = selectedNode;   currentButton = currentNode;	                        } else if (eobj instanceof ArcInst)	                        {	                            selectedArc = (ArcInst)eobj;   selectedObject = selectedArc;   currentButton = currentArc;	                        } else if (eobj instanceof PortInst)	                        {	                            selectedPort = (PortInst)eobj;   selectedObject = selectedPort;   currentButton = currentPort;	                            selectedNode = selectedPort.getNodeInst();	                        } else if (eobj instanceof Export)	                        {	                            selectedExport = (Export)eobj;   selectedObject = selectedExport;   currentButton = currentExport;	                        }	                    } else if (high.getVarKey() == NodeInst.NODE_NAME || high.getVarKey() == NodeInst.NODE_PROTO)	                    {                            // node name                            selectedNode = (NodeInst)eobj;   selectedObject = selectedNode;   currentButton = currentNode;	                    } else if (high.getVarKey() == ArcInst.ARC_NAME)	                    {                            // arc name                            selectedArc = (ArcInst)eobj;   selectedObject = selectedArc;   currentButton = currentArc;	                    } else if (high.getVarKey() == Export.EXPORT_NAME)	                    {	                        selectedExport = (Export)eobj;   selectedObject = selectedExport;   currentButton = currentExport;	                    }	                }	            }	        }    	}        // show initial values in the dialog        if (selectedCell == null)        {            // nothing can be done: dim the entire dialog            currentCell.setEnabled(false);            cellName.setText("NO CURRENT CELL");            currentNode.setEnabled(false);            currentArc.setEnabled(false);            currentExport.setEnabled(false);            currentPort.setEnabled(false);            list.clearSelection();            listModel.clear();            name.setText("");            name.setEditable(false);            value.setText("");            value.setEditable(false);            evaluation.setText("");            deleteButton.setEnabled(false);            newButton.setEnabled(false);            renameButton.setEnabled(false);            textPanel.setTextDescriptor(null, null);            attrPanel.setVariable(null, null);        	loading = false;            return;        }        // enable the dialog        currentCell.setEnabled(true);        currentNode.setEnabled(selectedNode != null);        currentArc.setEnabled(selectedArc != null);        currentExport.setEnabled(selectedExport != null);        currentPort.setEnabled(selectedPort != null);        currentButton.setSelected(true);        cellName.setText(selectedCell.describe(false));        name.setEditable(true);        value.setEditable(true);        // show all attributes on the selected object        updateList();        if (selectedVarKey != null)            showSelectedAttribute(selectedVarKey);        else            checkName();    	loading = false;    }    private void checkName() {        // if name does not equal name of selected var, disable update button        String varName = name.getText().trim();        // can't create new variable of empty, no vars can be empty text        if (varName.equals("")) {            newButton.setEnabled(false);            deleteButton.setEnabled(false);            renameButton.setEnabled(false);            textPanel.setTextDescriptor(null, null);            attrPanel.setVariable(null, null);            return;        }        if (showParamsOnly)            varName = "ATTR_" + varName;        // try to find variable        Variable.Key varKey = Variable.newKey(varName);        if (selectedObject.getParameterOrVariable(varKey) != null)        {            // make sure var is selected            if (varKey != null)            	list.setSelectedValue(varKey, true);        } else {            // no such var, remove selection and enable new buttons            newButton.setEnabled(true);            renameButton.setEnabled(false);            deleteButton.setEnabled(false);            list.clearSelection();            textPanel.setTextDescriptor(varKey, selectedObject);            attrPanel.setVariable(varKey, selectedObject);        }    }    /**     * Updates List of attributes on selected object     */    private void updateList()    {        list.clearSelection();        listModel.clear();        // show the parameters        Set<Variable.Key> seen = new HashSet<Variable.Key>();        Iterator<Variable> it = null;        if (selectedObject instanceof Cell)        {        	Cell cell = (Cell)selectedObject;        	it = cell.getParameters();        }        if (selectedObject instanceof NodeInst)        {        	NodeInst ni = (NodeInst)selectedObject;        	it = ni.getParameters();        }        if (it != null)        {        	List<Variable.Key> params = new ArrayList<Variable.Key>();            for( ; it.hasNext(); )            {	            Variable var = it.next();	            params.add(var.getKey());            }            if (params.size() > 0)            {            	if (!showParamsOnly)                    listModel.addElement("------------ PARAMETERS ------------");            	for(Variable.Key key : params)            	{		            listModel.addElement(key);		            seen.add(key);            	}            }        }        // show variables if requested        if (!showParamsOnly)        {        	List<Variable.Key> variables = new ArrayList<Variable.Key>();	        for(Iterator<Variable> vIt = selectedObject.getVariables(); vIt.hasNext(); )	        {	            Variable var = vIt.next();	            if (seen.contains(var.getKey())) continue;	            variables.add(var.getKey());	        }	        if (variables.size() > 0)	        {	            listModel.addElement("------------ VARIABLES ------------");		        for(Variable.Key key : variables)		            listModel.addElement(key);	        }        }    }    /**     * Method to return the Variable that is selected in the dialog.     * @return the Variable that is selected.  Returns null if none are.     */    Variable getSelectedVariable()    {        int i = list.getSelectedIndex();        if (i < 0) return null;        Object selectedObj = list.getSelectedValue();        if (selectedObj instanceof Variable.Key)        {	        Variable.Key key = (Variable.Key)selectedObj;	        return selectedObject.getParameterOrVariable(key);        }        return null;    }    /**     * Method to convert a string to a proper Object for storage in a Variable.     * Currently knows only Integer, Double, and String.     * @param text the text describing the Variable's value.     * @return an Object that contains the value.     */    private Object getVariableObject(String text)    {        if (TextUtils.isANumber(text))        {            int i = TextUtils.atoi(text);            double d = TextUtils.atof(text);            if (i == d) return new Integer(i);            return new Double(d);        }        return text;    }    /**     * Method to display the aspects of the currently selected Variable in the dialog.     * @param selectThisKey if non-null, select this variable first, and then update dialog.     */    void showSelectedAttribute(Variable.Key selectThisKey)    {        if (selectThisKey != null)            list.setSelectedValue(selectThisKey, true);        Variable var = getSelectedVariable();        if (var == null)        {            renameButton.setEnabled(false);            deleteButton.setEnabled(false);        	return;        }        selectedVarKey = var.getKey();        // set the Name field		boolean oldLoading = loading;		loading = true;        initialName = getVariableText(var.getKey());        String pt = initialName;        name.setText(pt);        // get initial the Value field        initialValue = var.getPureValue(-1);        // set the Value field		String oldValue = value.getText();		if (!oldValue.equals(initialValue))			value.setText(initialValue);        if (var.getObject() instanceof Object []) {            value.setEditable(false);        } else {            value.setEditable(true);        }		loading = oldLoading;        // set the evaluation field        if (var.isCode()) {            Object eval = VarContext.globalContext.evalVar(var);            if (eval == null)                evaluation.setText("");            else                evaluation.setText(eval.toString());        } else {            evaluation.setText("");        }        // set the text info panel		if (var.isDisplay())			textPanel.setTextDescriptor(var.getKey(), selectedObject);		else			textPanel.setTextDescriptor(null, null);        attrPanel.setVariable(var.getKey(), selectedObject);        // enable buttons        newButton.setEnabled(false);        renameButton.setEnabled(true);        deleteButton.setEnabled(true);    }    /**     * Class to delete an attribute in a new thread.     */    private static class DeleteAttribute extends Job	{        private Variable var;        private ElectricObject owner;        private DeleteAttribute(Variable var, ElectricObject owner)        {            super("Delete Attribute", User.getUserTool(), Job.Type.CHANGE, null, null, Job.Priority.USER);            this.var = var;            this.owner = owner;            startJob();        }        public boolean doIt() throws JobException        {            if (var == null) return false;            Variable.Key varKey = var.getKey();            if (owner.isParam(varKey)) {                if (owner instanceof Cell)                    ((Cell)owner).getCellGroup().delParam((Variable.AttrKey)varKey);                else if (owner instanceof NodeInst)                    ((NodeInst)owner).delParameter(varKey);            } else {                owner.delVar(varKey);            }            return true;        }    }    private static class CreateAttribute extends Job {        private ElectricObject owner;        private Variable newVar;        private boolean addToInstances;        private transient Attributes dialog;        private CreateAttribute(String newName, Object newValue, ElectricObject owner, Attributes dialog,        	boolean addToInstances, TextDescriptor useThis)        {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -