Author: ghuber
Date: Mon Jan  6 14:09:33 2014
New Revision: 1555788

URL: http://svn.apache.org/r1555788
Log:
Media files testing changes.

Modified:
    
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/MediaFileManager.java
    
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
    
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/MediaFile.java
    
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java
    
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/MediaFileManager.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/MediaFileManager.java?rev=1555788&r1=1555787&r2=1555788&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/MediaFileManager.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/MediaFileManager.java
 Mon Jan  6 14:09:33 2014
@@ -203,5 +203,4 @@ public interface MediaFileManager {
      */
     void removeMediaFileTag(String name, MediaFile entry)
             throws WebloggerException;
-
 }

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java?rev=1555788&r1=1555787&r2=1555788&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
 Mon Jan  6 14:09:33 2014
@@ -33,14 +33,14 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
-
 import java.util.Properties;
 import java.util.Set;
 import java.util.StringTokenizer;
-import javax.imageio.ImageIO;
 
+import javax.imageio.ImageIO;
 import javax.persistence.NoResultException;
 import javax.persistence.Query;
+
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -60,6 +60,7 @@ import org.apache.roller.weblogger.pojos
 import org.apache.roller.weblogger.pojos.MediaFileType;
 import org.apache.roller.weblogger.pojos.User;
 import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.pojos.WeblogEntry;
 import org.apache.roller.weblogger.util.RollerMessages;
 import org.apache.roller.weblogger.util.Utilities;
 
@@ -111,16 +112,22 @@ public class JPAMediaFileManagerImpl imp
             // Refresh associated parent for changes
             strategy.refresh(mediaFileDir.getParent());
             mediaFileDir.setParent(targetDir);
+            if ("/".equals(targetDir.getPath())) {
+                mediaFileDir.setPath("/" + mediaFileDir.getName());
+            } else {
+                mediaFileDir.setPath(targetDir.getPath() + "/"
+                        + mediaFileDir.getName());
+            }
             this.strategy.store(mediaFileDir);
         }
-        
+
         // Refresh associated parent for changes
         roller.flush();
         strategy.refresh(targetDir);
         if (targetDir.getParent() != null) {
             strategy.refresh(targetDir.getParent());
         }
-        
+
         // update weblog last modified date. date updated by saveWebsite()
         roller.getWeblogManager().saveWeblog(targetDir.getWeblog());
     }

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/MediaFile.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/MediaFile.java?rev=1555788&r1=1555787&r2=1555788&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/MediaFile.java 
(original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/MediaFile.java 
Mon Jan  6 14:09:33 2014
@@ -530,14 +530,11 @@ public class MediaFile implements Serial
             return false;
         }
         MediaFile o = (MediaFile) other;
-        return new EqualsBuilder().append(getName(), o.getName())
-                .append(getDirectory(), o.getDirectory())
-                .append(getWeblog(), o.getWeblog()).isEquals();
+        return new EqualsBuilder().append(getId(), o.getId()).isEquals();
     }
 
     public int hashCode() {
-        return new HashCodeBuilder().append(getName()).append(getDirectory())
-                .append(getWeblog()).toHashCode();
+        return new HashCodeBuilder().append(getId()).toHashCode();
     }
 
 }

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java?rev=1555788&r1=1555787&r2=1555788&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java
 Mon Jan  6 14:09:33 2014
@@ -38,7 +38,6 @@ import org.apache.roller.weblogger.util.
 import org.apache.roller.weblogger.util.Utilities;
 import org.apache.struts2.interceptor.validation.SkipValidation;
 
-
 /**
  * Adds a new media file.
  */
@@ -62,8 +61,7 @@ public class MediaFileAdd extends MediaF
 
     private List<MediaFile> newFiles = new ArrayList<MediaFile>();
 
