Store the scanned files in the list.
[jSite.git] / src / de / todesbaum / jsite / gui / ProjectFilesPage.java
index 2b19a72..fcbc369 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,12 @@ 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()]));
+                                       projectFileList.setListData(files.toArray());
                                        projectFileList.clearSelection();
                                }
                        });
@@ -373,7 +360,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);
                                }
                        }
@@ -402,11 +396,11 @@ public class ProjectFilesPage extends TWizardPage implements ActionListener, Lis
         *         no file is selected
         */
        private FileOption getSelectedFile() {
-               String filename = (String) projectFileList.getSelectedValue();
-               if (filename == null) {
+               ScannedFile scannedFile = (ScannedFile) projectFileList.getSelectedValue();
+               if (scannedFile == null) {
                        return null;
                }
-               return project.getFileOption(filename);
+               return project.getFileOption(scannedFile.getFilename());
        }
 
        //
@@ -423,10 +417,11 @@ public class ProjectFilesPage extends TWizardPage implements ActionListener, Lis
                        actionScan();
                        return;
                }
-               String filename = (String) projectFileList.getSelectedValue();
-               if (filename == null) {
+               ScannedFile scannedFile = (ScannedFile) projectFileList.getSelectedValue();
+               if (scannedFile == null) {
                        return;
                }
+               String filename = scannedFile.getFilename();
                FileOption fileOption = project.getFileOption(filename);
                if (source instanceof JCheckBox) {
                        JCheckBox checkBox = (JCheckBox) source;
@@ -472,9 +467,9 @@ public class ProjectFilesPage extends TWizardPage implements ActionListener, Lis
         * {@inheritDoc}
         */
        public void valueChanged(ListSelectionEvent e) {
-               String filename = (String) projectFileList.getSelectedValue();
-               boolean enabled = filename != null;
-               boolean insert = fileOptionsInsertCheckBox.isSelected();
+               ScannedFile scannedFile = (ScannedFile) projectFileList.getSelectedValue();
+               boolean enabled = scannedFile != null;
+               String filename = (scannedFile == null) ? null : scannedFile.getFilename();
                defaultFileCheckBox.setEnabled(enabled);
                fileOptionsInsertCheckBox.setEnabled(enabled);
                fileOptionsRenameCheckBox.setEnabled(enabled);
@@ -518,11 +513,11 @@ public class ProjectFilesPage extends TWizardPage implements ActionListener, Lis
         *            The document event to process
         */
        private void processDocumentUpdate(DocumentEvent documentEvent) {
-               String filename = (String) projectFileList.getSelectedValue();
-               if (filename == null) {
+               ScannedFile scannedFile = (ScannedFile) projectFileList.getSelectedValue();
+               if (scannedFile == null) {
                        return;
                }
-               FileOption fileOption = project.getFileOption(filename);
+               FileOption fileOption = project.getFileOption(scannedFile.getFilename());
                Document document = documentEvent.getDocument();
                try {
                        String text = document.getText(0, document.getLength());