⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proguardgui.java

📁 ProGuard 是一个免费的 Java类文件的压缩
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        browseButton.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent e)            {                tabbedPane.next();            }        });        return browseButton;    }    /**     * Creates a browse button that opens a file browser for the given text field.     */    private JButton createBrowseButton(final JTextField textField,                                       final String     title)    {        JButton browseButton = new JButton(msg("browse"));        browseButton.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent e)            {                fileChooser.setDialogTitle(title);                fileChooser.setSelectedFile(new File(textField.getText()));                int returnVal = fileChooser.showDialog(ProGuardGUI.this, msg("ok"));                if (returnVal == JFileChooser.APPROVE_OPTION)                {                    textField.setText(fileChooser.getSelectedFile().getPath());                }            }        });        return browseButton;    }    /**     * Sets the preferred sizes of the given components to the maximum of their     * current preferred sizes.     */    private void setCommonPreferredSize(List components)    {        // Find the maximum preferred size.        Dimension maximumSize = null;        for (int index = 0; index < components.size(); index++)        {            JComponent component = (JComponent)components.get(index);            Dimension  size      = component.getPreferredSize();            if (maximumSize == null ||                size.getWidth() > maximumSize.getWidth())            {                maximumSize = size;            }        }        // Set the size that we found as the preferred size for all components.        for (int index = 0; index < components.size(); index++)        {            JComponent component = (JComponent)components.get(index);            component.setPreferredSize(maximumSize);        }    }    /**     * Updates to GUI settings to reflect the given ProGuard configuration.     */    private void setProGuardConfiguration(Configuration configuration)    {        // Set up the input and output jars and directories.        programPanel.setClassPath(configuration.programJars);        libraryPanel.setClassPath(configuration.libraryJars);        // Set up the boilerplate keep options.        for (int index = 0; index < boilerplateKeep.length; index++)        {            String classNames =                findMatchingKeepSpecifications(boilerplateKeep[index],                                               configuration.keep);            boilerplateKeepCheckBoxes[index].setSelected(classNames != null);            boilerplateKeepTextFields[index].setText(classNames == null ? "*" : classNames);        }        // Set up the boilerplate keep names options.        for (int index = 0; index < boilerplateKeepNames.length; index++)        {            String classNames =                findMatchingKeepSpecifications(boilerplateKeepNames[index],                                               configuration.keep);            boilerplateKeepNamesCheckBoxes[index].setSelected(classNames != null);            boilerplateKeepNamesTextFields[index].setText(classNames == null ? "*" : classNames);        }        // Set up the additional keep options. Note that the matched boilerplate        // options have been removed from the list.        additionalKeepPanel.setClassSpecifications(filteredKeepSpecifications(configuration.keep,                                                                              false));        // Set up the additional keep options. Note that the matched boilerplate        // options have been removed from the list.        additionalKeepNamesPanel.setClassSpecifications(filteredKeepSpecifications(configuration.keep,                                                                                   true));        // Set up the boilerplate "no side effect methods" options.        for (int index = 0; index < boilerplateNoSideEffectMethods.length; index++)        {            boolean found =                findClassSpecification(boilerplateNoSideEffectMethods[index],                                       configuration.assumeNoSideEffects);            boilerplateNoSideEffectMethodCheckBoxes[index].setSelected(found);        }        // Set up the additional keep options. Note that the matched boilerplate        // options have been removed from the list.        additionalNoSideEffectsPanel.setClassSpecifications(configuration.assumeNoSideEffects);        // Set up the "why are you keeping" options.        whyAreYouKeepingPanel.setClassSpecifications(configuration.whyAreYouKeeping);        // Set up the other options.        shrinkCheckBox                          .setSelected(configuration.shrink);        printUsageCheckBox                      .setSelected(configuration.printUsage              != null);        optimizeCheckBox                        .setSelected(configuration.optimize);        optimizationPassesSpinner.getModel()    .setValue(new Integer(configuration.optimizationPasses));        allowAccessModificationCheckBox         .setSelected(configuration.allowAccessModification);        obfuscateCheckBox                       .setSelected(configuration.obfuscate);        printMappingCheckBox                    .setSelected(configuration.printMapping              != null);        applyMappingCheckBox                    .setSelected(configuration.applyMapping              != null);        obfuscationDictionaryCheckBox           .setSelected(configuration.obfuscationDictionary     != null);        overloadAggressivelyCheckBox            .setSelected(configuration.overloadAggressively);        useUniqueClassMemberNamesCheckBox       .setSelected(configuration.useUniqueClassMemberNames);        useMixedCaseClassNamesCheckBox          .setSelected(configuration.useMixedCaseClassNames);        flattenPackageHierarchyCheckBox         .setSelected(configuration.flattenPackageHierarchy   != null);        repackageClassesCheckBox                .setSelected(configuration.repackageClasses          != null);        keepAttributesCheckBox                  .setSelected(configuration.keepAttributes            != null);        newSourceFileAttributeCheckBox          .setSelected(configuration.newSourceFileAttribute    != null);        adaptResourceFileNamesCheckBox          .setSelected(configuration.adaptResourceFileNames    != null);        adaptResourceFileContentsCheckBox       .setSelected(configuration.adaptResourceFileContents != null);        preverifyCheckBox                       .setSelected(configuration.preverify);        microEditionCheckBox                    .setSelected(configuration.microEdition);        targetCheckBox                          .setSelected(configuration.targetClassVersion != 0);        verboseCheckBox                         .setSelected(configuration.verbose);        noteCheckBox                            .setSelected(configuration.note);        warnCheckBox                            .setSelected(configuration.warn);        ignoreWarningsCheckBox                  .setSelected(configuration.ignoreWarnings);        skipNonPublicLibraryClassesCheckBox     .setSelected(configuration.skipNonPublicLibraryClasses);        skipNonPublicLibraryClassMembersCheckBox.setSelected(configuration.skipNonPublicLibraryClassMembers);        forceProcessingCheckBox                 .setSelected(configuration.lastModified == Long.MAX_VALUE);        printSeedsCheckBox                      .setSelected(configuration.printSeeds              != null);        printConfigurationCheckBox              .setSelected(configuration.printConfiguration      != null);        dumpCheckBox                            .setSelected(configuration.dump                    != null);        printUsageTextField                     .setText(fileName(configuration.printUsage));        printMappingTextField                   .setText(fileName(configuration.printMapping));        applyMappingTextField                   .setText(fileName(configuration.applyMapping));        obfuscationDictionaryTextField          .setText(fileName(configuration.obfuscationDictionary));        flattenPackageHierarchyTextField        .setText(configuration.flattenPackageHierarchy);        repackageClassesTextField               .setText(configuration.repackageClasses);        keepAttributesTextField                 .setText(configuration.keepAttributes            == null ? KEEP_ATTRIBUTE_DEFAULT               : ListUtil.commaSeparatedString(configuration.keepAttributes));        newSourceFileAttributeTextField         .setText(configuration.newSourceFileAttribute    == null ? SOURCE_FILE_ATTRIBUTE_DEFAULT        : configuration.newSourceFileAttribute);        adaptResourceFileNamesTextField         .setText(configuration.adaptResourceFileNames    == null ? ADAPT_RESOURCE_FILE_NAMES_DEFAULT    : ListUtil.commaSeparatedString(configuration.adaptResourceFileNames));        adaptResourceFileContentsTextField      .setText(configuration.adaptResourceFileContents == null ? ADAPT_RESOURCE_FILE_CONTENTS_DEFAULT : ListUtil.commaSeparatedString(configuration.adaptResourceFileContents));        printSeedsTextField                     .setText(fileName(configuration.printSeeds));        printConfigurationTextField             .setText(fileName(configuration.printConfiguration));        dumpTextField                           .setText(fileName(configuration.dump));        if (configuration.targetClassVersion != 0)        {            targetComboBox.setSelectedItem(ClassUtil.externalClassVersion(configuration.targetClassVersion));        }        else        {            targetComboBox.setSelectedIndex(targetComboBox.getItemCount() - 1);        }        if (configuration.printMapping != null)        {            reTraceMappingTextField.setText(fileName(configuration.printMapping));        }    }    /**     * Returns the ProGuard configuration that reflects the current GUI settings.     */    private Configuration getProGuardConfiguration()    {        Configuration configuration = new Configuration();        // Get the input and output jars and directories.        configuration.programJars = programPanel.getClassPath();        configuration.libraryJars = libraryPanel.getClassPath();        List keep = new ArrayList();        // Collect the additional keep options.        List additionalKeep = additionalKeepPanel.getClassSpecifications();        if (additionalKeep != null)        {            keep.addAll(additionalKeep);        }        // Collect the additional keep names options.        List additionalKeepNames = additionalKeepNamesPanel.getClassSpecifications();        if (additionalKeepNames != null)        {            keep.addAll(additionalKeepNames);        }        // Collect the boilerplate keep options.        for (int index = 0; index < boilerplateKeep.length; index++)        {            if (boilerplateKeepCheckBoxes[index].isSelected())            {                keep.add(classSpecification(boilerplateKeep[index],                                            boilerplateKeepTextFields[index].getText()));            }        }        // Collect the boilerplate keep names options.        for (int index = 0; index < boilerplateKeepNames.length; index++)        {            if (boilerplateKeepNamesCheckBoxes[index].isSelected())            {                keep.add(classSpecification(boilerplateKeepNames[index],                                            boilerplateKeepNamesTextFields[index].getText()));            }        }        // Put the list of keep specifications in the configuration.        if (keep.size() > 0)        {            configuration.keep = keep;        }        // Collect the boilerplate "no side effect methods" options.        List noSideEffectMethods = new ArrayList();        for (int index = 0; index < boilerplateNoSideEffectMethods.length; index++)        {            if (boilerplateNoSideEffectMethodCheckBoxes[index].isSelected())            {                noSideEffectMethods.add(boilerplateNoSideEffectMethods[index]);            }        }        // Collect the additional "no side effect methods" options.        List additionalNoSideEffectOptions = additionalNoSideEffectsPanel.getClassSpecifications();        if (additionalNoSideEffectOptions != null)        {            noSideEffectMethods.addAll(additionalNoSideEffectOptions);        }        // Put the list of "no side effect methods" options in the configuration.        if (noSideEffectMethods.size() > 0)        {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -