Release 4.2.5.2.0

git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@6993 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
Torsten Kleiber
2009-10-17 13:37:59 +00:00
parent 2121e42d21
commit 1bc5759ec9
11 changed files with 188 additions and 83 deletions

View File

@ -3,18 +3,18 @@
<property name="config" value="config/"/> <property name="config" value="config/"/>
<property name="src" value="src/"/> <property name="src" value="src/"/>
<property name="etc" value="etc/"/> <property name="etc" value="etc/"/>
<property name="pmdjar" value="pmd-4.2.4.jar"/> <property name="pmdjar" value="pmd-4.2.5.jar"/>
<!-- first to third number for the pmd plugin --> <!-- first to third number for the pmd plugin -->
<!-- fourth number JDeveloper Version 1:9.0.5-10.1.2, 2:10.1.3, 3:11.1.1 --> <!-- fourth number JDeveloper Version 1:9.0.5-10.1.2, 2:10.1.3, 3:11.1.1 -->
<!-- fifth number minor version number for the JDeveloper Plugin --> <!-- fifth number minor version number for the JDeveloper Plugin -->
<property name="pluginversion" value="4.2.4.2.0"/> <property name="pluginversion" value="4.2.5.2.0"/>
<property name="mainclass" value="net.sourceforge.pmd.jdeveloper"/> <property name="mainclass" value="net.sourceforge.pmd.jdeveloper"/>
<property name="jdeveloper.dir" value="C:/Oracle/10gJD10134"/> <property name="jdeveloper.dir" value="C:/Oracle/10gJD10135"/>
<property name="jdeveloper.ext.subdir" value="jdev/extensions"/> <property name="jdeveloper.ext.subdir" value="jdev/extensions"/>
<property name="release.dir" <property name="release.dir"
value="C:/Documents and Settings/Torsten/My Documents/Eigene Programme/Java/PMD/releases"/> value="C:/Documents and Settings/Torsten/My Documents/Eigene Programme/Java/PMD/releases"/>
<property name="uploadbundle.scp.user" value=""/> <property name="uploadbundle.scp.user" value="***"/>
<property name="uploadbundle.scp.pwd" value=""/> <property name="uploadbundle.scp.pwd" value="***"/>
<property name="upload.ftp.pwd" value=""/> <property name="upload.ftp.pwd" value=""/>
<!-- builded properties --> <!-- builded properties -->
<property name="release.dirname" value="${mainclass}.${pluginversion}"/> <property name="release.dirname" value="${mainclass}.${pluginversion}"/>
@ -68,6 +68,10 @@
todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/lib"/> todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/lib"/>
<copy file="lib/asm-3.1.jar" <copy file="lib/asm-3.1.jar"
todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/lib"/> todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/lib"/>
<copy file="conf/pmd.plugin.properties"
todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/conf"/>
<copy file="conf/pmd.rule.properties"
todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/conf"/>
</target> </target>
<target name="release" depends="clean,jar"> <target name="release" depends="clean,jar">
<mkdir dir="tmp/${release.dirname}/lib"/> <mkdir dir="tmp/${release.dirname}/lib"/>
@ -75,6 +79,8 @@
<copy file="lib/${pmdjar}" todir="tmp/${release.dirname}/lib"/> <copy file="lib/${pmdjar}" todir="tmp/${release.dirname}/lib"/>
<copy file="lib/jaxen-1.1.1.jar" todir="tmp/${release.dirname}/lib"/> <copy file="lib/jaxen-1.1.1.jar" todir="tmp/${release.dirname}/lib"/>
<copy file="lib/asm-3.1.jar" todir="tmp/${release.dirname}/lib"/> <copy file="lib/asm-3.1.jar" todir="tmp/${release.dirname}/lib"/>
<copy file="conf/pmd.plugin.properties" todir="tmp/${release.dirname}/conf"/>
<copy file="conf/pmd.rule.properties" todir="tmp/${release.dirname}/conf"/>
<zip destfile="${release.zipname}" basedir="tmp/"/> <zip destfile="${release.zipname}" basedir="tmp/"/>
<move file="${release.zipname}" todir="${release.dir}"/> <move file="${release.zipname}" todir="${release.dir}"/>
<delete dir="tmp"/> <delete dir="tmp"/>
@ -102,6 +108,10 @@
todir="update-center-bundle/${mainclass}.${pluginversion}/lib/"/> todir="update-center-bundle/${mainclass}.${pluginversion}/lib/"/>
<copy file="lib/asm-3.1.jar" <copy file="lib/asm-3.1.jar"
todir="update-center-bundle/${mainclass}.${pluginversion}/lib/"/> todir="update-center-bundle/${mainclass}.${pluginversion}/lib/"/>
<copy file="conf/pmd.plugin.properties"
todir="update-center-bundle/${mainclass}.${pluginversion}/conf"/>
<copy file="conf/pmd.rule.properties"
todir="update-center-bundle/${mainclass}.${pluginversion}/conf"/>
<zip destfile="update-center-bundle/${bundle.filename}" <zip destfile="update-center-bundle/${bundle.filename}"
basedir="update-center-bundle"> basedir="update-center-bundle">
<exclude name="center.xml"/> <exclude name="center.xml"/>
@ -124,7 +134,7 @@
<target name="uploadbundle" depends="bundle"> <target name="uploadbundle" depends="bundle">
<echo message="Uploading center.xml file"></echo> <echo message="Uploading center.xml file"></echo>
<scp file="${release.dir}/update-center-bundle/center.xml" <scp file="${release.dir}/update-center-bundle/center.xml"
todir="${uploadbundle.scp.user}@pmd.sourceforge.net:/home/groups/p/pm/pmd/htdocs/" todir="${uploadbundle.scp.user},pmd@frs.sourceforge.net:/home/groups/p/pm/pmd/htdocs/"
password="${uploadbundle.scp.pwd}" trust="true"></scp> password="${uploadbundle.scp.pwd}" trust="true"></scp>
</target> </target>
</project> </project>

