svn commit: r16034 - trunk/src/argouml-app/src/org/argouml: uml/reveng util

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: thn
Date: 2008-11-12 14:45:38-0800
New Revision: 16034

Modified:
   trunk/src/argouml-app/src/org/argouml/uml/reveng/Import.java
   trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java
   trunk/src/argouml-app/src/org/argouml/util/SuffixFilter.java

Log:
make the selection of file filter functional, this is needed for the classfile importer since it has different file filters

(plus completing the support for the case when no importer is available)



Modified: trunk/src/argouml-app/src/org/argouml/uml/reveng/Import.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/reveng/Import.java?view=diff&rev=16034&p1=trunk/src/argouml-app/src/org/argouml/uml/reveng/Import.java&p2=trunk/src/argouml-app/src/org/argouml/uml/reveng/Import.java&r1=16033&r2=16034
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/reveng/Import.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/reveng/Import.java	2008-11-12 14:45:38-0800
@@ -609,6 +609,13 @@
                 }
             }
             theImport.setSelectedFiles(files);
+            try {
+                theImport.setSelectedSuffixFilter(
+                        (SuffixFilter) getFileFilter());
+            } catch (Exception e) {
+                // this is because of the (senseless?) "All files" FileFilter
+                theImport.setSelectedSuffixFilter(null);
+            }
             Globals.setLastDirectory(dir.getPath());
             theImport.disposeDialog();
 

Modified: trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java?view=diff&rev=16034&p1=trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java&p2=trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java&r1=16033&r2=16034
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/reveng/ImportCommon.java	2008-11-12 14:45:38-0800
@@ -49,6 +49,7 @@
 import org.argouml.uml.diagram.ArgoDiagram;

 import org.argouml.uml.diagram.static_structure.ClassDiagramGraphModel;

 import org.argouml.uml.diagram.static_structure.layout.ClassdiagramLayouter;

+import org.argouml.util.SuffixFilter;

 import org.tigris.gef.base.Globals;

 

 /**

@@ -95,6 +96,8 @@
     private DiagramInterface diagramInterface;

 

     private File[] selectedFiles;

+    

+    private SuffixFilter selectedSuffixFilter;

 

     protected ImportCommon() {

         super();

@@ -104,16 +107,15 @@
                 .getImporters()) {

             modules.put(importer.getName(), importer);

         }

-        if (modules.size() == 0) {

+        if (modules.isEmpty()) {

             throw new RuntimeException("Internal error. "

                     + "No importer modules found.");

         }

-

-        // "Java" is a default module

+        // "Java" is the default module for historical reasons,

+        // but it's not required to be there

         currentModule = modules.get("Java");

         if (currentModule == null) {

-            throw new RuntimeException("Internal error. "

-                       + "Default import module not found");

+            currentModule = modules.elements().nextElement();

         }

     }

 

@@ -162,10 +164,15 @@
         List<File> files = Arrays.asList(getSelectedFiles());

         if (files.size() == 1) {

             File file = files.get(0);

+            SuffixFilter suffixFilters[] = {selectedSuffixFilter};

+            if (suffixFilters[0] == null) {

+                // not a SuffixFilter selected, so we take all

+                suffixFilters = currentModule.getSuffixFilters();

+            }

             files =

                 FileImportUtils.getList(

-                        file, isDescendSelected(), currentModule

-                        .getSuffixFilters(), monitor);

+                        file, isDescendSelected(),

+                        suffixFilters, monitor);

             if (file.isDirectory()) {

                 setSrcPath(file.getAbsolutePath());

             } else {

@@ -277,6 +284,15 @@
         selectedFiles = files;

     }

 

+    /**

+     * Set the selected (file) suffix filter.

+     * 

+     * @param suffixFilter the (file) suffix filter

+     */

+    protected void setSelectedSuffixFilter(final SuffixFilter suffixFilter) {

+        selectedSuffixFilter = suffixFilter;

+    }

+

     protected File[] getSelectedFiles() {

 	File[] copy = new File[selectedFiles.length];

 	for (int i = 0; i < selectedFiles.length; i++)


Modified: trunk/src/argouml-app/src/org/argouml/util/SuffixFilter.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/util/SuffixFilter.java?view=diff&rev=16034&p1=trunk/src/argouml-app/src/org/argouml/util/SuffixFilter.java&p2=trunk/src/argouml-app/src/org/argouml/util/SuffixFilter.java&r1=16033&r2=16034
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/util/SuffixFilter.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/util/SuffixFilter.java	2008-11-12 14:45:38-0800
@@ -106,12 +106,17 @@
      * @see javax.swing.filechooser.FileFilter#getDescription()
      */
     public String getDescription() {
-        String result = desc + " (";
-        for (int i = 0; i < suffixes.length - 1; i++) {
-            result = result + "." + suffixes[i] + ", ";
+        StringBuffer result = new StringBuffer(desc);
+        result.append(" (");
+        for (int i = 0; i < suffixes.length; i++) {
+            result.append('.');
+            result.append(suffixes[i]);
+            if (i < suffixes.length - 1) {
+                result.append(", ");
+            }
         }
-        result = result + suffixes[suffixes.length - 1] + ")";
-        return result;
+        result.append(')');
+        return result.toString();
     }
 
     /**
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.