/connect-web/src/main/java/org/osforce/connect/web/module/commons/TagWidget.java
http://focus-sns.googlecode.com/ · Java · 74 lines · 57 code · 10 blank · 7 comment · 1 complexity · 25cbf9517b129e177725c942eea411f3 MD5 · raw file
- package org.osforce.connect.web.module.commons;
- import java.util.Collections;
- import java.util.List;
- import java.util.Map;
- import org.apache.commons.lang.math.NumberUtils;
- import org.osforce.connect.entity.commons.Tag;
- import org.osforce.connect.service.commons.TagService;
- import org.osforce.connect.web.AttributeKeys;
- import org.osforce.spring4me.commons.collection.CollectionUtil;
- import org.osforce.spring4me.dao.Page;
- import org.osforce.spring4me.web.bind.annotation.PrefParam;
- import org.osforce.spring4me.web.stereotype.Widget;
- 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.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.context.request.WebRequest;
- /**
- *
- * @author <a href="mailto:haozhonghu@hotmail.com">gavin</a>
- * @since 1.1.1
- * @create Jun 3, 2011 - 11:22:09 AM
- * <a href="http://www.opensourceforce.org">????</a>
- */
- @Widget
- @RequestMapping("/commons/tag")
- public class TagWidget {
- private TagService tagService;
-
- public TagWidget() {
- }
-
- @Autowired
- public void setTagService(TagService tagService) {
- this.tagService = tagService;
- }
-
- @RequestMapping("/list-view")
- public String doListView(@PrefParam String paramName,
- @PrefParam String entity, WebRequest request, Model model) {
- Long linkedId = NumberUtils.createLong(request.getParameter(paramName));
- List<Tag> tags = tagService.getTagList(linkedId, entity);
- model.addAttribute(AttributeKeys.TAG_LIST_KEY_READABLE, tags);
- return "commons/tag-list.ftl";
- }
-
- @RequestMapping(value="/delete-action", method=RequestMethod.GET)
- public @ResponseBody Object doDeleteAction(@RequestParam Long tagId) {
- tagService.deleteTag(tagId);
- return Collections.singletonMap("id", tagId);
- }
-
- @RequestMapping(value="/auto-action", method=RequestMethod.GET)
- public @ResponseBody Object autoComplete(@RequestParam String query) {
- Page<Tag> page = new Page<Tag>(10);
- page = tagService.getTagPage(page, query);
- Map<String, Object> model = CollectionUtil.newHashMap();
- model.put("query", query);
- model.put("data", "");
- List<String> suggestions = CollectionUtil.newArrayList();
- for(Tag tag : page.getResult()) {
- suggestions.add(tag.getName());
- }
- model.put("suggestions", suggestions);
- return model;
- }
-
- }