-    private String directoryPath =  null;
-    
+    private String directoryPath = null;
 
     public MediaFileAdd() {
         this.actionName = "mediaFileAdd";
@@ -78,27 +76,34 @@ public class MediaFileAdd extends MediaF
         log.debug("Into myprepare");
         refreshAllDirectories();
         try {
-            MediaFileManager mgr = 
WebloggerFactory.getWeblogger().getMediaFileManager();
+            MediaFileManager mgr = WebloggerFactory.getWeblogger()
+                    .getMediaFileManager();
             if (!StringUtils.isEmpty(bean.getDirectoryId())) {
                 setDirectory(mgr.getMediaFileDirectory(bean.getDirectoryId()));
 
             } else if (StringUtils.isNotEmpty(directoryPath)) {
-                
setDirectory(mgr.getMediaFileDirectoryByPath(getActionWeblog(), directoryPath));
+                setDirectory(mgr.getMediaFileDirectoryByPath(getActionWeblog(),
+                        directoryPath));
 
             } else {
-                
setDirectory(mgr.createRootMediaFileDirectory(getActionWeblog()));
+                MediaFileDirectory root = mgr
+                        .getMediaFileRootDirectory(getActionWeblog());
+                if (root == null) {
+                    root = mgr.createRootMediaFileDirectory(getActionWeblog());
+                }
+                setDirectory(root);
             }
             directoryPath = getDirectory().getPath();
             bean.setDirectoryId(getDirectory().getId());
 
         } catch (WebloggerException ex) {
             log.error("Error looking up media file directory", ex);
-        } finally{
-            //flush
+        } finally {
+            // flush
             try {
                 WebloggerFactory.getWeblogger().flush();
             } catch (WebloggerException e) {
-                //ignored
+                // ignored
             }
         }
     }
@@ -123,8 +128,9 @@ public class MediaFileAdd extends MediaF
         myValidate();
 
         if (!hasActionErrors()) {
-            
-            MediaFileManager manager = 
WebloggerFactory.getWeblogger().getMediaFileManager();
+
+            MediaFileManager manager = WebloggerFactory.getWeblogger()
+                    .getMediaFileManager();
 
             RollerMessages errors = new RollerMessages();
             List<MediaFile> uploaded = new ArrayList();
@@ -152,36 +158,43 @@ public class MediaFileAdd extends MediaF
                         }
 
                         // make sure fileName is valid
