/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: SmartTextTab.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.EditingPreferences; import com.sun.electric.tool.user.dialogs.PreferencesFrame; import javax.swing.JPanel; /** * Class to handle the "Smart Text" tab of the Preferences dialog. */ public class SmartTextTab extends PreferencePanel { /** Creates new form SmartTextTab */ public SmartTextTab(PreferencesFrame parent, boolean modal) { super(parent, modal); initComponents(); } /** return the panel to use for user preferences. */ @Override public JPanel getUserPreferencesPanel() { return text; } /** return the name of this preferences tab. */ @Override public String getName() { return "Smart Text"; } /** * Method called at the start of the dialog. * Caches current values and displays them in the Text tab. */ @Override public void init() { EditingPreferences ep = getEditingPreferences(); // set arc defaults switch (ep.smartVerticalPlacementArc) { case 0: arcVerticalInside.setSelected(true); break; case 1: arcVerticalLeft.setSelected(true); break; case 2: arcVerticalRight.setSelected(true); break; } switch (ep.smartHorizontalPlacementArc) { case 0: arcHorizontalInside.setSelected(true); break; case 1: arcHorizontalAbove.setSelected(true); break; case 2: arcHorizontalBelow.setSelected(true); break; } // set export defaults switch (ep.smartVerticalPlacementExport) { case 0: textSmartVerticalOff.setSelected(true); break; case 1: textSmartVerticalInside.setSelected(true); break; case 2: textSmartVerticalOutside.setSelected(true); break; } switch (ep.smartHorizontalPlacementExport) { case 0: textSmartHorizontalOff.setSelected(true); break; case 1: textSmartHorizontalInside.setSelected(true); break; case 2: textSmartHorizontalOutside.setSelected(true); break; } } /** * Method called when the "OK" panel is hit. * Updates any changed fields in the Text tab. */ @Override public void term() { EditingPreferences ep = getEditingPreferences(); // set arc changes int currInt = 0; if (arcVerticalLeft.isSelected()) currInt = 1; else if (arcVerticalRight.isSelected()) currInt = 2; ep = ep.withSmartVerticalPlacementArc(currInt); currInt = 0; if (arcHorizontalAbove.isSelected()) currInt = 1; else if (arcHorizontalBelow.isSelected()) currInt = 2; ep = ep.withSmartHorizontalPlacementArc(currInt); // set export changes currInt = 0; if (textSmartVerticalInside.isSelected()) currInt = 1; else if (textSmartVerticalOutside.isSelected()) currInt = 2; ep = ep.withSmartVerticalPlacementExport(currInt); currInt = 0; if (textSmartHorizontalInside.isSelected()) currInt = 1; else if (textSmartHorizontalOutside.isSelected()) currInt = 2; ep = ep.withSmartHorizontalPlacementExport(currInt); setEditingPreferences(ep); } /** * Method called when the factory reset is requested. */ @Override public void reset() { setEditingPreferences(getEditingPreferences().withPlacementReset()); } /** 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; arcVerticalGroup = new javax.swing.ButtonGroup(); arcHorizontalGroup = new javax.swing.ButtonGroup(); exportVerticalGroup = new javax.swing.ButtonGroup(); exportHorizontalGroup = new javax.swing.ButtonGroup(); text = new javax.swing.JPanel(); exportText = new javax.swing.JPanel(); jLabel56 = new javax.swing.JLabel(); textSmartVerticalOff = new javax.swing.JRadioButton(); textSmartVerticalInside = new javax.swing.JRadioButton(); textSmartVerticalOutside = new javax.swing.JRadioButton(); jLabel57 = new javax.swing.JLabel(); textSmartHorizontalOff = new javax.swing.JRadioButton(); textSmartHorizontalInside = new javax.swing.JRadioButton(); textSmartHorizontalOutside = new javax.swing.JRadioButton(); arcText = new javax.swing.JPanel(); jLabel58 = new javax.swing.JLabel(); arcVerticalInside = new javax.swing.JRadioButton(); arcVerticalLeft = new javax.swing.JRadioButton(); arcVerticalRight = new javax.swing.JRadioButton(); jLabel59 = new javax.swing.JLabel(); arcHorizontalInside = new javax.swing.JRadioButton(); arcHorizontalAbove = new javax.swing.JRadioButton(); arcHorizontalBelow = new javax.swing.JRadioButton(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); getContentPane().setLayout(new java.awt.GridBagLayout()); setTitle("Edit Options"); setName(""); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); text.setLayout(new java.awt.GridBagLayout()); exportText.setLayout(new java.awt.GridBagLayout()); exportText.setBorder(javax.swing.BorderFactory.createTitledBorder("Smart Placement of Export Text")); jLabel56.setText("Near cell top/bottom:"); 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, 2, 4); exportText.add(jLabel56, gridBagConstraints); exportVerticalGroup.add(textSmartVerticalOff); textSmartVerticalOff.setText("Off"); 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, 2, 4); exportText.add(textSmartVerticalOff, gridBagConstraints); exportVerticalGroup.add(textSmartVerticalInside); textSmartVerticalInside.setText("Inside"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 2, 4); exportText.add(textSmartVerticalInside, gridBagConstraints); exportVerticalGroup.add(textSmartVerticalOutside); textSmartVerticalOutside.setText("Outside"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 2, 4); exportText.add(textSmartVerticalOutside, gridBagConstraints); jLabel57.setText("Near cell left/right:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 4, 4, 4); exportText.add(jLabel57, gridBagConstraints); exportHorizontalGroup.add(textSmartHorizontalOff); textSmartHorizontalOff.setText("Off"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 4, 4, 4); exportText.add(textSmartHorizontalOff, gridBagConstraints); exportHorizontalGroup.add(textSmartHorizontalInside); textSmartHorizontalInside.setText("Inside"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 4, 4, 4); exportText.add(textSmartHorizontalInside, gridBagConstraints); exportHorizontalGroup.add(textSmartHorizontalOutside); textSmartHorizontalOutside.setText("Outside"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 4, 4, 4); exportText.add(textSmartHorizontalOutside, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; text.add(exportText, gridBagConstraints); arcText.setLayout(new java.awt.GridBagLayout()); arcText.setBorder(javax.swing.BorderFactory.createTitledBorder("Smart Placement of Arc Text")); jLabel58.setText("Vertical arcs:"); 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, 2, 4); arcText.add(jLabel58, gridBagConstraints); arcVerticalGroup.add(arcVerticalInside); arcVerticalInside.setText("Inside"); 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, 2, 4); arcText.add(arcVerticalInside, gridBagConstraints); arcVerticalGroup.add(arcVerticalLeft); arcVerticalLeft.setText("Left"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 2, 4); arcText.add(arcVerticalLeft, gridBagConstraints); arcVerticalGroup.add(arcVerticalRight); arcVerticalRight.setText("Right"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 2, 4); arcText.add(arcVerticalRight, gridBagConstraints); jLabel59.setText("Horizontal arcs:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 4, 4, 4); arcText.add(jLabel59, gridBagConstraints); arcHorizontalGroup.add(arcHorizontalInside); arcHorizontalInside.setText("Inside"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 4, 4, 4); arcText.add(arcHorizontalInside, gridBagConstraints); arcHorizontalGroup.add(arcHorizontalAbove); arcHorizontalAbove.setText("Above"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 4, 4, 4); arcText.add(arcHorizontalAbove, gridBagConstraints); arcHorizontalGroup.add(arcHorizontalBelow); arcHorizontalBelow.setText("Below"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 4, 4, 4); arcText.add(arcHorizontalBelow, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; text.add(arcText, gridBagConstraints); jLabel1.setText("Smart Text placement indicates the"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 1, 0); text.add(jLabel1, gridBagConstraints); jLabel2.setText("default location of new text"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(1, 4, 10, 0); text.add(jLabel2, gridBagConstraints); getContentPane().add(text, new java.awt.GridBagConstraints()); pack(); }// </editor-fold>//GEN-END:initComponents /** Closes the dialog */ private void closeDialog(java.awt.event.WindowEvent evt)//GEN-FIRST:event_closeDialog { setVisible(false); dispose(); }//GEN-LAST:event_closeDialog // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JRadioButton arcHorizontalAbove; private javax.swing.JRadioButton arcHorizontalBelow; private javax.swing.ButtonGroup arcHorizontalGroup; private javax.swing.JRadioButton arcHorizontalInside; private javax.swing.JPanel arcText; private javax.swing.ButtonGroup arcVerticalGroup; private javax.swing.JRadioButton arcVerticalInside; private javax.swing.JRadioButton arcVerticalLeft; private javax.swing.JRadioButton arcVerticalRight; private javax.swing.ButtonGroup exportHorizontalGroup; private javax.swing.JPanel exportText; private javax.swing.ButtonGroup exportVerticalGroup; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel56; private javax.swing.JLabel jLabel57; private javax.swing.JLabel jLabel58; private javax.swing.JLabel jLabel59; private javax.swing.JPanel text; private javax.swing.JRadioButton textSmartHorizontalInside; private javax.swing.JRadioButton textSmartHorizontalOff; private javax.swing.JRadioButton textSmartHorizontalOutside; private javax.swing.JRadioButton textSmartVerticalInside; private javax.swing.JRadioButton textSmartVerticalOff; private javax.swing.JRadioButton textSmartVerticalOutside; // End of variables declaration//GEN-END:variables }