Author: kono Date: 2012-04-19 17:29:29 -0700 (Thu, 19 Apr 2012) New Revision: 28892
Added: core3/api/trunk/swing-util-api/src/test/java/org/cytoscape/util/swing/ColumnResizerTest.java core3/api/trunk/swing-util-api/src/test/java/org/cytoscape/util/swing/FileChooserFilterTest.java Modified: core3/api/trunk/swing-util-api/pom.xml core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/ColumnResizer.java core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/CyColorChooser.java core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/FileChooserFilter.java core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/JMenuTracker.java core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/JTreeTable.java Log: refs #875 New unit tests had been added to swing-util-api. Modified: core3/api/trunk/swing-util-api/pom.xml =================================================================== --- core3/api/trunk/swing-util-api/pom.xml 2012-04-19 23:45:44 UTC (rev 28891) +++ core3/api/trunk/swing-util-api/pom.xml 2012-04-20 00:29:29 UTC (rev 28892) @@ -1,114 +1,121 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <parent> - <groupId>org.cytoscape</groupId> - <artifactId>api-parent</artifactId> - <version>3.0.0-alpha8-SNAPSHOT</version> - </parent> + <parent> + <groupId>org.cytoscape</groupId> + <artifactId>api-parent</artifactId> + <version>3.0.0-alpha8-SNAPSHOT</version> + </parent> - <properties> - <bundle.symbolicName>org.cytoscape.swing-util-api</bundle.symbolicName> - <bundle.namespace>org.cytoscape.util.swing</bundle.namespace> - </properties> + <properties> + <bundle.symbolicName>org.cytoscape.swing-util-api</bundle.symbolicName> + <bundle.namespace>org.cytoscape.util.swing</bundle.namespace> + </properties> - <modelVersion>4.0.0</modelVersion> - <groupId>org.cytoscape</groupId> - <artifactId>swing-util-api</artifactId> + <modelVersion>4.0.0</modelVersion> + <artifactId>swing-util-api</artifactId> - <name>Cytoscape Swing Utility API (${project.artifactId})</name> + <name>Cytoscape Swing Utility API (${project.artifactId})</name> - <packaging>bundle</packaging> + <packaging>bundle</packaging> - <repositories> - <!-- bootstrap for cytoscape dependencies, namely the parent POM snapshots --> - <repository> - <id>cytoscape_snapshots</id> - <snapshots> - <enabled>true</enabled> - </snapshots> - <releases> - <enabled>false</enabled> - </releases> - <name>Cytoscape Snapshots</name> - <url>http://code.cytoscape.org/nexus/content/repositories/snapshots/</url> - </repository> - <!-- bootstrap for cytoscape dependencies, namely the parent POM releases --> - <repository> - <id>cytoscape_releases</id> - <snapshots> - <enabled>false</enabled> - </snapshots> - <releases> - <enabled>true</enabled> - </releases> - <name>Cytoscape Releases</name> - <url>http://code.cytoscape.org/nexus/content/repositories/releases/</url> - </repository> - </repositories> + <repositories> + <!-- bootstrap for cytoscape dependencies, namely the parent POM snapshots --> + <repository> + <id>cytoscape_snapshots</id> + <snapshots> + <enabled>true</enabled> + </snapshots> + <releases> + <enabled>false</enabled> + </releases> + <name>Cytoscape Snapshots</name> + <url>http://code.cytoscape.org/nexus/content/repositories/snapshots/</url> + </repository> + <!-- bootstrap for cytoscape dependencies, namely the parent POM releases --> + <repository> + <id>cytoscape_releases</id> + <snapshots> + <enabled>false</enabled> + </snapshots> + <releases> + <enabled>true</enabled> + </releases> + <name>Cytoscape Releases</name> + <url>http://code.cytoscape.org/nexus/content/repositories/releases/</url> + </repository> + </repositories> - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - </resource> - <resource> - <directory>.</directory> - <includes> - <include>plugin.xml</include> - <include>plugin.properties</include> - <include>icons/**</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <version>${maven-bundle-plugin.version}</version> - <extensions>true</extensions> - <configuration> - <instructions> - <Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName> - <Bundle-Version>${project.version}</Bundle-Version> - <Export-Package>!${bundle.namespace}.internal.*,${bundle.namespace}.*;version="${project.version}"</Export-Package> - <Private-Package>${bundle.namespace}.internal.*</Private-Package> - <Bundle-Activator>${bundle.namespace}.internal.CyActivator</Bundle-Activator> - </instructions> - </configuration> - </plugin> - </plugins> - </build> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.cytoscape</groupId> - <artifactId>property-api</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.cytoscape</groupId> - <artifactId>service-api</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.core</artifactId> - <version>${osgi.api.version}</version> - </dependency> - <dependency> - <groupId>org.cytoscape</groupId> - <artifactId>model-api</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.cytoscape</groupId> - <artifactId>application-api</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + </resource> + <resource> + <directory>.</directory> + <includes> + <include>plugin.xml</include> + <include>plugin.properties</include> + <include>icons/**</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>${maven-bundle-plugin.version}</version> + <extensions>true</extensions> + <configuration> + <instructions> + <Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName> + <Bundle-Version>${project.version}</Bundle-Version> + <Export-Package>!${bundle.namespace}.internal.*,${bundle.namespace}.*;version="${project.version}"</Export-Package> + <Private-Package>${bundle.namespace}.internal.*</Private-Package> + <Bundle-Activator>${bundle.namespace}.internal.CyActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.cytoscape</groupId> + <artifactId>property-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.cytoscape</groupId> + <artifactId>service-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.core</artifactId> + <version>${osgi.api.version}</version> + </dependency> + <dependency> + <groupId>org.cytoscape</groupId> + <artifactId>model-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.cytoscape</groupId> + <artifactId>application-api</artifactId> + <version>${project.version}</version> + </dependency> + + <!-- Testing --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <scope>test</scope> + </dependency> + </dependencies> </project> Modified: core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/ColumnResizer.java =================================================================== --- core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/ColumnResizer.java 2012-04-19 23:45:44 UTC (rev 28891) +++ core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/ColumnResizer.java 2012-04-20 00:29:29 UTC (rev 28892) @@ -49,23 +49,17 @@ * From <i>Swing Hacks</i> by Joshua Marinacci and Chris Adamson.<br> * 2005 Oreilly & Associates Inc. ISBN: 0-596-00907-0<br> * </p> - * Customized by Keiichiro Ono * - * @since Cytoscape 2.4 - * @version 1.0 * @author Joshua Marinacci, Chris Adamson, Keiichiro Ono * @CyAPI.Static.Class */ public final class ColumnResizer { + private static final int DEFLMAX_WIDTH = 280; private ColumnResizer() {} - /** - * DOCUMENT ME! - * - * @param table DOCUMENT ME! - */ + public static void adjustColumnPreferredWidths(JTable table) { // strategy - get max width for cells in column and // make that the preferred width Modified: core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/CyColorChooser.java =================================================================== --- core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/CyColorChooser.java 2012-04-19 23:45:44 UTC (rev 28891) +++ core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/CyColorChooser.java 2012-04-20 00:29:29 UTC (rev 28892) @@ -45,35 +45,38 @@ /** * This is an annoying re-implementation of JColorChooser.showDialog() that remembers * recently used colors between invocations of the chooser dialog. + * * @CyAPI.Static.Class */ public final class CyColorChooser { - protected static JColorChooser chooser = new JColorChooser(); - protected static ColorListener listener = new ColorListener(); - protected static Color color; + + private static JColorChooser chooser = new JColorChooser(); + private static ColorListener listener = new ColorListener(); + + private static Color color; private CyColorChooser() {} /** - * DOCUMENT ME! - * - * @param component DOCUMENT ME! - * @param title DOCUMENT ME! - * @param initialColor DOCUMENT ME! - * - * @return DOCUMENT ME! + * Display custom color chooser dialog. + * + * @param parent parent component of this dialog + * @param title Title of this dialog + * @param initialColor Initially selected color. + * + * @return New Color or null if canceled. */ - public static Color showDialog(Component component, String title, Color initialColor) { + public static Color showDialog(final Component parent, final String title, final Color initialColor) { if (initialColor != null) chooser.setColor(initialColor); - JDialog dialog = JColorChooser.createDialog(component, title, true, chooser, listener, null); + final JDialog dialog = JColorChooser.createDialog(parent, title, true, chooser, listener, null); dialog.setVisible(true); return color; } - static class ColorListener implements ActionListener { + private static final class ColorListener implements ActionListener { public void actionPerformed(ActionEvent e) { color = chooser.getColor(); } Modified: core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/FileChooserFilter.java =================================================================== --- core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/FileChooserFilter.java 2012-04-19 23:45:44 UTC (rev 28891) +++ core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/FileChooserFilter.java 2012-04-20 00:29:29 UTC (rev 28892) @@ -1,76 +1,96 @@ package org.cytoscape.util.swing; - import java.io.File; import java.util.Arrays; import javax.swing.filechooser.FileFilter; - /** - * Used to hold extension(s) of acceptable file types and a short description of them. + * Used to hold extension(s) of acceptable file types and a short description of + * them. + * * @CyAPI.Final.Class */ public final class FileChooserFilter extends FileFilter { - private final String description; - private final String[] extensions; - /** Construct this FileChooserFilter using one acceptable file type extension. - * @param description a short description of the acceptable file type - * @param extension the file extension of the acceptable file type + private final String description; + private final String[] extensions; + + /** + * Construct this FileChooserFilter using one acceptable file type + * extension. + * + * @param description + * a short description of the acceptable file type + * @param extension + * the file extension of the acceptable file type */ - public FileChooserFilter(final String description, final String extension) { - super(); - this.description = description; - this.extensions = new String[] { extension }; - } + public FileChooserFilter(final String description, final String extension) { + this(description, new String[] {extension}); + } - /** Construct this FileChooserFilter using multiple acceptable file type extensions. - * @param description a short description of the acceptable file type(s) - * @param extensions the file extensions of the acceptable file type(s) + /** + * Construct this FileChooserFilter using multiple acceptable file type + * extensions. + * + * @param description + * a short description of the acceptable file type(s) + * @param extensions + * the file extensions of the acceptable file type(s) */ - public FileChooserFilter(final String description, final String[] extensions) { - super(); - this.description = description; - this.extensions = extensions; - } + public FileChooserFilter(final String description, final String[] extensions) { + super(); + this.description = description; + this.extensions = extensions; + } - /** Accept or not the file from JFileChooser. - * @param file the file to be tested + /** + * Accept or not the file from JFileChooser. + * + * @param file + * the file to be tested */ - public boolean accept(final File file) { - if (file.isDirectory()) + @Override + public boolean accept(final File file) { + if (file.isDirectory()) return true; - String fileName = file.getName().toLowerCase(); + String fileName = file.getName().toLowerCase(); - if (extensions != null) { - for(int i = 0; i < extensions.length; i++) { - if (fileName.endsWith(extensions[i])) - return true; - } + if (extensions != null) { + for (int i = 0; i < extensions.length; i++) { + if (fileName.endsWith(extensions[i])) + return true; + } - for(int i = 0; i < extensions.length; i++) { - if (fileName.contains(extensions[i])) - return true; - } - } else + for (int i = 0; i < extensions.length; i++) { + if (fileName.contains(extensions[i])) + return true; + } + } else throw new IllegalArgumentException("No fileType specified"); - return false; - } + return false; + } - /** Returns the short description of the acceptable file type. - * @return the short description of the acceptable file type. - */ + /** + * Returns the short description of the acceptable file type. + * + * @return the short description of the acceptable file type. + */ + @Override public String getDescription() { - return description; + return description; } - - /** Returns an array of the extensions associated with this FileChooserFilter. - * @return an array of the extensions associated with this FileChooserFilter. + + /** + * Returns an array of the extensions associated with this + * FileChooserFilter. + * + * @return an array of the extensions associated with this + * FileChooserFilter. */ public String[] getExtensions() { - return extensions; + return extensions; } @Override @@ -78,7 +98,7 @@ if (!(other instanceof FileChooserFilter)) return false; - final FileChooserFilter otherFilter = (FileChooserFilter)other; + final FileChooserFilter otherFilter = (FileChooserFilter) other; if (!otherFilter.description.equals(description)) return false; Modified: core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/JMenuTracker.java =================================================================== --- core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/JMenuTracker.java 2012-04-19 23:45:44 UTC (rev 28891) +++ core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/JMenuTracker.java 2012-04-20 00:29:29 UTC (rev 28892) @@ -30,17 +30,16 @@ package org.cytoscape.util.swing; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JPopupMenu; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.StringTokenizer; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JPopupMenu; + /** * A class that creates and manages hierarchies of JMenu objects. * @CyAPI.Final.Class @@ -49,7 +48,6 @@ private final Map<String, MenuGravityTracker> menuMap; private final JMenuBar rootMenuBar; private final PopupMenuGravityTracker rootPopupGravityTracker; - private double largeGravity = Double.MAX_VALUE / 2.0; /** * This constructor allows you to specify a root JPopupMenu that all parent-less Modified: core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/JTreeTable.java =================================================================== --- core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/JTreeTable.java 2012-04-19 23:45:44 UTC (rev 28891) +++ core3/api/trunk/swing-util-api/src/main/java/org/cytoscape/util/swing/JTreeTable.java 2012-04-20 00:29:29 UTC (rev 28892) @@ -55,6 +55,7 @@ * @CyAPI.Final.Class */ public final class JTreeTable extends JTable { + private final static long serialVersionUID = 1202339868625600L; private final static Logger logger = LoggerFactory.getLogger( JTreeTable.class ); Added: core3/api/trunk/swing-util-api/src/test/java/org/cytoscape/util/swing/ColumnResizerTest.java =================================================================== --- core3/api/trunk/swing-util-api/src/test/java/org/cytoscape/util/swing/ColumnResizerTest.java (rev 0) +++ core3/api/trunk/swing-util-api/src/test/java/org/cytoscape/util/swing/ColumnResizerTest.java 2012-04-20 00:29:29 UTC (rev 28892) @@ -0,0 +1,29 @@ +package org.cytoscape.util.swing; + +import static org.junit.Assert.*; + +import javax.swing.JTable; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableColumn; +import javax.swing.table.TableModel; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ColumnResizerTest { + + @Test + public void testAdjustColumnPreferredWidths() { + JTable table = new JTable(); + final TableColumn col = new TableColumn(); + col.setHeaderValue("Test"); + col.setWidth(1); + int w = col.getWidth(); + table.addColumn(col); + ColumnResizer.adjustColumnPreferredWidths(table); + + assertTrue(table.getColumn("Test").getWidth() == w); + } + +} Added: core3/api/trunk/swing-util-api/src/test/java/org/cytoscape/util/swing/FileChooserFilterTest.java =================================================================== --- core3/api/trunk/swing-util-api/src/test/java/org/cytoscape/util/swing/FileChooserFilterTest.java (rev 0) +++ core3/api/trunk/swing-util-api/src/test/java/org/cytoscape/util/swing/FileChooserFilterTest.java 2012-04-20 00:29:29 UTC (rev 28892) @@ -0,0 +1,59 @@ +package org.cytoscape.util.swing; + +import static org.junit.Assert.*; + +import java.io.File; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class FileChooserFilterTest { + + private FileChooserFilter filter; + private String description = "test filter"; + private String extension = "xml"; + private String[] extensions = new String[] {"xml", "rdf"}; + + @Before + public void setUp() throws Exception { + filter = new FileChooserFilter(description, extensions); + } + + + @Test + public void testFileChooserFilterConstructor() { + assertNotNull(filter); + FileChooserFilter filter2 = new FileChooserFilter(description, extension); + assertNotNull(filter2); + } + + @Test + public void testAcceptFile() { + File rdfFile = new File("test.rdf"); + File xmlFile = new File("test.xml"); + File textFile = new File("test.txt"); + + assertTrue(filter.accept(rdfFile)); + assertTrue(filter.accept(xmlFile)); + assertFalse(filter.accept(textFile)); + } + + @Test + public void testGetDescription() { + assertEquals(description, filter.getDescription()); + } + + @Test + public void testGetExtensions() { + final String[] exts = filter.getExtensions(); + assertEquals(2, exts.length); + } + + @Test + public void testEqualsObject() { + FileChooserFilter filter2 = new FileChooserFilter(description, extension); + assertFalse(filter.equals(filter2)); + } + +} -- You received this message because you are subscribed to the Google Groups "cytoscape-cvs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/cytoscape-cvs?hl=en.