View File

@ -2,10 +2,10 @@
<update-bundle version="1.0" xmlns="http://xmlns.oracle.com/jdeveloper/updatebundle"> <update-bundle version="1.0" xmlns="http://xmlns.oracle.com/jdeveloper/updatebundle">
<update id="net.sourceforge.pmd.jdeveloper" xmlns="http://xmlns.oracle.com/jdeveloper/update"> <update id="net.sourceforge.pmd.jdeveloper" xmlns="http://xmlns.oracle.com/jdeveloper/update">
<name>PMD JDeveloper Extension</name> <name>PMD JDeveloper Extension</name>
<version>4.2.4.2.0</version> <version>4.2.5.2.0</version>
<author>Torsten Kleiber</author> <author>Torsten Kleiber</author>
<author-url>http://pmd.sourceforge.net/</author-url> <author-url>http://pmd.sourceforge.net/</author-url>
<description>Provides integrated support for PMD 4.2.4 in JDeveloper 10.1.3 - 11g Technology Preview 1.</description> <description>Provides integrated support for PMD 4.2.5 in JDeveloper 10.1.3 - 11g Technology Preview 1.</description>
<requirements> <requirements>
<requires-extension id="oracle.jdeveloper" minVersion="10.1.3.00" <requires-extension id="oracle.jdeveloper" minVersion="10.1.3.00"
maxVersion="11.1.1.0.20.45"/> maxVersion="11.1.1.0.20.45"/>

View File

