Package org.focusns.web.modules.photo

Source Code of org.focusns.web.modules.photo.AlbumWidget

package org.focusns.web.modules.photo;

import org.focusns.common.web.widget.annotation.bind.WidgetAttribute;
import org.focusns.common.web.widget.mvc.support.Navigator;
import org.focusns.common.web.widget.stereotype.Widget;
import org.focusns.model.core.Project;
import org.focusns.model.core.ProjectUser;
import org.focusns.model.photo.Album;
import org.focusns.service.photo.AlbumService;
import org.focusns.web.widget.constraint.annotation.RequiresProject;
import org.focusns.web.widget.constraint.annotation.RequiresProjectUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Widget
@RequestMapping("photo")
public class AlbumWidget {

    @Autowired
    private AlbumService albumService;

    @RequiresProject
    @RequestMapping("album-list")
    public String doList(@WidgetAttribute Project project, Model model) {
        //
        List<Album> albums = albumService.listAlbums(project.getId());
        model.addAttribute("albums", albums);
        //
        return "modules/photo/album-list";
    }

    @RequiresProject
    @RequiresProjectUser
    @RequestMapping("album-edit")
    public String doEdit(@RequestParam(required = false) Long albumId, @WidgetAttribute Project project, @WidgetAttribute ProjectUser projectUser, Model model) {
        //
        Album album = new Album();
        if(albumId==null) {
            album.setProjectId(project.getId());
            album.setCreatedById(projectUser.getId());
            album.setModifiedById(projectUser.getId());
        } else {
            album = albumService.getAlbum(albumId);
        }
        model.addAttribute("album", album);
        //
        return "modules/photo/album-edit";
    }

    @RequestMapping({"album-create", "album-modify"})
    public void doModify(Album album) {
        //
        Navigator.get().withAttribute("album", album);
        if(album.getId()>0) {
            albumService.modifyAlbum(album);
            Navigator.get().navigateTo("album-modified");
        } else {
            albumService.createAlbum(album);
            Navigator.get().navigateTo("album-created");
        }
    }

}
TOP

Related Classes of org.focusns.web.modules.photo.AlbumWidget

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.