-                        if (fileName.indexOf('/') != -1 ||
-                                fileName.indexOf('\\') != -1 ||
-                                fileName.contains("..")) {
+                        if (fileName.indexOf('/') != -1
+                                || fileName.indexOf('\\') != -1
+                                || fileName.contains("..")) {
                             addError("uploadFiles.error.badPath", fileName);
                             continue;
                         }
 
-                        mediaFile.setName(       fileName);
-                        mediaFile.setDirectory(  getDirectory());
-                        mediaFile.setWeblog(     getActionWeblog());
-                        mediaFile.setLength(     
this.uploadedFiles[i].length());
-                        mediaFile.setInputStream(new 
FileInputStream(this.uploadedFiles[i]));
-                        
mediaFile.setContentType(this.uploadedFilesContentType[i]);
+                        mediaFile.setName(fileName);
+                        mediaFile.setDirectory(getDirectory());
+                        mediaFile.setWeblog(getActionWeblog());
+                        mediaFile.setLength(this.uploadedFiles[i].length());
+                        mediaFile.setInputStream(new FileInputStream(
+                                this.uploadedFiles[i]));
+                        mediaFile
+                                
.setContentType(this.uploadedFilesContentType[i]);
 
                         // insome cases Struts2 is not able to guess the 
content
                         // type correctly and assigns the default, which is
                         // octet-stream. So in cases where we see octet-stream
                         // we double check and see if we can guess the content
                         // type via the Java MIME type facilities.
-                        
mediaFile.setContentType(this.uploadedFilesContentType[i]);
+                        mediaFile
+                                
.setContentType(this.uploadedFilesContentType[i]);
                         if (mediaFile.getContentType() == null
-                                || 
mediaFile.getContentType().endsWith("/octet-stream")) {
-                            
-                            String ctype = 
Utilities.getContentTypeFromFileName(mediaFile.getName());
+                                || mediaFile.getContentType().endsWith(
+                                        "/octet-stream")) {
+
+                            String ctype = Utilities
+                                    .getContentTypeFromFileName(mediaFile
+                                            .getName());
                             if (null != ctype) {
                                 mediaFile.setContentType(ctype);
                             }
                         }
 
-                        manager.createMediaFile(getActionWeblog(), mediaFile, 
errors);
+                        manager.createMediaFile(getActionWeblog(), mediaFile,
+                                errors);
                         WebloggerFactory.getWeblogger().flush();
 
                         if (mediaFile.isImageFile()) {
@@ -207,7 +220,8 @@ public class MediaFileAdd extends MediaF
                 if (uploaded.size() > 0 && !this.errorsExist()) {
                     addMessage("uploadFiles.uploadedFiles");
                     for (MediaFile upload : uploaded) {
-                        addMessage("uploadFiles.uploadedFile", 
upload.getPermalink());
+                        addMessage("uploadFiles.uploadedFile",
+                                upload.getPermalink());
                     }
 
                 } else {
@@ -284,7 +298,8 @@ public class MediaFileAdd extends MediaF
     }
 
     /**
-     * @param newImages the newImages to set
+     * @param newImages
+     *            the newImages to set
      */
     public void setNewImages(List<MediaFile> newImages) {
         this.newImages = newImages;
@@ -298,7 +313,8 @@ public class MediaFileAdd extends MediaF
     }
 
     /**
-     * @param newFiles the newFiles to set
+     * @param newFiles
+     *            the newFiles to set
      */
     public void setNewFiles(List<MediaFile> newFiles) {
         this.newFiles = newFiles;
@@ -312,7 +328,8 @@ public class MediaFileAdd extends MediaF
     }
 
     /**
-     * @param directoryPath the directoryPath to set
+     * @param directoryPath
+     *            the directoryPath to set
      */
     public void setDirectoryPath(String directoryPath) {
         this.directoryPath = directoryPath;

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java?rev=1555788&r1=1555787&r2=1555788&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java
 Mon Jan  6 14:09:33 2014
@@ -34,7 +34,7 @@ import org.apache.roller.weblogger.ui.st
 
 /**
  * Base class for all actions related to media files.
- *
+ * 
  */
 @SuppressWarnings("serial")
 public class MediaFileBase extends UIAction {
@@ -54,7 +54,8 @@ public class MediaFileBase extends UIAct
 
         try {
             log.debug("Processing delete of file id - " + this.mediaFileId);
-            MediaFileManager manager = 
WebloggerFactory.getWeblogger().getMediaFileManager();
+            MediaFileManager manager = WebloggerFactory.getWeblogger()
+                    .getMediaFileManager();
             MediaFile mediaFile = manager.getMediaFile(this.mediaFileId);
             manager.removeMediaFile(getActionWeblog(), mediaFile);
             // flush changes
@@ -63,7 +64,7 @@ public class MediaFileBase extends UIAct
             addMessage("mediaFile.delete.success");
         } catch (WebloggerException e) {
             log.error("Error deleting media file", e);
-            addError("mediaFile.delete.error",this.mediaFileId);
+            addError("mediaFile.delete.error", this.mediaFileId);
         }
     }
 
@@ -73,8 +74,10 @@ public class MediaFileBase extends UIAct
     protected void doIncludeMediaFileInGallery() {
 
         try {
-            log.debug("Processing include-in-gallery of file id - " + 
this.mediaFileId);
-            MediaFileManager manager = 
WebloggerFactory.getWeblogger().getMediaFileManager();
+            log.debug("Processing include-in-gallery of file id - "
+                    + this.mediaFileId);
+            MediaFileManager manager = WebloggerFactory.getWeblogger()
+                    .getMediaFileManager();
             MediaFile mediaFile = manager.getMediaFile(this.mediaFileId);
             mediaFile.setSharedForGallery(true);
             manager.updateMediaFile(getActionWeblog(), mediaFile);
@@ -83,7 +86,7 @@ public class MediaFileBase extends UIAct
             addMessage("mediaFile.includeInGallery.success");
         } catch (WebloggerException e) {
             log.error("Error including media file in gallery", e);
-            addError("mediaFile.includeInGallery.error",this.mediaFileId);
+            addError("mediaFile.includeInGallery.error", this.mediaFileId);
         }
     }
 
@@ -94,10 +97,12 @@ public class MediaFileBase extends UIAct
         String[] fileIds = getSelectedMediaFiles();
         String[] dirIds = getSelectedMediaFileDirectories();
         try {
-            MediaFileManager manager = 
WebloggerFactory.getWeblogger().getMediaFileManager();
+            MediaFileManager manager = WebloggerFactory.getWeblogger()
+                    .getMediaFileManager();
 
             if (fileIds != null && fileIds.length > 0) {
-                log.debug("Processing delete of " + fileIds.length + " media 
files.");
+                log.debug("Processing delete of " + fileIds.length
+                        + " media files.");
                 for (int index = 0; index < fileIds.length; index++) {
                     log.debug("Deleting media file - " + fileIds[index]);
                     MediaFile mediaFile = manager.getMediaFile(fileIds[index]);
@@ -108,19 +113,25 @@ public class MediaFileBase extends UIAct
             }
 
             if (dirIds != null && dirIds.length > 0) {
-                log.debug("Processing delete of " + dirIds.length + " media 
directories.");
+                log.debug("Processing delete of " + dirIds.length
+                        + " media directories.");
                 manager = 
WebloggerFactory.getWeblogger().getMediaFileManager();
                 for (int index = 0; index < dirIds.length; index++) {
-                    log.debug("Deleting media file directory - " + 
dirIds[index]);
-                    MediaFileDirectory mediaFileDir = 
manager.getMediaFileDirectory(dirIds[index]);
+                    log.debug("Deleting media file directory - "
+                            + dirIds[index]);
+                    MediaFileDirectory mediaFileDir = manager
+                            .getMediaFileDirectory(dirIds[index]);
                     if (mediaFileDir != null) {
-                        
mediaFileDir.getParent().removeChildDirectory(mediaFileDir);
+                        mediaFileDir.getParent().removeChildDirectory(
+                                mediaFileDir);
                         manager.removeMediaFileDirectory(mediaFileDir);
                     }
                 }
+                refreshAllDirectories();
             }
-            
WebloggerFactory.getWeblogger().getWeblogManager().saveWeblog(this.getActionWeblog());
-            
+            WebloggerFactory.getWeblogger().getWeblogManager()
+                    .saveWeblog(this.getActionWeblog());
+
             // flush changes
             WebloggerFactory.getWeblogger().flush();
             WebloggerFactory.getWeblogger().release();
@@ -139,34 +150,62 @@ public class MediaFileBase extends UIAct
         String[] fileIds = getSelectedMediaFiles();
         String[] dirIds = getSelectedMediaFileDirectories();
         try {
-            MediaFileManager manager = 
WebloggerFactory.getWeblogger().getMediaFileManager();
+            int movedFiles = 0;
+            MediaFileManager manager = WebloggerFactory.getWeblogger()
+                    .getMediaFileManager();
 
             if (fileIds != null && fileIds.length > 0) {
-                log.debug("Processing move of " + fileIds.length + " media 
files.");
-                MediaFileDirectory targetDirectory =
-                        manager.getMediaFileDirectory(this.selectedDirectory);
+                log.debug("Processing move of " + fileIds.length
+                        + " media files.");
+                MediaFileDirectory targetDirectory = manager
+                        .getMediaFileDirectory(this.selectedDirectory);
                 for (int index = 0; index < fileIds.length; index++) {
-                    log.debug("Moving media file - " + fileIds[index] + " to 
directory - " + this.selectedDirectory);
+                    log.debug("Moving media file - " + fileIds[index]
+                            + " to directory - " + this.selectedDirectory);
                     MediaFile mediaFile = manager.getMediaFile(fileIds[index]);
-                    manager.moveMediaFile(mediaFile, targetDirectory);
+                    if (mediaFile != null) {
+                        if (!mediaFile.getDirectory().getId()
+                                .equals(targetDirectory.getId())) {
+                            manager.moveMediaFile(mediaFile, targetDirectory);
+                            movedFiles++;
+                        }
+                    }
                 }
             }
 
+            int movedDirs = 0;
             if (dirIds != null && dirIds.length > 0) {
-                log.debug("Processing move of " + dirIds.length + " media 
files directories.");
-                MediaFileDirectory targetDirectory =
-                        manager.getMediaFileDirectory(this.selectedDirectory);
+                log.debug("Processing move of " + dirIds.length
+                        + " media files directories.");
+                MediaFileDirectory targetDirectory = manager
+                        .getMediaFileDirectory(this.selectedDirectory);
                 for (int index = 0; index < dirIds.length; index++) {
-                    log.debug("Moving media file - " + dirIds[index] + " to 
directory - " + this.selectedDirectory);
-                    MediaFileDirectory mediaFileDir = 
manager.getMediaFileDirectory(dirIds[index]);
-                    manager.moveMediaFileDirectory(mediaFileDir, 
targetDirectory);
+                    log.debug("Moving media file - " + dirIds[index]
+                            + " to directory - " + this.selectedDirectory);
+                    MediaFileDirectory mediaFileDir = manager
+                            .getMediaFileDirectory(dirIds[index]);
+                    if (mediaFileDir != null) {
+                        if (!mediaFileDir.getId().equals(
+                                targetDirectory.getId())
+                                && !mediaFileDir.getParent().getId()
+                                        .equals(targetDirectory.getId())) {
+                            manager.moveMediaFileDirectory(mediaFileDir,
+                                    targetDirectory);
+                            movedDirs++;
+                        }
+                    }
                 }
             }
 
             // flush changes
             WebloggerFactory.getWeblogger().flush();
             WebloggerFactory.getWeblogger().release();
-            addMessage("mediaFile.move.success");
+            if (movedFiles > 0 || movedDirs > 0) {
+                addMessage("mediaFile.move.success");
+                if (movedDirs > 0) {
+                    refreshAllDirectories();
+                }
+            }
 
         } catch (WebloggerException e) {
             log.error("Error moving selected media files", e);
@@ -179,11 +218,14 @@ public class MediaFileBase extends UIAct
      */
     protected void refreshAllDirectories() {
         try {
-            MediaFileManager mgr = 
WebloggerFactory.getWeblogger().getMediaFileManager();
-            List<MediaFileDirectory> directories = 
mgr.getMediaFileDirectories(getActionWeblog());
+            MediaFileManager mgr = WebloggerFactory.getWeblogger()
+                    .getMediaFileManager();
+            List<MediaFileDirectory> directories = mgr
+                    .getMediaFileDirectories(getActionWeblog());
             List<MediaFileDirectory> sortedDirList = new 
ArrayList<MediaFileDirectory>();
             sortedDirList.addAll(directories);
-            Collections.sort(sortedDirList, new 
MediaFileDirectoryComparator(DirectoryComparatorType.PATH));
+            Collections.sort(sortedDirList, new MediaFileDirectoryComparator(
+                    DirectoryComparatorType.PATH));
             setAllDirectories(sortedDirList);
         } catch (WebloggerException ex) {
             log.error("Error looking up media file directories", ex);
@@ -239,9 +281,11 @@ public class MediaFileBase extends UIAct
     }
 
     /**
-     * @param selectedMediaFileDirectories the selectedMediaFileDirectories to 
set
+     * @param selectedMediaFileDirectories
+     *            the selectedMediaFileDirectories to set
      */
-    public void setSelectedMediaFileDirectories(String[] 
selectedMediaFileDirectories) {
+    public void setSelectedMediaFileDirectories(
+            String[] selectedMediaFileDirectories) {
         this.selectedMediaFileDirectories = selectedMediaFileDirectories;
     }
 }


Reply via email to