@ -2,24 +2,24 @@
<updates version="1.0" xmlns="http://xmlns.oracle.com/jdeveloper/updatecenter"> <updates version="1.0" xmlns="http://xmlns.oracle.com/jdeveloper/updatecenter">
<update id="net.sourceforge.pmd.jdeveloper" xmlns="http://xmlns.oracle.com/jdeveloper/update"> <update id="net.sourceforge.pmd.jdeveloper" xmlns="http://xmlns.oracle.com/jdeveloper/update">
<name>PMD JDeveloper Extension</name> <name>PMD JDeveloper Extension</name>
<version>4.2.4.2.0</version> <version>4.2.5.2.0</version>
<author>Torsten Kleiber</author> <author>Torsten Kleiber</author>
<author-url>http://pmd.sourceforge.net</author-url> <author-url>http://pmd.sourceforge.net</author-url>
<description>Provides integrated support for PMD 4.2.4 in JDeveloper 10.1.3 - 11g Technology Preview 1.</description> <description>Provides integrated support for PMD 4.2.5 in JDeveloper 10.1.3 - 11g Technology Preview 1.</description>
<bundle-url>http://downloads.sourceforge.net/pmd/pmd-jdeveloper1013-bundle-4.2.4.2.0.zip</bundle-url> <bundle-url>http://downloads.sourceforge.net/pmd/pmd-jdeveloper1013-bundle-4.2.5.2.0.zip</bundle-url>
<requirements> <requirements>
<requires-extension id="oracle.jdeveloper" minVersion="10.1.3.00" maxVersion="11.1.1.0.20.45" /> <requires-extension id="oracle.jdeveloper" minVersion="10.1.3.00" maxVersion="11.1.1.0.20.45" />
</requirements> </requirements>
</update> </update>
<update id="net.sourceforge.pmd.jdeveloper" xmlns="http://xmlns.oracle.com/jdeveloper/update"> <update id="net.sourceforge.pmd.jdeveloper" xmlns="http://xmlns.oracle.com/jdeveloper/update">
<name>PMD JDeveloper Extension</name> <name>PMD JDeveloper Extension</name>
<version>4.2.4.3.0</version> <version>4.2.5.3.0</version>
<author>Torsten Kleiber</author> <author>Torsten Kleiber</author>
<author-url>http://pmd.sourceforge.net</author-url> <author-url>http://pmd.sourceforge.net</author-url>
<description>Provides integrated support for PMD 4.2.4 in JDeveloper 11g.</description> <description>Provides integrated support for PMD 4.2.5 in JDeveloper 11g.</description>
<bundle-url>http://downloads.sourceforge.net/pmd/pmd-jdeveloper1111-bundle-4.2.4.3.0.zip</bundle-url> <bundle-url>http://downloads.sourceforge.net/pmd/pmd-jdeveloper1111-bundle-4.2.5.3.0.zip</bundle-url>
<requirements> <requirements>
<requires-extension id="oracle.jdeveloper" minVersion="11.1.1.0.31.51.56" maxVersion="11.1.1.0.31.51.56" /> <requires-extension id="oracle.jdeveloper" minVersion="11.1.1.0.31.51.56" maxVersion="11.1.1.99" />
</requirements> </requirements>
</update> </update>
</updates> </updates>

View File

@ -1,3 +1,7 @@
October 14, 2009 - 4.2.5:
Updated PMD version to 4.2.5 for 10.1.3 to 11.1.1
Fixed bug 2543957
October 21, 2008 - 4.2.4: October 21, 2008 - 4.2.4:
Updated PMD version to 4.2.4 for 9.0.5 to 11.1.1 Updated PMD version to 4.2.4 for 9.0.5 to 11.1.1

View File

@ -1,6 +1,6 @@
<?xml version = '1.0' encoding = 'UTF-8'?> <?xml version = '1.0' encoding = 'UTF-8'?>
<extension xmlns="http://jcp.org/jsr/198/extension-manifest" <extension xmlns="http://jcp.org/jsr/198/extension-manifest"
id="net.sourceforge.pmd.jdeveloper" version="4.2.4.2.0" id="net.sourceforge.pmd.jdeveloper" version="4.2.5.2.0"
esdk-version="1.0"> esdk-version="1.0">
<name>PMD JDeveloper Extension</name> <name>PMD JDeveloper Extension</name>
<owner>Torsten Kleiber</owner> <owner>Torsten Kleiber</owner>
@ -8,9 +8,9 @@
<import>oracle.jdeveloper</import> <import>oracle.jdeveloper</import>
</dependencies> </dependencies>
<classpaths> <classpaths>
<classpath>net.sourceforge.pmd.jdeveloper.4.2.4.2.0/lib/pmd-4.2.4.jar</classpath> <classpath>net.sourceforge.pmd.jdeveloper.4.2.5.2.0/lib/pmd-4.2.5.jar</classpath>
<classpath>net.sourceforge.pmd.jdeveloper.4.2.4.2.0/lib/jaxen-1.1.1.jar</classpath> <classpath>net.sourceforge.pmd.jdeveloper.4.2.5.2.0/lib/jaxen-1.1.1.jar</classpath>
<classpath>net.sourceforge.pmd.jdeveloper.4.2.4.2.0/lib/asm-3.1.jar</classpath> <classpath>net.sourceforge.pmd.jdeveloper.4.2.5.2.0/lib/asm-3.1.jar</classpath>
</classpaths> </classpaths>
<hooks> <hooks>
<jdeveloper-hook xmlns="http://xmlns.oracle.com/jdeveloper/1013/extension"> <jdeveloper-hook xmlns="http://xmlns.oracle.com/jdeveloper/1013/extension">
@ -19,7 +19,7 @@
</addins> </addins>
</jdeveloper-hook> </jdeveloper-hook>
<feature-hook> <feature-hook>
<description>Provides integrated support for PMD 4.2 in JDeveloper 10.1.3 - 11g Technology Preview 1.</description> <description>Provides integrated support for PMD 4.2.5 in JDeveloper 10.1.3 - 11g Technology Preview 1.</description>
<optional>false</optional> <optional>false</optional>
</feature-hook> </feature-hook>
</hooks> </hooks>

View File

@ -1,25 +1,25 @@
<?xml version = '1.0' encoding = 'UTF-8'?> <?xml version = '1.0' encoding = 'UTF-8'?>
<jpr:project xmlns:jpr="http://xmlns.oracle.com/ide/project"> <jpr:project xmlns:jpr="http://xmlns.oracle.com/ide/project">
<hash n="component-versions"> <hash n="component-versions">
<value n="oracle.adf.dt.migration.ProjectMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.adf.dt.migration.ProjectMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.adfdt.controller.jsf.addin.JSFProjectMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.adfdt.controller.jsf.addin.JSFProjectMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.adfdt.controller.struts.addin.db.ADFStrutsProjectMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.adfdt.controller.struts.addin.db.ADFStrutsProjectMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.adfdt.controller.struts.addin.StrutsProjectMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.adfdt.controller.struts.addin.StrutsProjectMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.adfdtinternal.model.portlet.migration.WebCenterProjectMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.adfdtinternal.model.portlet.migration.WebCenterProjectMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.adfdtinternal.view.faces.addin.ADFFacesLibraryMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.adfdtinternal.view.faces.addin.ADFFacesLibraryMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.bm.commonIde.ProjectUpgrader" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.bm.commonIde.ProjectUpgrader" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.ide.model.Project" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.ide.model.Project" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.ide.model.ResourcePathsMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.ide.model.ResourcePathsMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.jbo.dt.jclient.migrator.JCProjectMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.jbo.dt.jclient.migrator.JCProjectMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.jbo.dt.jdevx.ui.appnav.APProjectMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.jbo.dt.jdevx.ui.appnav.APProjectMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.jdeveloper.dbmodeler.migration.ProjectMigratorHelper" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.jdeveloper.dbmodeler.migration.ProjectMigratorHelper" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.jdeveloper.ejb.EjbMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.jdeveloper.ejb.EjbMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.jdeveloper.offlinedb.migration.OfflineDBProjectMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.jdeveloper.offlinedb.migration.OfflineDBProjectMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.jdevimpl.jsp.JsfLibraryMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.jdevimpl.jsp.JsfLibraryMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.jdevimpl.jsp.JspMigrator" v="10.1.3.1.0"/> <value n="oracle.jdevimpl.jsp.JspMigrator" v="10.1.3.1.0"/>
<value n="oracle.jdevimpl.runner.RunConfigurationsMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.jdevimpl.runner.RunConfigurationsMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.jdevimpl.webservices.WebServicesMigratorHelper" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.jdevimpl.webservices.WebServicesMigratorHelper" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.tip.tools.ide.pm.addin.PMProjectMigrator" v="10.1.3.3.0;10.1.3.4.0"/> <value n="oracle.tip.tools.ide.pm.addin.PMProjectMigrator" v="10.1.3.3.0;10.1.3.4.0;10.1.3.5.0"/>
<value n="oracle.toplink.addin.migration.TopLinkProjectMigrator" v="10.1.3.1.0"/> <value n="oracle.toplink.addin.migration.TopLinkProjectMigrator" v="10.1.3.1.0"/>
</hash> </hash>
<list n="contentSets"> <list n="contentSets">
@ -125,7 +125,7 @@
<hash n="oracle.jdevimpl.config.JProjectLibraries"> <hash n="oracle.jdevimpl.config.JProjectLibraries">
<list n="exportedReferences"> <list n="exportedReferences">
<hash> <hash>
<url n="id" path="../../../../../../../Oracle/10gJD10133/jdev/system/oracle.jdeveloper.10.1.3.41.57/PMD 4.2.4.library"/> <url n="id" path="../../../../../../../Oracle/10gJD10133/jdev/system/oracle.jdeveloper.10.1.3.41.57/PMD 4.2.5.library"/>
<value n="isJDK" v="false"/> <value n="isJDK" v="false"/>
</hash> </hash>
<hash> <hash>
@ -140,7 +140,7 @@
<hash n="internalDefinitions"/> <hash n="internalDefinitions"/>
<list n="libraryReferences"> <list n="libraryReferences">
<hash> <hash>
<url n="id" path="../../../../../../../Oracle/10gJD10133/jdev/system/oracle.jdeveloper.10.1.3.41.57/PMD 4.2.4.library"/> <url n="id" path="../../../../../../../Oracle/10gJD10133/jdev/system/oracle.jdeveloper.10.1.3.41.57/PMD 4.2.5.library"/>
<value n="isJDK" v="false"/> <value n="isJDK" v="false"/>
</hash> </hash>
<hash> <hash>

