summaryrefslogtreecommitdiff
path: root/src/proguard/gui/ClassSpecificationDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/proguard/gui/ClassSpecificationDialog.java')
-rw-r--r--src/proguard/gui/ClassSpecificationDialog.java562
1 files changed, 0 insertions, 562 deletions
diff --git a/src/proguard/gui/ClassSpecificationDialog.java b/src/proguard/gui/ClassSpecificationDialog.java
deleted file mode 100644
index f6686ec..0000000
--- a/src/proguard/gui/ClassSpecificationDialog.java
+++ /dev/null
@@ -1,562 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program 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 2 of the License, or (at your option)
- * any later version.
- *
- * This program 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 this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.gui;
-
-import proguard.*;
-import proguard.classfile.ClassConstants;
-import proguard.classfile.util.ClassUtil;
-
-import javax.swing.*;
-import javax.swing.border.*;
-import java.awt.*;
-import java.awt.event.*;
-import java.util.List;
-
-/**
- * This <code>JDialog</code> allows the user to enter a String.
- *
- * @author Eric Lafortune
- */
-final class ClassSpecificationDialog extends JDialog
-{
- /**
- * Return value if the dialog is canceled (with the Cancel button or by
- * closing the dialog window).
- */
- public static final int CANCEL_OPTION = 1;
-
- /**
- * Return value if the dialog is approved (with the Ok button).
- */
- public static final int APPROVE_OPTION = 0;
-
-
- private final JTextArea commentsTextArea = new JTextArea(4, 20);
-
- private final JRadioButton keepClassesAndMembersRadioButton = new JRadioButton(msg("keep"));
- private final JRadioButton keepClassMembersRadioButton = new JRadioButton(msg("keepClassMembers"));
- private final JRadioButton keepClassesWithMembersRadioButton = new JRadioButton(msg("keepClassesWithMembers"));
-
- private final JCheckBox keepDescriptorClassesCheckBox = new JCheckBox(msg("keepDescriptorClasses"));
-
- private final JCheckBox allowShrinkingCheckBox = new JCheckBox(msg("allowShrinking"));
- private final JCheckBox allowOptimizationCheckBox = new JCheckBox(msg("allowOptimization"));
- private final JCheckBox allowObfuscationCheckBox = new JCheckBox(msg("allowObfuscation"));
-
-
- private final JRadioButton[] publicRadioButtons;
- private final JRadioButton[] finalRadioButtons;
- private final JRadioButton[] abstractRadioButtons;
- private final JRadioButton[] interfaceRadioButtons;
- private final JRadioButton[] annotationRadioButtons;
- private final JRadioButton[] enumRadioButtons;
- private final JRadioButton[] syntheticRadioButtons;
-
- private final JTextField annotationTypeTextField = new JTextField(20);
- private final JTextField classNameTextField = new JTextField(20);
- private final JTextField extendsAnnotationTypeTextField = new JTextField(20);
- private final JTextField extendsClassNameTextField = new JTextField(20);
-
- private final MemberSpecificationsPanel memberSpecificationsPanel;
-
- private int returnValue;
-
-
- public ClassSpecificationDialog(JFrame owner, boolean fullKeepOptions)
- {
- super(owner, msg("specifyClasses"), true);
- setResizable(true);
-
- // Create some constraints that can be reused.
- GridBagConstraints constraints = new GridBagConstraints();
- constraints.anchor = GridBagConstraints.WEST;
- constraints.insets = new Insets(1, 2, 1, 2);
-
- GridBagConstraints constraintsStretch = new GridBagConstraints();
- constraintsStretch.fill = GridBagConstraints.HORIZONTAL;
- constraintsStretch.weightx = 1.0;
- constraintsStretch.anchor = GridBagConstraints.WEST;
- constraintsStretch.insets = constraints.insets;
-
- GridBagConstraints constraintsLast = new GridBagConstraints();
- constraintsLast.gridwidth = GridBagConstraints.REMAINDER;
- constraintsLast.anchor = GridBagConstraints.WEST;
- constraintsLast.insets = constraints.insets;
-
- GridBagConstraints constraintsLastStretch = new GridBagConstraints();
- constraintsLastStretch.gridwidth = GridBagConstraints.REMAINDER;
- constraintsLastStretch.fill = GridBagConstraints.HORIZONTAL;
- constraintsLastStretch.weightx = 1.0;
- constraintsLastStretch.anchor = GridBagConstraints.WEST;
- constraintsLastStretch.insets = constraints.insets;
-
- GridBagConstraints panelConstraints = new GridBagConstraints();
- panelConstraints.gridwidth = GridBagConstraints.REMAINDER;
- panelConstraints.fill = GridBagConstraints.HORIZONTAL;
- panelConstraints.weightx = 1.0;
- panelConstraints.weighty = 0.0;
- panelConstraints.anchor = GridBagConstraints.NORTHWEST;
- panelConstraints.insets = constraints.insets;
-
- GridBagConstraints stretchPanelConstraints = new GridBagConstraints();
- stretchPanelConstraints.gridwidth = GridBagConstraints.REMAINDER;
- stretchPanelConstraints.fill = GridBagConstraints.BOTH;
- stretchPanelConstraints.weightx = 1.0;
- stretchPanelConstraints.weighty = 1.0;
- stretchPanelConstraints.anchor = GridBagConstraints.NORTHWEST;
- stretchPanelConstraints.insets = constraints.insets;
-
- GridBagConstraints labelConstraints = new GridBagConstraints();
- labelConstraints.anchor = GridBagConstraints.CENTER;
- labelConstraints.insets = new Insets(2, 10, 2, 10);
-
- GridBagConstraints lastLabelConstraints = new GridBagConstraints();
- lastLabelConstraints.gridwidth = GridBagConstraints.REMAINDER;
- lastLabelConstraints.anchor = GridBagConstraints.CENTER;
- lastLabelConstraints.insets = labelConstraints.insets;
-
- GridBagConstraints advancedButtonConstraints = new GridBagConstraints();
- advancedButtonConstraints.weightx = 1.0;
- advancedButtonConstraints.weighty = 1.0;
- advancedButtonConstraints.anchor = GridBagConstraints.SOUTHWEST;
- advancedButtonConstraints.insets = new Insets(4, 4, 8, 4);
-
- GridBagConstraints okButtonConstraints = new GridBagConstraints();
- okButtonConstraints.weightx = 1.0;
- okButtonConstraints.weighty = 1.0;
- okButtonConstraints.anchor = GridBagConstraints.SOUTHEAST;
- okButtonConstraints.insets = advancedButtonConstraints.insets;
-
- GridBagConstraints cancelButtonConstraints = new GridBagConstraints();
- cancelButtonConstraints.gridwidth = GridBagConstraints.REMAINDER;
- cancelButtonConstraints.weighty = 1.0;
- cancelButtonConstraints.anchor = GridBagConstraints.SOUTHEAST;
- cancelButtonConstraints.insets = advancedButtonConstraints.insets;
-
- GridBagLayout layout = new GridBagLayout();
-
- Border etchedBorder = BorderFactory.createEtchedBorder(EtchedBorder.RAISED);
-
- // Create the comments panel.
- JPanel commentsPanel = new JPanel(layout);
- commentsPanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,
- msg("comments")));
-
- JScrollPane commentsScrollPane = new JScrollPane(commentsTextArea);
- commentsScrollPane.setBorder(classNameTextField.getBorder());
-
- commentsPanel.add(tip(commentsScrollPane, "commentsTip"), constraintsLastStretch);
-
- // Create the keep option panel.
- ButtonGroup keepButtonGroup = new ButtonGroup();
- keepButtonGroup.add(keepClassesAndMembersRadioButton);
- keepButtonGroup.add(keepClassMembersRadioButton);
- keepButtonGroup.add(keepClassesWithMembersRadioButton);
-
- JPanel keepOptionPanel = new JPanel(layout);
- keepOptionPanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,
- msg("keepTitle")));
-
- keepOptionPanel.add(tip(keepClassesAndMembersRadioButton, "keepTip"), constraintsLastStretch);
- keepOptionPanel.add(tip(keepClassMembersRadioButton, "keepClassMembersTip"), constraintsLastStretch);
- keepOptionPanel.add(tip(keepClassesWithMembersRadioButton, "keepClassesWithMembersTip"), constraintsLastStretch);
- keepOptionPanel.add(tip(keepDescriptorClassesCheckBox, "keepDescriptorClassesTip"), constraintsLastStretch);
-
- // Create the also keep panel.
- final JPanel alsoKeepOptionPanel = new JPanel(layout);
- alsoKeepOptionPanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,
- msg("alsoKeepTitle")));
-
- alsoKeepOptionPanel.add(tip(keepDescriptorClassesCheckBox, "keepDescriptorClassesTip"), constraintsLastStretch);
-
- // Create the allow option panel.
- final JPanel allowOptionPanel = new JPanel(layout);
- allowOptionPanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,
- msg("allowTitle")));
-
- allowOptionPanel.add(tip(allowShrinkingCheckBox, "allowShrinkingTip"), constraintsLastStretch);
- allowOptionPanel.add(tip(allowOptimizationCheckBox, "allowOptimizationTip"), constraintsLastStretch);
- allowOptionPanel.add(tip(allowObfuscationCheckBox, "allowObfuscationTip"), constraintsLastStretch);
-
- // Create the access panel.
- JPanel accessPanel = new JPanel(layout);
- accessPanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,
- msg("access")));
-
- accessPanel.add(Box.createGlue(), labelConstraints);
- accessPanel.add(tip(new JLabel(msg("required")), "requiredTip"), labelConstraints);
- accessPanel.add(tip(new JLabel(msg("not")), "notTip"), labelConstraints);
- accessPanel.add(tip(new JLabel(msg("dontCare")), "dontCareTip"), labelConstraints);
- accessPanel.add(Box.createGlue(), constraintsLastStretch);
-
- publicRadioButtons = addRadioButtonTriplet("Public", accessPanel);
- finalRadioButtons = addRadioButtonTriplet("Final", accessPanel);
- abstractRadioButtons = addRadioButtonTriplet("Abstract", accessPanel);
- interfaceRadioButtons = addRadioButtonTriplet("Interface", accessPanel);
- annotationRadioButtons = addRadioButtonTriplet("Annotation", accessPanel);
- enumRadioButtons = addRadioButtonTriplet("Enum", accessPanel);
- syntheticRadioButtons = addRadioButtonTriplet("Synthetic", accessPanel);
-
- // Create the annotation type panel.
- final JPanel annotationTypePanel = new JPanel(layout);
- annotationTypePanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,
- msg("annotation")));
-
- annotationTypePanel.add(tip(annotationTypeTextField, "classNameTip"), constraintsLastStretch);
-
- // Create the class name panel.
- JPanel classNamePanel = new JPanel(layout);
- classNamePanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,
- msg("class")));
-
- classNamePanel.add(tip(classNameTextField, "classNameTip"), constraintsLastStretch);
-
- // Create the extends annotation type panel.
- final JPanel extendsAnnotationTypePanel = new JPanel(layout);
- extendsAnnotationTypePanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,
- msg("extendsImplementsAnnotation")));
-
- extendsAnnotationTypePanel.add(tip(extendsAnnotationTypeTextField, "classNameTip"), constraintsLastStretch);
-
- // Create the extends class name panel.
- JPanel extendsClassNamePanel = new JPanel(layout);
- extendsClassNamePanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,
- msg("extendsImplementsClass")));
-
- extendsClassNamePanel.add(tip(extendsClassNameTextField, "classNameTip"), constraintsLastStretch);
-
-
- // Create the class member list panel.
- memberSpecificationsPanel = new MemberSpecificationsPanel(this, fullKeepOptions);
- memberSpecificationsPanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,
- msg("classMembers")));
-
- // Create the Advanced button.
- final JButton advancedButton = new JButton(msg("basic"));
- advancedButton.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- boolean visible = !alsoKeepOptionPanel.isVisible();
-
- alsoKeepOptionPanel .setVisible(visible);
- allowOptionPanel .setVisible(visible);
- annotationTypePanel .setVisible(visible);
- extendsAnnotationTypePanel.setVisible(visible);
-
- advancedButton.setText(msg(visible ? "basic" : "advanced"));
-
- pack();
- }
- });
- advancedButton.doClick();
-
- // Create the Ok button.
- JButton okButton = new JButton(msg("ok"));
- okButton.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- returnValue = APPROVE_OPTION;
- hide();
- }
- });
-
- // Create the Cancel button.
- JButton cancelButton = new JButton(msg("cancel"));
- cancelButton.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- hide();
- }
- });
-
- // Add all panels to the main panel.
- JPanel mainPanel = new JPanel(layout);
- mainPanel.add(tip(commentsPanel, "commentsTip"), panelConstraints);
- if (fullKeepOptions)
- {
- mainPanel.add(tip(keepOptionPanel, "keepTitleTip"), panelConstraints);
- mainPanel.add(tip(alsoKeepOptionPanel, "alsoKeepTitleTip"), panelConstraints);
- mainPanel.add(tip(allowOptionPanel, "allowTitleTip"), panelConstraints);
- }
- mainPanel.add(tip(accessPanel, "accessTip"), panelConstraints);
- mainPanel.add(tip(annotationTypePanel, "annotationTip"), panelConstraints);
- mainPanel.add(tip(classNamePanel, "classTip"), panelConstraints);
- mainPanel.add(tip(extendsAnnotationTypePanel, "extendsImplementsAnnotationTip"), panelConstraints);
- mainPanel.add(tip(extendsClassNamePanel, "extendsImplementsClassTip"), panelConstraints);
- mainPanel.add(tip(memberSpecificationsPanel, "classMembersTip"), stretchPanelConstraints);
-
- mainPanel.add(tip(advancedButton, "advancedTip"), advancedButtonConstraints);
- mainPanel.add(okButton, okButtonConstraints);
- mainPanel.add(cancelButton, cancelButtonConstraints);
-
- getContentPane().add(new JScrollPane(mainPanel));
- }
-
-
- /**
- * Adds a JLabel and three JRadioButton instances in a ButtonGroup to the
- * given panel with a GridBagLayout, and returns the buttons in an array.
- */
- private JRadioButton[] addRadioButtonTriplet(String labelText,
- JPanel panel)
- {
- GridBagConstraints labelConstraints = new GridBagConstraints();
- labelConstraints.anchor = GridBagConstraints.WEST;
- labelConstraints.insets = new Insets(2, 10, 2, 10);
-
- GridBagConstraints buttonConstraints = new GridBagConstraints();
- buttonConstraints.insets = labelConstraints.insets;
-
- GridBagConstraints lastGlueConstraints = new GridBagConstraints();
- lastGlueConstraints.gridwidth = GridBagConstraints.REMAINDER;
- lastGlueConstraints.weightx = 1.0;
-
- // Create the radio buttons.
- JRadioButton radioButton0 = new JRadioButton();
- JRadioButton radioButton1 = new JRadioButton();
- JRadioButton radioButton2 = new JRadioButton();
-
- // Put them in a button group.
- ButtonGroup buttonGroup = new ButtonGroup();
- buttonGroup.add(radioButton0);
- buttonGroup.add(radioButton1);
- buttonGroup.add(radioButton2);
-
- // Add the label and the buttons to the panel.
- panel.add(new JLabel(labelText), labelConstraints);
- panel.add(radioButton0, buttonConstraints);
- panel.add(radioButton1, buttonConstraints);
- panel.add(radioButton2, buttonConstraints);
- panel.add(Box.createGlue(), lastGlueConstraints);
-
- return new JRadioButton[]
- {
- radioButton0,
- radioButton1,
- radioButton2
- };
- }
-
-
- /**
- * Sets the KeepClassSpecification to be represented in this dialog.
- */
- public void setKeepSpecification(KeepClassSpecification keepClassSpecification)
- {
- boolean markClasses = keepClassSpecification.markClasses;
- boolean markConditionally = keepClassSpecification.markConditionally;
- boolean markDescriptorClasses = keepClassSpecification.markDescriptorClasses;
- boolean allowShrinking = keepClassSpecification.allowShrinking;
- boolean allowOptimization = keepClassSpecification.allowOptimization;
- boolean allowObfuscation = keepClassSpecification.allowObfuscation;
-
- // Figure out the proper keep radio button and set it.
- JRadioButton keepOptionRadioButton =
- markConditionally ? keepClassesWithMembersRadioButton :
- markClasses ? keepClassesAndMembersRadioButton :
- keepClassMembersRadioButton;
-
- keepOptionRadioButton.setSelected(true);
-
- // Set the other check boxes.
- keepDescriptorClassesCheckBox.setSelected(markDescriptorClasses);
- allowShrinkingCheckBox .setSelected(allowShrinking);
- allowOptimizationCheckBox .setSelected(allowOptimization);
- allowObfuscationCheckBox .setSelected(allowObfuscation);
-
- setClassSpecification(keepClassSpecification);
- }
-
-
- /**
- * Sets the ClassSpecification to be represented in this dialog.
- */
- public void setClassSpecification(ClassSpecification classSpecification)
- {
- String comments = classSpecification.comments;
- String annotationType = classSpecification.annotationType;
- String className = classSpecification.className;
- String extendsAnnotationType = classSpecification.extendsAnnotationType;
- String extendsClassName = classSpecification.extendsClassName;
- List keepFieldOptions = classSpecification.fieldSpecifications;
- List keepMethodOptions = classSpecification.methodSpecifications;
-
- // Set the comments text area.
- commentsTextArea.setText(comments == null ? "" : comments);
-
- // Set the access radio buttons.
- setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_PUBLIC, publicRadioButtons);
- setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_FINAL, finalRadioButtons);
- setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ABSTRACT, abstractRadioButtons);
- setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_INTERFACE, interfaceRadioButtons);
- setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ANNOTATTION, annotationRadioButtons);
- setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ENUM, enumRadioButtons);
- setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_SYNTHETIC, syntheticRadioButtons);
-
- // Set the class and annotation text fields.
- annotationTypeTextField .setText(annotationType == null ? "" : ClassUtil.externalType(annotationType));
- classNameTextField .setText(className == null ? "*" : ClassUtil.externalClassName(className));
- extendsAnnotationTypeTextField.setText(extendsAnnotationType == null ? "" : ClassUtil.externalType(extendsAnnotationType));
- extendsClassNameTextField .setText(extendsClassName == null ? "" : ClassUtil.externalClassName(extendsClassName));
-
- // Set the keep class member option list.
- memberSpecificationsPanel.setMemberSpecifications(keepFieldOptions, keepMethodOptions);
- }
-
-
- /**
- * Returns the KeepClassSpecification currently represented in this dialog.
- */
- public KeepClassSpecification getKeepSpecification()
- {
- boolean markClasses = !keepClassMembersRadioButton .isSelected();
- boolean markConditionally = keepClassesWithMembersRadioButton.isSelected();
- boolean markDescriptorClasses = keepDescriptorClassesCheckBox .isSelected();
- boolean allowShrinking = allowShrinkingCheckBox .isSelected();
- boolean allowOptimization = allowOptimizationCheckBox .isSelected();
- boolean allowObfuscation = allowObfuscationCheckBox .isSelected();
-
- return new KeepClassSpecification(markClasses,
- markConditionally,
- markDescriptorClasses,
- allowShrinking,
- allowOptimization,
- allowObfuscation,
- getClassSpecification());
- }
-
-
- /**
- * Returns the ClassSpecification currently represented in this dialog.
- */
- public ClassSpecification getClassSpecification()
- {
- String comments = commentsTextArea.getText();
- String annotationType = annotationTypeTextField.getText();
- String className = classNameTextField.getText();
- String extendsAnnotationType = extendsAnnotationTypeTextField.getText();
- String extendsClassName = extendsClassNameTextField.getText();
-
- ClassSpecification classSpecification =
- new ClassSpecification(comments.equals("") ? null : comments,
- 0,
- 0,
- annotationType.equals("") ? null : ClassUtil.internalType(annotationType),
- className.equals("") ||
- className.equals("*") ? null : ClassUtil.internalClassName(className),
- extendsAnnotationType.equals("") ? null : ClassUtil.internalType(extendsAnnotationType),
- extendsClassName.equals("") ? null : ClassUtil.internalClassName(extendsClassName));
-
- // Also get the access radio button settings.
- getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_PUBLIC, publicRadioButtons);
- getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_FINAL, finalRadioButtons);
- getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ABSTRACT, abstractRadioButtons);
- getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_INTERFACE, interfaceRadioButtons);
- getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ANNOTATTION, annotationRadioButtons);
- getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ENUM, enumRadioButtons);
- getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_SYNTHETIC, syntheticRadioButtons);
-
- // Get the keep class member option lists.
- classSpecification.fieldSpecifications = memberSpecificationsPanel.getMemberSpecifications(true);
- classSpecification.methodSpecifications = memberSpecificationsPanel.getMemberSpecifications(false);
-
- return classSpecification;
- }
-
-
- /**
- * Shows this dialog. This method only returns when the dialog is closed.
- *
- * @return <code>CANCEL_OPTION</code> or <code>APPROVE_OPTION</code>,
- * depending on the choice of the user.
- */
- public int showDialog()
- {
- returnValue = CANCEL_OPTION;
-
- // Open the dialog in the right place, then wait for it to be closed,
- // one way or another.
- pack();
- setLocationRelativeTo(getOwner());
- show();
-
- return returnValue;
- }
-
-
- /**
- * Sets the appropriate radio button of a given triplet, based on the access
- * flags of the given keep option.
- */
- private void setClassSpecificationRadioButtons(ClassSpecification classSpecification,
- int flag,
- JRadioButton[] radioButtons)
- {
- int index = (classSpecification.requiredSetAccessFlags & flag) != 0 ? 0 :
- (classSpecification.requiredUnsetAccessFlags & flag) != 0 ? 1 :
- 2;
- radioButtons[index].setSelected(true);
- }
-
-
- /**
- * Updates the access flag of the given keep option, based on the given radio
- * button triplet.
- */
- private void getClassSpecificationRadioButtons(ClassSpecification classSpecification,
- int flag,
- JRadioButton[] radioButtons)
- {
- if (radioButtons[0].isSelected())
- {
- classSpecification.requiredSetAccessFlags |= flag;
- }
- else if (radioButtons[1].isSelected())
- {
- classSpecification.requiredUnsetAccessFlags |= flag;
- }
- }
-
-
- /**
- * Attaches the tool tip from the GUI resources that corresponds to the
- * given key, to the given component.
- */
- private static JComponent tip(JComponent component, String messageKey)
- {
- component.setToolTipText(msg(messageKey));
-
- return component;
- }
-
-
- /**
- * Returns the message from the GUI resources that corresponds to the given
- * key.
- */
- private static String msg(String messageKey)
- {
- return GUIResources.getMessage(messageKey);
- }
-}