parasitictab.java

来自「The ElectricTM VLSI Design System is an 」· Java 代码 · 共 289 行

JAVA
289
字号
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: ParasiticTab.java * * Copyright (c) 2004 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.user.dialogs.options;import com.sun.electric.database.text.TextUtils;import com.sun.electric.tool.extract.ParasiticTool;import com.sun.electric.tool.simulation.Simulation;import java.awt.Frame;import javax.swing.JPanel;/** * Class to handle the "Parasitics" tab of the Preferences dialog. */public class ParasiticTab extends PreferencePanel {	/** Creates new form ParasiticTab */	public ParasiticTab(Frame parent, boolean modal) {		super(parent, modal);		initComponents();	}	/** return the panel to use for this preferences tab. */	public JPanel getPanel() { return topPanel; }	/** return the name of this preferences tab. */	public String getName() { return "Parasitic"; }	/**	 * Method called at the start of the dialog.	 * Caches current values and displays them in the Routing tab.	 */	public void init()	{				verboseNaming.setSelected(Simulation.isParasiticsUseVerboseNaming());		backannotateLayout.setSelected(Simulation.isParasiticsBackAnnotateLayout());		extractPowerGround.setSelected(Simulation.isParasiticsExtractPowerGround());		extractPowerGround.setEnabled(false);        useExemptedNetsFile.setSelected(Simulation.isParasiticsUseExemptedNetsFile());        ignoreExemptedNets.setEnabled(useExemptedNetsFile.isSelected());        extractExemptedNets.setEnabled(useExemptedNetsFile.isSelected());        ignoreExemptedNets.setSelected(Simulation.isParasiticsIgnoreExemptedNets());        extractExemptedNets.setSelected(!Simulation.isParasiticsIgnoreExemptedNets());        extractR.setSelected(Simulation.isParasiticsExtractsR());        extractC.setSelected(Simulation.isParasiticsExtractsC());        // the parasitics panel (not visible)		maxDistValue.setText(TextUtils.formatDouble(ParasiticTool.getMaxDistance()));		parasiticPanel.setVisible(false);	}	/**	 * Method called when the "OK" panel is hit.	 * Updates any changed fields in the Routing tab.	 */	public void term()	{		ParasiticTool.setMaxDistance(Double.parseDouble(maxDistValue.getText()));		boolean b = verboseNaming.isSelected();		if (b != Simulation.isParasiticsUseVerboseNaming()) Simulation.setParasiticsUseVerboseNaming(b);		b = backannotateLayout.isSelected();		if (b != Simulation.isParasiticsBackAnnotateLayout()) Simulation.setParasiticsBackAnnotateLayout(b);		b = extractPowerGround.isSelected();		if (b != Simulation.isParasiticsExtractPowerGround()) Simulation.setParasiticsExtractPowerGround(b);        b = useExemptedNetsFile.isSelected();        if (b != Simulation.isParasiticsUseExemptedNetsFile()) Simulation.setParasiticsUseExemptedNetsFile(b);        b = ignoreExemptedNets.isSelected();            Simulation.setParasiticsIgnoreExemptedNets(b);        b = extractR.isSelected();        if (b != Simulation.isParasiticsExtractsR())            Simulation.setParasiticsExtractsR(b);        b = extractC.isSelected();        if (b != Simulation.isParasiticsExtractsC())            Simulation.setParasiticsExtractsC(b);    }	/**	 * Method called when the factory reset is requested.	 */	public void reset()	{		if (Simulation.isFactoryParasiticsUseVerboseNaming() != Simulation.isParasiticsUseVerboseNaming())			Simulation.setParasiticsUseVerboseNaming(Simulation.isFactoryParasiticsUseVerboseNaming());		if (Simulation.isFactoryParasiticsBackAnnotateLayout() != Simulation.isParasiticsBackAnnotateLayout())			Simulation.setParasiticsBackAnnotateLayout(Simulation.isFactoryParasiticsBackAnnotateLayout());		if (Simulation.isFactoryParasiticsExtractPowerGround() != Simulation.isParasiticsExtractPowerGround())			Simulation.setParasiticsExtractPowerGround(Simulation.isFactoryParasiticsExtractPowerGround());		if (Simulation.isFactoryParasiticsUseExemptedNetsFile() != Simulation.isParasiticsUseExemptedNetsFile())			Simulation.setParasiticsUseExemptedNetsFile(Simulation.isFactoryParasiticsUseExemptedNetsFile());		if (Simulation.isFactoryParasiticsIgnoreExemptedNets() != Simulation.isParasiticsIgnoreExemptedNets())			Simulation.setParasiticsIgnoreExemptedNets(Simulation.isFactoryParasiticsIgnoreExemptedNets());		if (Simulation.isFactoryParasiticsExtractsR() != Simulation.isParasiticsExtractsR())			Simulation.setParasiticsExtractsR(Simulation.isFactoryParasiticsExtractsR());		if (Simulation.isFactoryParasiticsExtractsC() != Simulation.isParasiticsExtractsC())			Simulation.setParasiticsExtractsC(Simulation.isFactoryParasiticsExtractsC());		if (ParasiticTool.getFactoryMaxDistance() != ParasiticTool.getMaxDistance())			ParasiticTool.setMaxDistance(ParasiticTool.getFactoryMaxDistance());	}	/** This method is called from within the constructor to	 * initialize the form.     * WARNING: Do NOT modify this code. The content of this method is     * always regenerated by the Form Editor.     */    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents    private void initComponents() {        java.awt.GridBagConstraints gridBagConstraints;        exemptedNetsGroup = new javax.swing.ButtonGroup();        topPanel = new javax.swing.JPanel();        parasiticPanel = new javax.swing.JPanel();        maxDist = new javax.swing.JLabel();        maxDistValue = new javax.swing.JTextField();        simpleParasiticOptions = new javax.swing.JPanel();        verboseNaming = new javax.swing.JCheckBox();        backannotateLayout = new javax.swing.JCheckBox();        extractPowerGround = new javax.swing.JCheckBox();        useExemptedNetsFile = new javax.swing.JCheckBox();        ignoreExemptedNets = new javax.swing.JRadioButton();        extractExemptedNets = new javax.swing.JRadioButton();        extractR = new javax.swing.JCheckBox();        extractC = new javax.swing.JCheckBox();        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);        getContentPane().setLayout(new java.awt.GridBagLayout());        topPanel.setLayout(new java.awt.GridBagLayout());        parasiticPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Parasitic Coupling Options"));        parasiticPanel.setEnabled(false);        parasiticPanel.setLayout(new java.awt.GridBagLayout());        maxDist.setText("Maximum distance (lambda)");        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 0;        gridBagConstraints.gridy = 0;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);        parasiticPanel.add(maxDist, gridBagConstraints);        maxDistValue.setColumns(6);        maxDistValue.setText("20");        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 1;        gridBagConstraints.gridy = 0;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4);        parasiticPanel.add(maxDistValue, gridBagConstraints);        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 0;        gridBagConstraints.gridy = 0;        gridBagConstraints.gridwidth = 2;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        topPanel.add(parasiticPanel, gridBagConstraints);        simpleParasiticOptions.setBorder(javax.swing.BorderFactory.createTitledBorder("Simple Parasitic Options"));        simpleParasiticOptions.setLayout(new java.awt.GridBagLayout());        verboseNaming.setText("Use Verbose Naming");        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 0;        gridBagConstraints.gridy = 0;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        simpleParasiticOptions.add(verboseNaming, gridBagConstraints);        backannotateLayout.setText("Back-Annotate Layout");        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 0;        gridBagConstraints.gridy = 1;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        simpleParasiticOptions.add(backannotateLayout, gridBagConstraints);        extractPowerGround.setText("Extract Power/Ground");        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 0;        gridBagConstraints.gridy = 2;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        simpleParasiticOptions.add(extractPowerGround, gridBagConstraints);        useExemptedNetsFile.setText("Use exemptedNets.txt file");        useExemptedNetsFile.addChangeListener(new javax.swing.event.ChangeListener() {            public void stateChanged(javax.swing.event.ChangeEvent evt) {                useExemptedNetsFileStateChanged(evt);            }        });        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        simpleParasiticOptions.add(useExemptedNetsFile, gridBagConstraints);        exemptedNetsGroup.add(ignoreExemptedNets);        ignoreExemptedNets.setText("Extract everything except exempted nets");        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 1;        gridBagConstraints.gridy = 1;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);        simpleParasiticOptions.add(ignoreExemptedNets, gridBagConstraints);        exemptedNetsGroup.add(extractExemptedNets);        extractExemptedNets.setText("Extract only exempted nets");        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 1;        gridBagConstraints.gridy = 2;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);        simpleParasiticOptions.add(extractExemptedNets, gridBagConstraints);        extractR.setText("Extract R");        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 0;        gridBagConstraints.gridy = 3;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        simpleParasiticOptions.add(extractR, gridBagConstraints);        extractC.setText("Extract C");        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 0;        gridBagConstraints.gridy = 4;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        simpleParasiticOptions.add(extractC, gridBagConstraints);        gridBagConstraints = new java.awt.GridBagConstraints();        gridBagConstraints.gridx = 0;        gridBagConstraints.gridy = 1;        gridBagConstraints.gridwidth = 2;        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        topPanel.add(simpleParasiticOptions, gridBagConstraints);        getContentPane().add(topPanel, new java.awt.GridBagConstraints());        pack();    }// </editor-fold>//GEN-END:initComponents    private void useExemptedNetsFileStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_useExemptedNetsFileStateChanged        ignoreExemptedNets.setEnabled(useExemptedNetsFile.isSelected());        extractExemptedNets.setEnabled(useExemptedNetsFile.isSelected());    }//GEN-LAST:event_useExemptedNetsFileStateChanged    /**     * @param args the command line arguments     */    public static void main(String args[]) {        new ParasiticTab(new javax.swing.JFrame(), true).setVisible(true);    }        // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JCheckBox backannotateLayout;    private javax.swing.ButtonGroup exemptedNetsGroup;    private javax.swing.JCheckBox extractC;    private javax.swing.JRadioButton extractExemptedNets;    private javax.swing.JCheckBox extractPowerGround;    private javax.swing.JCheckBox extractR;    private javax.swing.JRadioButton ignoreExemptedNets;    private javax.swing.JLabel maxDist;    private javax.swing.JTextField maxDistValue;    private javax.swing.JPanel parasiticPanel;    private javax.swing.JPanel simpleParasiticOptions;    private javax.swing.JPanel topPanel;    private javax.swing.JCheckBox useExemptedNetsFile;    private javax.swing.JCheckBox verboseNaming;    // End of variables declaration//GEN-END:variables    }

⌨️ 快捷键说明

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