View File

@ -38,7 +38,7 @@ public class FileStorage implements SettingsStorage {
final FileOutputStream fos = new FileOutputStream(file); final FileOutputStream fos = new FileOutputStream(file);
savedProperties.store(fos, savedProperties.store(fos,
"PMD-JDeveloper rule selections " + new Date()); "PMD generated file " + new Date());
fos.close(); fos.close();
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
Util.logMessage(e.getStackTrace()); Util.logMessage(e.getStackTrace());

View File

@ -10,22 +10,26 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener; import java.awt.event.MouseMotionListener;
import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.List; import java.util.List;
import java.util.Properties;
import java.util.Set; import java.util.Set;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.BoxLayout; import javax.swing.BoxLayout;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JCheckBox; import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JList; import javax.swing.JList;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.JTextArea; import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListCellRenderer; import javax.swing.ListCellRenderer;
import javax.swing.ListModel; import javax.swing.ListModel;
import javax.swing.ListSelectionModel; import javax.swing.ListSelectionModel;
@ -39,12 +43,21 @@ import net.sourceforge.pmd.RuleSetNotFoundException;
import net.sourceforge.pmd.RuleSets; import net.sourceforge.pmd.RuleSets;
import net.sourceforge.pmd.RuleSetWriter; import net.sourceforge.pmd.RuleSetWriter;
import oracle.ide.Ide;
import oracle.ide.panels.DefaultTraversablePanel; import oracle.ide.panels.DefaultTraversablePanel;
import oracle.ide.panels.TraversableContext; import oracle.ide.panels.TraversableContext;
public class SettingsPanel extends DefaultTraversablePanel { public class SettingsPanel extends DefaultTraversablePanel {
private static final String PLUGIN_HOME =
"/extensions/net.sourceforge.pmd.jdeveloper." + Version.version() +
"/conf/";
private static final String PLUGIN_PROPS =
PLUGIN_HOME + "pmd.plugin.properties";
private static final String RULE_PROPS =
PLUGIN_HOME + "pmd.rule.properties";
private class ImportListener implements ActionListener { private class ImportListener implements ActionListener {
public void actionPerformed(final ActionEvent evt) { public void actionPerformed(final ActionEvent evt) {
final FileDialog fdlg = final FileDialog fdlg =
@ -71,6 +84,20 @@ public class SettingsPanel extends DefaultTraversablePanel {
} }
} }
private class FindListener implements ActionListener {
public void actionPerformed(ActionEvent evt) {
FileDialog fdlg =
new FileDialog(new Frame(), "Find", FileDialog.LOAD);
fdlg.setVisible(true);
String selected = fdlg.getDirectory() + fdlg.getFile();
if (fdlg.getFile() == null) {
return;
}
selectedRulesSeparateFileNameField.setText(selected);
}
}
private class CheckboxList extends JList { private class CheckboxList extends JList {
private class MyMouseAdapter extends MouseAdapter { private class MyMouseAdapter extends MouseAdapter {
@ -81,7 +108,8 @@ public class SettingsPanel extends DefaultTraversablePanel {
public void mousePressed(final MouseEvent evt) { public void mousePressed(final MouseEvent evt) {
final int index = locationToIndex(evt.getPoint()); final int index = locationToIndex(evt.getPoint());
if (index != -1) { if (index != -1) {
final JCheckBox box = (JCheckBox)getModel().getElementAt(index); final JCheckBox box =
(JCheckBox)getModel().getElementAt(index);
box.setSelected(!box.isSelected()); box.setSelected(!box.isSelected());
repaint(); repaint();
} }
@ -97,7 +125,8 @@ public class SettingsPanel extends DefaultTraversablePanel {
public void mouseMoved(final MouseEvent evt) { public void mouseMoved(final MouseEvent evt) {
final int index = locationToIndex(evt.getPoint()); final int index = locationToIndex(evt.getPoint());
if (index != -1) { if (index != -1) {
final JCheckBox box = (JCheckBox)getModel().getElementAt(index); final JCheckBox box =
(JCheckBox)getModel().getElementAt(index);
final List examples = rules.getRule(box).getExamples(); final List examples = rules.getRule(box).getExamples();
final StringBuffer examplesBuffer = new StringBuffer(); final StringBuffer examplesBuffer = new StringBuffer();
if (!examples.isEmpty()) { if (!examples.isEmpty()) {
@ -145,18 +174,29 @@ public class SettingsPanel extends DefaultTraversablePanel {
} }
} }
public static final String STORED_SEPARATELY = public static final String STORED_SEPARATELY = "pmd.settings.separate";
"pmd.settings.separate"; public static final String SEL_FILENAME = "pmd.settings.separate.name";
public static final String SEL_FILENAME =
"pmd.settings.separate.name";
private final transient JTextArea exampleTextArea = new JTextArea(10, 50); private final transient JTextArea exampleTextArea = new JTextArea(10, 50);
private JCheckBox selectedRulesStoredSeparatelyBox;
private JTextField selectedRulesSeparateFileNameField = new JTextField(30);
private transient SelectedRules rules; private transient SelectedRules rules;
private transient JList rulesList; private transient JList rulesList;
private static FileStorage pluginProps =
new FileStorage(new File(Version.getJdevHome() + PLUGIN_PROPS));
public static SettingsStorage createSettingsStorage() { public static SettingsStorage createSettingsStorage() {
return new IDEStorage(); try {
if (Boolean.valueOf(pluginProps.load(STORED_SEPARATELY)).booleanValue()) {
return new FileStorage(new File(pluginProps.load(SEL_FILENAME)));
} }
} catch (SettingsException se) {
Util.logMessage(se.getStackTrace());
Util.showError(se, Plugin.PMD_TITLE);
}
return new FileStorage(new File(Version.getJdevHome() + RULE_PROPS));
}
public void onEntry(final TraversableContext tcon) { public void onEntry(final TraversableContext tcon) {
removeAll(); removeAll();
@ -167,7 +207,15 @@ public class SettingsPanel extends DefaultTraversablePanel {
Util.showError(rsne, Plugin.PMD_TITLE); Util.showError(rsne, Plugin.PMD_TITLE);
} }
try {
selectedRulesStoredSeparatelyBox =
new JCheckBox("", Boolean.valueOf(pluginProps.load(STORED_SEPARATELY)).booleanValue());
} catch (SettingsException se) {
Util.logMessage(se.getStackTrace());
Util.showError(se, Plugin.PMD_TITLE);
}
final JPanel mainPanel = new JPanel(new BorderLayout()); final JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.add(createTopPanel(), BorderLayout.NORTH);
mainPanel.add(createRulesSelectionPanel(), BorderLayout.SOUTH); mainPanel.add(createRulesSelectionPanel(), BorderLayout.SOUTH);
add(mainPanel); add(mainPanel);
} }
@ -177,6 +225,7 @@ public class SettingsPanel extends DefaultTraversablePanel {
checkBoxesPanel.setBorder(BorderFactory.createTitledBorder("Rules")); checkBoxesPanel.setBorder(BorderFactory.createTitledBorder("Rules"));
rulesList = new CheckboxList(rules.getAllBoxes()); rulesList = new CheckboxList(rules.getAllBoxes());
rulesList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); rulesList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
rulesList.setVisibleRowCount(5);
checkBoxesPanel.add(new JScrollPane(rulesList), BorderLayout.NORTH); checkBoxesPanel.add(new JScrollPane(rulesList), BorderLayout.NORTH);
final JPanel buttonsPanel = new JPanel(); final JPanel buttonsPanel = new JPanel();
buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.Y_AXIS)); buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.Y_AXIS));
@ -211,6 +260,54 @@ public class SettingsPanel extends DefaultTraversablePanel {
return rulesSelPanel; return rulesSelPanel;
} }
private JPanel createTopPanel() {
try {
selectedRulesSeparateFileNameField.setText(pluginProps.load(SEL_FILENAME));
selectedRulesStoredSeparatelyBox.setSelected(Boolean.valueOf(pluginProps.load(STORED_SEPARATELY)).booleanValue());
} catch (SettingsException se) {
Util.logMessage(se.getStackTrace());
Util.showError(se, Plugin.PMD_TITLE);
}
JPanel topPanel = new JPanel(new BorderLayout());
JPanel customStoragePanel = new JPanel(new BorderLayout());
customStoragePanel.setBorder(BorderFactory.createTitledBorder("Settings storage"));
JPanel customStorageCheckBoxPanel = new JPanel();
customStorageCheckBoxPanel.add(new JLabel("Use centrally managed rule settings?"));
customStorageCheckBoxPanel.add(selectedRulesStoredSeparatelyBox);
customStoragePanel.add(customStorageCheckBoxPanel, BorderLayout.NORTH);
JPanel customStorageTextFieldPanel = new JPanel();
customStorageTextFieldPanel.add(new JLabel("File:"));
customStorageTextFieldPanel.add(selectedRulesSeparateFileNameField);
JButton findButton = new JButton("Find file");
findButton.addActionListener(new FindListener());
customStorageTextFieldPanel.add(findButton);
customStoragePanel.add(customStorageTextFieldPanel,
BorderLayout.SOUTH);
topPanel.add(customStoragePanel, BorderLayout.CENTER);
return topPanel;
}
public void onExit(final TraversableContext tcon) {
final Properties properties = new Properties();
properties.setProperty(STORED_SEPARATELY,
String.valueOf(selectedRulesStoredSeparatelyBox.isSelected()));
properties.setProperty(SEL_FILENAME,
selectedRulesSeparateFileNameField.getText());
try {
pluginProps.save(properties);
rules.save(createSettingsStorage());
} catch (SettingsException se) {
JOptionPane.showMessageDialog(null,
"Can't save settings :" + se.getMessage(),
"Can't save settings",
JOptionPane.ERROR_MESSAGE);
}
}
private void setSelected(final Boolean selected) { private void setSelected(final Boolean selected) {
final ListModel model = rulesList.getModel(); final ListModel model = rulesList.getModel();
for (int i = 0; i < model.getSize(); i++) { for (int i = 0; i < model.getSize(); i++) {
@ -220,18 +317,6 @@ public class SettingsPanel extends DefaultTraversablePanel {
rulesList.repaint(); rulesList.repaint();
} }
public void onExit(final TraversableContext tcon) {
try {
rules.save(createSettingsStorage());
} catch (SettingsException se) {
JOptionPane.showMessageDialog(null,
"Can't save selected rules to the file :" +
se.getMessage(),
"Can't save settings",
JOptionPane.ERROR_MESSAGE);
}
}
private void importFile(final String fileLocation) { private void importFile(final String fileLocation) {
final RuleSetFactory factory = new RuleSetFactory(); final RuleSetFactory factory = new RuleSetFactory();
RuleSets ruleSets = null; RuleSets ruleSets = null;
@ -255,9 +340,10 @@ public class SettingsPanel extends DefaultTraversablePanel {
rulesList.repaint(); rulesList.repaint();
} }
private Boolean isRuleAvailabel(final Set<Rule> allRules, final Rule requestedRule) { private Boolean isRuleAvailabel(final Set<Rule> allRules,
final Rule requestedRule) {
Boolean returnValue = Boolean.FALSE; Boolean returnValue = Boolean.FALSE;
for (Rule rule: allRules) { for (Rule rule : allRules) {
if (rule.getName().equals(requestedRule.getName())) { if (rule.getName().equals(requestedRule.getName())) {
returnValue = Boolean.TRUE; returnValue = Boolean.TRUE;
} }

View File

@ -5,6 +5,8 @@ import net.sourceforge.pmd.SourceType;
import oracle.ide.Context; import oracle.ide.Context;
import oracle.ide.Ide;
import oracle.jdeveloper.compiler.OjcConfiguration; import oracle.jdeveloper.compiler.OjcConfiguration;
final class Version { final class Version {
@ -27,7 +29,10 @@ final class Version {
} }
public static String version() { public static String version() {
return "4.2.4.2.0"; return "4.2.5.2.0";
} }
static String getJdevHome() {
return Ide.getHomeDirectory();
}
} }