📄 wellimplant.java
字号:
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: WellImplant.java * * Copyright (c) 2008 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.tecEditWizard;import com.sun.electric.database.text.TextUtils;import com.sun.electric.tool.user.Resources;import javax.swing.JPanel;/** * Class to handle the "WellImplant" tab of the Numeric Technology Editor dialog. */public class WellImplant extends TechEditWizardPanel{ /** Creates new form WellImplant */ public WellImplant(TechEditWizard parent, boolean modal) { super(parent, modal); initComponents(); image.setIcon(Resources.getResource(getClass(), "WellImplant.png")); pack(); } /** return the panel to use for this Numeric Technology Editor tab. */ public JPanel getPanel() { return wellImplant; } /** return the name of this Numeric Technology Editor tab. */ public String getName() { return "WellImplant"; } /** * Method called at the start of the dialog. * Caches current values and displays them in the WellImplant tab. */ public void init() { TechEditWizardData data = wizard.getTechEditData(); nPlusWidth.setText(Double.toString(data.getNPlusWidth().v)); nPlusWidthRule.setText(data.getNPlusWidth().rule); nPlusOverhangDiff.setText(Double.toString(data.getNPlusOverhangDiff().v)); nPlusOverhangDiffRule.setText(data.getNPlusOverhangDiff().rule); nPlusOverhangPoly.setText(Double.toString(data.getNPlusOverhangPoly().v)); nPlusOverhangPolyRule.setText(data.getNPlusOverhangPoly().rule); nPlusSpacing.setText(Double.toString(data.getNPlusSpacing().v)); nPlusSpacingRule.setText(data.getNPlusSpacing().rule); pPlusWidth.setText(Double.toString(data.getPPlusWidth().v)); pPlusWidthRule.setText(data.getPPlusWidth().rule); pPlusOverhangDiff.setText(Double.toString(data.getPPlusOverhangDiff().v)); pPlusOverhangDiffRule.setText(data.getPPlusOverhangDiff().rule); pPlusOverhangPoly.setText(Double.toString(data.getPPlusOverhangPoly().v)); pPlusOverhangPolyRule.setText(data.getPPlusOverhangPoly().rule); pPlusSpacing.setText(Double.toString(data.getPPlusSpacing().v)); pPlusSpacingRule.setText(data.getPPlusSpacing().rule); nWellWidth.setText(Double.toString(data.getNWellWidth().v)); nWellWidthRule.setText(data.getNWellWidth().rule); nWellOverhangP.setText(Double.toString(data.getNWellOverhangDiffP().v)); nWellOverhangRuleP.setText(data.getNWellOverhangDiffP().rule); nWellOverhangN.setText(Double.toString(data.getNWellOverhangDiffN().v)); nWellOverhangRuleN.setText(data.getNWellOverhangDiffN().rule); nWellSpacing.setText(Double.toString(data.getNWellSpacing().v)); nWellSpacingRule.setText(data.getNWellSpacing().rule); } /** * Method called when the "OK" panel is hit. * Updates any changed fields in the WellImplant tab. */ public void term() { TechEditWizardData data = wizard.getTechEditData(); data.setNPlusWidth(new WizardField(TextUtils.atof(nPlusWidth.getText()), nPlusWidthRule.getText())); data.setNPlusOverhangDiff(new WizardField(TextUtils.atof(nPlusOverhangDiff.getText()), nPlusOverhangDiffRule.getText())); data.setNPlusOverhangPoly(new WizardField(TextUtils.atof(nPlusOverhangPoly.getText()), nPlusOverhangPolyRule.getText())); data.setNPlusSpacing(new WizardField(TextUtils.atof(nPlusSpacing.getText()), nPlusSpacingRule.getText())); data.setPPlusWidth(new WizardField(TextUtils.atof(pPlusWidth.getText()), pPlusWidthRule.getText())); data.setPPlusOverhangDiff(new WizardField(TextUtils.atof(pPlusOverhangDiff.getText()), pPlusOverhangDiffRule.getText())); data.setPPlusOverhangPoly(new WizardField(TextUtils.atof(pPlusOverhangPoly.getText()), pPlusOverhangPolyRule.getText())); data.setPPlusSpacing(new WizardField(TextUtils.atof(pPlusSpacing.getText()), pPlusSpacingRule.getText())); data.setNWellWidth(new WizardField(TextUtils.atof(nWellWidth.getText()), nWellWidthRule.getText())); data.setNWellOverhangDiffP(new WizardField(TextUtils.atof(nWellOverhangP.getText()), nWellOverhangRuleP.getText())); data.setNWellOverhangDiffN(new WizardField(TextUtils.atof(nWellOverhangN.getText()), nWellOverhangRuleN.getText())); data.setNWellSpacing(new WizardField(TextUtils.atof(nWellSpacing.getText()), nWellSpacingRule.getText())); } /** 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; wellImplant = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); nPlusWidth = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); nPlusOverhangDiff = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); nPlusSpacing = new javax.swing.JTextField(); jLabel4 = new javax.swing.JLabel(); pPlusWidth = new javax.swing.JTextField(); image = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); pPlusOverhangDiff = new javax.swing.JTextField(); jLabel6 = new javax.swing.JLabel(); pPlusSpacing = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel(); nWellWidth = new javax.swing.JTextField(); jLabel8 = new javax.swing.JLabel(); nWellOverhangP = new javax.swing.JTextField(); jLabel9 = new javax.swing.JLabel(); nWellSpacing = new javax.swing.JTextField(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); jLabel13 = new javax.swing.JLabel(); nPlusWidthRule = new javax.swing.JTextField(); nPlusOverhangDiffRule = new javax.swing.JTextField(); nPlusSpacingRule = new javax.swing.JTextField(); pPlusWidthRule = new javax.swing.JTextField(); pPlusOverhangDiffRule = new javax.swing.JTextField(); pPlusSpacingRule = new javax.swing.JTextField(); nWellWidthRule = new javax.swing.JTextField(); nWellOverhangRuleP = new javax.swing.JTextField(); nWellSpacingRule = new javax.swing.JTextField(); jLabel14 = new javax.swing.JLabel(); nPlusOverhangPoly = new javax.swing.JTextField(); nPlusOverhangPolyRule = new javax.swing.JTextField(); jLabel15 = new javax.swing.JLabel(); pPlusOverhangPolyRule = new javax.swing.JTextField(); pPlusOverhangPoly = new javax.swing.JTextField(); jLabel16 = new javax.swing.JLabel(); nWellOverhangN = new javax.swing.JTextField(); nWellOverhangRuleN = new javax.swing.JTextField(); setTitle("Well-Implant"); setName(""); // NOI18N addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); getContentPane().setLayout(new java.awt.GridBagLayout()); wellImplant.setLayout(new java.awt.GridBagLayout()); jLabel1.setText("NPlus width (A):"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(1, 4, 1, 0); wellImplant.add(jLabel1, gridBagConstraints); nPlusWidth.setColumns(8); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.insets = new java.awt.Insets(1, 0, 1, 2); wellImplant.add(nPlusWidth, gridBagConstraints); jLabel2.setText("NPlus active overhang (B):"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(1, 4, 1, 0); wellImplant.add(jLabel2, gridBagConstraints); nPlusOverhangDiff.setColumns(8); nPlusOverhangDiff.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { nPlusOverhangDiffActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; gridBagConstraints.insets = new java.awt.Insets(1, 0, 1, 2); wellImplant.add(nPlusOverhangDiff, gridBagConstraints); jLabel3.setText("NPlus spacing (D):"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(1, 4, 4, 0); wellImplant.add(jLabel3, gridBagConstraints); nPlusSpacing.setColumns(8); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; gridBagConstraints.insets = new java.awt.Insets(1, 0, 4, 2); wellImplant.add(nPlusSpacing, gridBagConstraints); jLabel4.setText("PPlus width (E):"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 1, 0); wellImplant.add(jLabel4, gridBagConstraints); pPlusWidth.setColumns(8); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 7; gridBagConstraints.insets = new java.awt.Insets(4, 0, 1, 2); wellImplant.add(pPlusWidth, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 3; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); wellImplant.add(image, gridBagConstraints); jLabel5.setText("PPlus active overhang (F):"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(1, 4, 1, 0); wellImplant.add(jLabel5, gridBagConstraints); pPlusOverhangDiff.setColumns(8); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 8; gridBagConstraints.insets = new java.awt.Insets(1, 0, 1, 2); wellImplant.add(pPlusOverhangDiff, gridBagConstraints); jLabel6.setText("PPlus spacing (H):"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 10; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(1, 4, 4, 0); wellImplant.add(jLabel6, gridBagConstraints); pPlusSpacing.setColumns(8); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 10; gridBagConstraints.insets = new java.awt.Insets(1, 0, 4, 2); wellImplant.add(pPlusSpacing, gridBagConstraints); jLabel7.setText("NWell width (I):"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 11; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 1, 0); wellImplant.add(jLabel7, gridBagConstraints); nWellWidth.setColumns(8); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 11; gridBagConstraints.insets = new java.awt.Insets(4, 0, 1, 2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -