/* -*- tab-width: 4 -*-
*
* Electric(tm) VLSI Design System
*
* File: GateLayGenTab.java
*
* 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.user.dialogs.options;
import com.sun.electric.database.text.Setting;
import com.sun.electric.tool.generator.layout.GateLayGenSettings;
import com.sun.electric.tool.user.dialogs.PreferencesFrame;
import java.awt.Frame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
/**
* Class to handle the "Gate Layout Generator" tab of the Preferences dialog.
*/
public class GateLayGenTab extends PreferencePanel
{
public static final long serialVersionUID=0;
Frame parent;
private Setting foundrySetting = GateLayGenSettings.getFoundrySetting();
private Setting enableNCCSetting = GateLayGenSettings.getEnableNCCSetting();
private Setting sizeQuantizationErrorSetting = GateLayGenSettings.getSizeQuantizationErrorSetting();
private Setting maxMosWidthSetting = GateLayGenSettings.getMaxMosWidthSetting();
private Setting vddYSetting = GateLayGenSettings.getVddYSetting();
private Setting gndYSetting = GateLayGenSettings.getGndYSetting();
private Setting nmosWellHeightSetting = GateLayGenSettings.getNmosWellHeightSetting();
private Setting pmosWellHeightSetting = GateLayGenSettings.getPmosWellHeightSetting();
private Setting simpleNameSetting = GateLayGenSettings.getSimpleNameSetting();
//private JPanel paintinv;
/** Creates new form Layout_Gen */
public GateLayGenTab(PreferencesFrame parent, boolean modal) {
super(parent, modal);
this.parent = (java.awt.Frame)parent.getOwner();
initComponents();
initializeFields();
}
void initializeFields() {
techCombo.setSelectedItem(getString(foundrySetting));
// libLabel.setEnabled(true);
libCombo.setSelectedItem(getString(enableNCCSetting));
quantText.setText(String.valueOf(getInt(sizeQuantizationErrorSetting)));
mosWidthText.setText(String.valueOf(getInt(maxMosWidthSetting)));
vddyText.setText(String.valueOf(getInt(vddYSetting)));
gndyText.setText(String.valueOf(getInt(gndYSetting)));
nmoswellText.setText(String.valueOf(getInt(nmosWellHeightSetting)));
pmoswellText.setText(String.valueOf(getInt(pmosWellHeightSetting)));
simpleNameCheck.setSelected(getBoolean(simpleNameSetting));
}
/** return the panel to use for user preferences. */
@Override
public JPanel getUserPreferencesPanel() {return (JPanel) getContentPane();}
/** return the name of this preferences tab. */
@Override
public String getName() {return "Gate Layout Generator";}
/** 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;
techLabel = new javax.swing.JLabel();
techCombo = new javax.swing.JComboBox();
nccCheck = new javax.swing.JCheckBox();
nccCheck.setSelected(true);
libLabel = new javax.swing.JLabel();
libCombo = new javax.swing.JComboBox();
help1 = new javax.swing.JButton();
quantLabel = new javax.swing.JLabel();
quantText = new javax.swing.JTextField();
maxMosLabel = new javax.swing.JLabel();
help2 = new javax.swing.JButton();
mosWidthText = new javax.swing.JTextField();
help3 = new javax.swing.JButton();
vddyLabel = new javax.swing.JLabel();
vddyText = new javax.swing.JTextField();
help4 = new javax.swing.JButton();
gndyLabel = new javax.swing.JLabel();
gndyText = new javax.swing.JTextField();
help5 = new javax.swing.JButton();
nmoswellLabel = new javax.swing.JLabel();
nmoswellText = new javax.swing.JTextField();
help6 = new javax.swing.JButton();
pmoswellLabel = new javax.swing.JLabel();
pmoswellText = new javax.swing.JTextField();
help7 = new javax.swing.JButton();
simpleNameCheck = new javax.swing.JCheckBox();
help8 = new javax.swing.JButton();
reset = new javax.swing.JButton();
getContentPane().setLayout(new java.awt.GridBagLayout());
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setForeground(java.awt.Color.white);
techLabel.setText("Technology");
techLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 50);
getContentPane().add(techLabel, gridBagConstraints);
techCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "MOCMOS", "CMOS90", "TSMC180" }));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
getContentPane().add(techCombo, gridBagConstraints);
nccCheck.setText("Enable NCC");
nccCheck.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
nccCheck.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
nccCheck.setMargin(new java.awt.Insets(0, 0, 0, 0));
nccCheck.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
nccCheckActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 50);
getContentPane().add(nccCheck, gridBagConstraints);
libLabel.setText("Reference Library");
libLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 50);
getContentPane().add(libLabel, gridBagConstraints);
libCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "PurpleFour", "RedFour" }));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
getContentPane().add(libCombo, gridBagConstraints);
help1.setText("?");
help1.setToolTipText("Updates global Auto. Layout Gen. settings");
help1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
help1.setMargin(new java.awt.Insets(0, 0, 0, 0));
help1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
help1ActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 4;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 10, 10);
getContentPane().add(help1, gridBagConstraints);
quantLabel.setText("Quantization Error");
quantLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 50);
getContentPane().add(quantLabel, gridBagConstraints);
quantText.setHorizontalAlignment(javax.swing.JTextField.CENTER);
quantText.setMinimumSize(new java.awt.Dimension(5, 19));
quantText.setPreferredSize(new java.awt.Dimension(50, 19));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
getContentPane().add(quantText, gridBagConstraints);
maxMosLabel.setText("Maximum MOS Width");
maxMosLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 8;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 50);
getContentPane().add(maxMosLabel, gridBagConstraints);
help2.setText("?");
help2.setToolTipText("Updates global Auto. Layout Gen. settings");
help2.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
help2.setMargin(new java.awt.Insets(0, 0, 0, 0));
help2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
help2ActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 10, 0);
getContentPane().add(help2, gridBagConstraints);
mosWidthText.setHorizontalAlignment(javax.swing.JTextField.CENTER);
mosWidthText.setMinimumSize(new java.awt.Dimension(5, 19));
mosWidthText.setPreferredSize(new java.awt.Dimension(50, 19));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 8;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
getContentPane().add(mosWidthText, gridBagConstraints);
help3.setText("?");
help3.setToolTipText("Updates global Auto. Layout Gen. settings");
help3.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
help3.setMargin(new java.awt.Insets(0, 0, 0, 0));
help3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
help3ActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 8;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 10, 0);
getContentPane().add(help3, gridBagConstraints);
vddyLabel.setText("Vdd Y Coordinate");
vddyLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 10;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 50);
getContentPane().add(vddyLabel, gridBagConstraints);
vddyText.setHorizontalAlignment(javax.swing.JTextField.CENTER);
vddyText.setMinimumSize(new java.awt.Dimension(5, 5));
vddyText.setPreferredSize(new java.awt.Dimension(50, 19));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 10;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
getContentPane().add(vddyText, gridBagConstraints);
help4.setText("?");
help4.setToolTipText("Updates global Auto. Layout Gen. settings");
help4.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
help4.setMargin(new java.awt.Insets(0, 0, 0, 0));
help4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
help4ActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 10;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 10, 0);
getContentPane().add(help4, gridBagConstraints);
gndyLabel.setText("Gnd Y Corodinate");
gndyLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 12;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 50);
getContentPane().add(gndyLabel, gridBagConstraints);
gndyText.setHorizontalAlignment(javax.swing.JTextField.CENTER);
gndyText.setMinimumSize(new java.awt.Dimension(5, 19));
gndyText.setPreferredSize(new java.awt.Dimension(50, 19));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 12;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
getContentPane().add(gndyText, gridBagConstraints);
help5.setText("?");
help5.setToolTipText("Updates global Auto. Layout Gen. settings");
help5.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
help5.setMargin(new java.awt.Insets(0, 0, 0, 0));
help5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
help5ActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 12;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 10, 0);
getContentPane().add(help5, gridBagConstraints);
nmoswellLabel.setText("NMOS Well Height");
nmoswellLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 14;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 50);
getContentPane().add(nmoswellLabel, gridBagConstraints);
nmoswellText.setHorizontalAlignment(javax.swing.JTextField.CENTER);
nmoswellText.setMinimumSize(new java.awt.Dimension(5, 19));
nmoswellText.setPreferredSize(new java.awt.Dimension(50, 19));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 14;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
getContentPane().add(nmoswellText, gridBagConstraints);
help6.setText("?");
help6.setToolTipText("Updates global Auto. Layout Gen. settings");
help6.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
help6.setMargin(new java.awt.Insets(0, 0, 0, 0));
help6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
help6ActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 14;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 10, 0);
getContentPane().add(help6, gridBagConstraints);
pmoswellLabel.setText("PMOS Well Height");
pmoswellLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 16;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 50);
getContentPane().add(pmoswellLabel, gridBagConstraints);
pmoswellText.setHorizontalAlignment(javax.swing.JTextField.CENTER);
pmoswellText.setMinimumSize(new java.awt.Dimension(5, 19));
pmoswellText.setPreferredSize(new java.awt.Dimension(50, 19));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 16;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
getContentPane().add(pmoswellText, gridBagConstraints);
help7.setText("?");
help7.setToolTipText("Updates global Auto. Layout Gen. settings");
help7.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
help7.setMargin(new java.awt.Insets(0, 0, 0, 0));
help7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
help7ActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 16;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 10, 0);
getContentPane().add(help7, gridBagConstraints);
simpleNameCheck.setText("Simple Name");
simpleNameCheck.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
simpleNameCheck.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
simpleNameCheck.setMargin(new java.awt.Insets(0, 0, 0, 0));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 18;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 50);
getContentPane().add(simpleNameCheck, gridBagConstraints);
help8.setText("?");
help8.setToolTipText("Updates global Auto. Layout Gen. settings");
help8.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
help8.setMargin(new java.awt.Insets(0, 0, 0, 0));
help8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
help8ActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 18;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 10, 0);
getContentPane().add(help8, gridBagConstraints);
reset.setText("Reset");
reset.setToolTipText("Updates global Auto. Layout Gen. settings");
reset.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
reset.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
resetActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 20;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 10, 0, 0);
getContentPane().add(reset, gridBagConstraints);
pack();
}// </editor-fold>//GEN-END:initComponents
private void help8ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_help8ActionPerformed
{//GEN-HEADEREND:event_help8ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_help8ActionPerformed
private void help7ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_help7ActionPerformed
{//GEN-HEADEREND:event_help7ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_help7ActionPerformed
private void help6ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_help6ActionPerformed
{//GEN-HEADEREND:event_help6ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_help6ActionPerformed
private void help5ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_help5ActionPerformed
{//GEN-HEADEREND:event_help5ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_help5ActionPerformed
private void help1ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_help1ActionPerformed
{//GEN-HEADEREND:event_help1ActionPerformed
JOptionPane.showMessageDialog(parent, "check Enable NCC and select a library. After generating layout, NCC uses this library as a reference");
}//GEN-LAST:event_help1ActionPerformed
private void help2ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_help2ActionPerformed
{//GEN-HEADEREND:event_help2ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_help2ActionPerformed
private void help3ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_help3ActionPerformed
{//GEN-HEADEREND:event_help3ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_help3ActionPerformed
private void help4ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_help4ActionPerformed
{//GEN-HEADEREND:event_help4ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_help4ActionPerformed
private void resetActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_resetActionPerformed
{//GEN-HEADEREND:event_resetActionPerformed
initializeFields();
// techCombo.setSelectedIndex(0);
// nccCheck.setSelected(false);
// libLabel.setEnabled(false);
// libCombo.setEnabled(false);
// quantText.setText("0");
// mosWidthText.setText("1000");
// vddyText.setText("21");
// gndyText.setText("-21");
// nmoswellText.setText("84");
// pmoswellText.setText("84");
// simpleNameCheck.setSelected(false);
}//GEN-LAST:event_resetActionPerformed
private class EmptyFieldException extends Exception {
public static final long serialVersionUID = 0;
String error = new String();
EmptyFieldException(String error) {
super();
this.error = error;
}
}
/** Method called when the "OK" panel is hit.
* Updates any changed fields in the Layout Generation tab. */
@Override
public void term() {
if(!fieldsAreValid()) return;
setString(foundrySetting, (String)techCombo.getSelectedItem());
String newNccCheck = nccCheck.isSelected() ? (String)libCombo.getSelectedItem() : "";
setString(enableNCCSetting, newNccCheck);
setInt(sizeQuantizationErrorSetting, Integer.parseInt(quantText.getText()));
setInt(maxMosWidthSetting, Integer.parseInt(mosWidthText.getText()));
setInt(vddYSetting, Integer.parseInt(vddyText.getText()));
setInt(gndYSetting, Integer.parseInt(gndyText.getText()));
setInt(nmosWellHeightSetting, Integer.parseInt(nmoswellText.getText()));
setInt(pmosWellHeightSetting, Integer.parseInt(pmoswellText.getText()));
setBoolean(simpleNameSetting, simpleNameCheck.isSelected());
}
private boolean fieldsAreValid() {
String param = new String();
//String errorField = new String();
try {
//REFERENCE LIBRARY
if(nccCheck.isSelected()) {
param = (String)libCombo.getSelectedItem();
if(param.equals(""))
throw new EmptyFieldException("Library Reference");
}
//QUANTIZATION ERROR
param = quantText.getText();
if(param.equals(""))
throw new EmptyFieldException("Quantization Error");
//MAX. MOS WIDTH
param = mosWidthText.getText();
if(param.equals(""))
throw new EmptyFieldException("Maximum MOS Width");
//VDD Y COORDINATE
param = vddyText.getText();
if(param.equals(""))
throw new EmptyFieldException("VDD Y Coordinate");
//Gnd Y Coordinate
param = gndyText.getText();
if(param.equals(""))
throw new EmptyFieldException("Gnd Y Coordinate");
//NMOS Well Height
param = nmoswellText.getText();
if(param.equals(""))
throw new EmptyFieldException("NMOS Well Height");
//PMOS Well Height
param = pmoswellText.getText();
if(param.equals(""))
throw new EmptyFieldException("PMOS Well Height");
//Set Simple Name
//boolean paramBl = simpleNameCheck.isSelected();
}
catch(EmptyFieldException e) {
JOptionPane.showMessageDialog(parent, "Cannot leave " + e.error + " blank!");
return false;
}
catch(NumberFormatException e) {
JOptionPane.showMessageDialog(parent, "Non-numeric value entered in a numeric field!");
return false;
}
return true;
}
private void nccCheckActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nccCheckActionPerformed
// TODO add your handling code here:
boolean check = nccCheck.isSelected();
libLabel.setEnabled(check);
libCombo.setEnabled(check);
}//GEN-LAST:event_nccCheckActionPerformed
// /**
// * @param args the command line arguments
// */
// public static void main(String args[])
// {
// java.awt.EventQueue.invokeLater(new Runnable()
// {
// public void run()
// {
// new GateLayGenTab(new javax.swing.JFrame(), true).setVisible(true);
// }
// });
// }
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel gndyLabel;
private javax.swing.JTextField gndyText;
private javax.swing.JButton help1;
private javax.swing.JButton help2;
private javax.swing.JButton help3;
private javax.swing.JButton help4;
private javax.swing.JButton help5;
private javax.swing.JButton help6;
private javax.swing.JButton help7;
private javax.swing.JButton help8;
private javax.swing.JComboBox libCombo;
private javax.swing.JLabel libLabel;
private javax.swing.JLabel maxMosLabel;
private javax.swing.JTextField mosWidthText;
private javax.swing.JCheckBox nccCheck;
private javax.swing.JLabel nmoswellLabel;
private javax.swing.JTextField nmoswellText;
private javax.swing.JLabel pmoswellLabel;
private javax.swing.JTextField pmoswellText;
private javax.swing.JLabel quantLabel;
private javax.swing.JTextField quantText;
private javax.swing.JButton reset;
private javax.swing.JCheckBox simpleNameCheck;
private javax.swing.JComboBox techCombo;
private javax.swing.JLabel techLabel;
private javax.swing.JLabel vddyLabel;
private javax.swing.JTextField vddyText;
// End of variables declaration//GEN-END:variables
/** Closes the dialog */
// private void closeDialog(java.awt.event.WindowEvent evt)
// {
// setVisible(false);
// dispose();
// }
}