designrulespanel.java
来自「The ElectricTM VLSI Design System is an 」· Java 代码 · 共 1,361 行 · 第 1/4 页
JAVA
1,361 行
gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 14, 0, 0); bottom.add(drLayerWLabel, gridBagConstraints); drLayerWidth.setColumns(6); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); bottom.add(drLayerWidth, gridBagConstraints); drLayerWidthRule.setColumns(9); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 4); bottom.add(drLayerWidthRule, gridBagConstraints); wideNameLabel.setText("Wide rules:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 11; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); bottom.add(wideNameLabel, gridBagConstraints); wideValueLabel.setText("Distance"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 11; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); bottom.add(wideValueLabel, gridBagConstraints); wideRuleLabel.setText("Rule"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 11; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); bottom.add(wideRuleLabel, gridBagConstraints); multiCutValueLabel.setText("Distance"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 17; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); bottom.add(multiCutValueLabel, gridBagConstraints); multiCutRuleLabel.setText("Rule"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 17; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); bottom.add(multiCutRuleLabel, gridBagConstraints); drAddRule.setText("Add Wide Rule"); drAddRule.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { drAddRuleActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 15; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); bottom.add(drAddRule, gridBagConstraints); drDeleteRule.setText("Delete Wide Rule"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 15; gridBagConstraints.gridwidth = 2; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); bottom.add(drDeleteRule, gridBagConstraints); drLayerALabel.setText("Area:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 14, 0, 4); bottom.add(drLayerALabel, gridBagConstraints); drLayerAreaRule.setColumns(9); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 4); bottom.add(drLayerAreaRule, gridBagConstraints); ruleLabel.setText("Rule"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); bottom.add(ruleLabel, gridBagConstraints); drLayerArea.setColumns(6); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); bottom.add(drLayerArea, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.RELATIVE; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); bottom.add(normalSeparator, gridBagConstraints); valueLabel.setText("Min. Value"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); bottom.add(valueLabel, gridBagConstraints); drLayerEALabel.setText("Enclosure Area:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 14, 0, 4); bottom.add(drLayerEALabel, gridBagConstraints); drLayerEAreaRule.setColumns(9); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 4); bottom.add(drLayerEAreaRule, gridBagConstraints); drLayerEnclosure.setColumns(6); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); bottom.add(drLayerEnclosure, gridBagConstraints); drNormalUnconnectedRule.setColumns(9); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 8; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 4); bottom.add(drNormalUnconnectedRule, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 0.5; add(bottom, gridBagConstraints); top.setLayout(new java.awt.GridBagLayout()); top.setBorder(javax.swing.BorderFactory.createTitledBorder("Node Rules")); top.setAlignmentX(0.0F); top.setAlignmentY(0.0F); top.setPreferredSize(new java.awt.Dimension(167, 104)); drNodeList.setOpaque(false); drNodeList.setPreferredSize(new java.awt.Dimension(200, 100)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 6; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 0.5; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); top.add(drNodeList, gridBagConstraints); jLabel4.setText("Width:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); top.add(jLabel4, gridBagConstraints); jLabel5.setText("Height:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); top.add(jLabel5, gridBagConstraints); jLabel7.setText("Min. Size"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); top.add(jLabel7, gridBagConstraints); jLabel8.setText("Rule"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); top.add(jLabel8, gridBagConstraints); drNodeWidth.setColumns(6); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 0.25; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); top.add(drNodeWidth, gridBagConstraints); drNodeRule.setColumns(9); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; gridBagConstraints.gridheight = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 0.25; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); top.add(drNodeRule, gridBagConstraints); drNodeHeight.setColumns(6); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); top.add(drNodeHeight, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 0.5; add(top, gridBagConstraints); }// </editor-fold>//GEN-END:initComponents private void drAddRuleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_drAddRuleActionPerformed int dindex = getLayerFromToIndex(); if (dindex == -1) return; int soFar = drSpacingsList.getItemCount(); double maxW = TextUtils.atof(drWidths.getText().trim()); double minLen = TextUtils.atof(drLengths.getText().trim()); double value = TextUtils.atof(drSpacings.getText()); String ruleText = drSpacingsRule.getText(); if (ruleText.length() > 0 && value > 0 && (maxW > 0 || minLen > 0)) { drSpacingsList.addItem("Rule " + (soFar+1)); DRCTemplate wr = new DRCTemplate(drSpacingsRule.getText(), foundry.getMode(), DRCTemplate.DRCRuleType.CONSPA, maxW, minLen, null, null, new double[]{value}, -1); drRules.addRule(dindex, wr, DRCTemplate.DRCRuleType.SPACING, true); wideSpacingRules.add(wr); // to be consistent, now adding the unconnected one wr.ruleType = DRCTemplate.DRCRuleType.UCONSPA; drRules.addRule(dindex, wr, DRCTemplate.DRCRuleType.SPACING, true); } else soFar = 0; // reset to first element ; if (wideSpacingRules.size() > 0) drSpacingsList.setSelectedIndex(soFar); drAddRule.setEnabled(drRules.doesAllowMultipleWideRules(getLayerFromToIndex())); }//GEN-LAST:event_drAddRuleActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel bottom; private javax.swing.JButton drAddRule; private javax.swing.JButton drDeleteRule; private javax.swing.JScrollPane drFromList; private javax.swing.JLabel drLayerALabel; private javax.swing.JTextField drLayerArea; private javax.swing.JTextField drLayerAreaRule; private javax.swing.JLabel drLayerEALabel; private javax.swing.JTextField drLayerEAreaRule; private javax.swing.JTextField drLayerEnclosure; private javax.swing.JLabel drLayerWLabel; private javax.swing.JTextField drLayerWidth; private javax.swing.JTextField drLayerWidthRule; private javax.swing.JTextField drLengths; private javax.swing.JLabel drLengthsLabel; private javax.swing.JTextField drMultiUnconnected; private javax.swing.JTextField drMultiUnconnectedRule; private javax.swing.JTextField drNodeHeight; private javax.swing.JScrollPane drNodeList; private javax.swing.JTextField drNodeRule; private javax.swing.JTextField drNodeWidth; private javax.swing.JTextField drNormalConnected; private javax.swing.JLabel drNormalConnectedLabel; private javax.swing.JTextField drNormalConnectedRule; private javax.swing.JTextField drNormalEdge; private javax.swing.JLabel drNormalEdgeLabel; private javax.swing.JTextField drNormalEdgeRule; private javax.swing.JTextField drNormalUnconnected; private javax.swing.JLabel drNormalUnconnectedLabel; private javax.swing.JTextField drNormalUnconnectedRule; private javax.swing.JCheckBox drShowOnlyLinesWithRules; private javax.swing.JTextField drSpacings; private javax.swing.JComboBox drSpacingsList; private javax.swing.JTextField drSpacingsRule; private javax.swing.JScrollPane drToList; private javax.swing.JTextField drWidths; private javax.swing.JLabel drWidthsLabel; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel multiCutNameLabel; private javax.swing.JLabel multiCutRuleLabel; private javax.swing.JLabel multiCutValueLabel; private javax.swing.JSeparator multiSeparator; private javax.swing.JLabel normalNameLabel; private javax.swing.JLabel normalRuleLabel; private javax.swing.JSeparator normalSeparator; private javax.swing.JLabel normalValueLabel; private javax.swing.JLabel ruleLabel; private javax.swing.JLabel toLabel; private javax.swing.JPanel top; private javax.swing.JLabel valueLabel; private javax.swing.JLabel wideNameLabel; private javax.swing.JLabel wideRuleLabel; private javax.swing.JSeparator wideSeparator; private javax.swing.JLabel wideValueLabel; // End of variables declaration//GEN-END:variables}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?