Search for known files correctly.
[jSite.git] / src / de / todesbaum / jsite / gui / ProjectFilesPage.java
index 2b19a72..31ec6ae 100644 (file)
@@ -27,7 +27,6 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
 import java.text.MessageFormat;
-import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -56,6 +55,7 @@ import javax.swing.text.Document;
 
 import de.todesbaum.jsite.application.FileOption;
 import de.todesbaum.jsite.application.Project;
+import de.todesbaum.jsite.gui.FileScanner.ScannedFile;
 import de.todesbaum.jsite.i18n.I18n;
 import de.todesbaum.jsite.i18n.I18nContainer;
 import de.todesbaum.util.mime.DefaultMIMETypes;
@@ -319,19 +319,6 @@ public class ProjectFilesPage extends TWizardPage implements ActionListener, Lis
                });
        }
 
-       /**
-        * Returns a list of all project files.
-        *
-        * @return All project files
-        */
-       private List<String> getProjectFiles() {
-               List<String> files = new ArrayList<String>();
-               for (int index = 0, size = projectFileList.getModel().getSize(); index < size; index++) {
-                       files.add((String) projectFileList.getModel().getElementAt(index));
-               }
-               return files;
-       }
-
        //
        // ACTIONS
        //
@@ -360,12 +347,16 @@ public class ProjectFilesPage extends TWizardPage implements ActionListener, Lis
        public void fileScannerFinished(FileScanner fileScanner) {
                final boolean error = fileScanner.isError();
                if (!error) {
-                       final List<String> files = fileScanner.getFiles();
+                       final List<ScannedFile> files = fileScanner.getFiles();
                        SwingUtilities.invokeLater(new Runnable() {
 
                                @SuppressWarnings("synthetic-access")
                                public void run() {
-                                       projectFileList.setListData(files.toArray(new String[files.size()]));
+                                       String[] filenames = new String[files.size()];
+                                       for (int fileIndex = 0; fileIndex < files.size(); ++fileIndex) {
+                                               filenames[fileIndex] = files.get(fileIndex).getFilename();
+                                       }
+                                       projectFileList.setListData(filenames);
                                        projectFileList.clearSelection();
                                }
                        });
@@ -373,7 +364,14 @@ public class ProjectFilesPage extends TWizardPage implements ActionListener, Lis
                        Iterator<String> filenames = new HashSet<String>(project.getFileOptions().keySet()).iterator();
                        while (filenames.hasNext()) {
                                String filename = filenames.next();
-                               if (!files.contains(filename)) {
+                               boolean found = false;
+                               for (ScannedFile scannedFile : files) {
+                                       if (scannedFile.getFilename().equals(filename)) {
+                                               found = true;
+                                               break;
+                                       }
+                               }
+                               if (!found) {
                                        entriesToRemove.add(filename);
                                }
                        }
@@ -474,7 +472,6 @@ public class ProjectFilesPage extends TWizardPage implements ActionListener, Lis
        public void valueChanged(ListSelectionEvent e) {
                String filename = (String) projectFileList.getSelectedValue();
                boolean enabled = filename != null;
-               boolean insert = fileOptionsInsertCheckBox.isSelected();
                defaultFileCheckBox.setEnabled(enabled);
                fileOptionsInsertCheckBox.setEnabled(enabled);
                fileOptionsRenameCheckBox.setEnabled(enabled);