/* * Aipo is a groupware program developed by TOWN, Inc. * Copyright (C) 2004-2015 TOWN, Inc. * http://www.aipo.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.aimluck.eip.wiki; import info.bliki.wiki.model.WikiModel; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; import com.aimluck.commons.field.ALDateTimeField; import com.aimluck.commons.field.ALNumberField; import com.aimluck.commons.field.ALStringField; import com.aimluck.eip.common.ALData; import com.aimluck.eip.common.ALEipUser; import com.aimluck.eip.fileupload.beans.FileuploadBean; import com.aimluck.eip.util.ALCommonUtils; import com.aimluck.eip.util.ALEipUtils; import com.aimluck.eip.util.ALLocalizationUtils; /** * 掲示板トピックのResultData <BR> * */ public class WikiResultData implements ALData { /** logger */ private static final JetspeedLogger logger = JetspeedLogFactoryService .getLogger(WikiResultData.class.getName()); private ALNumberField id; private ALStringField name; /** 親 ID */ private ALNumberField parent_id; /** 親wiki名 */ private ALStringField parent_name; /** 親フラグ */ private boolean is_parent; /** 公開/非公開フラグ */ private boolean is_public; /** 新着フラグ */ private boolean new_wiki; /** メモ */ private ALStringField note; /** 所有者 ID */ private ALNumberField owner_id; /** 登録者名 */ private ALStringField create_user; /** 更新者名 */ private ALStringField update_user; /** 更新者ID */ private ALNumberField update_user_id; /** 作成日 */ private ALDateTimeField create_date; /** 更新日 */ private ALDateTimeField update_date; /** 添付ファイルリスト */ private List<FileuploadBean> attachmentFileList = new ArrayList<FileuploadBean>(); private WikiModel model; /** URL */ private ALStringField baseImageLink; private ALStringField baseImageRawLink; /** * * */ @Override public void initField() { id = new ALNumberField(); name = new ALStringField(); parent_id = new ALNumberField(); parent_name = new ALStringField(); owner_id = new ALNumberField(); create_user = new ALStringField(); update_user = new ALStringField(); update_user_id = new ALNumberField(); create_date = new ALDateTimeField(); update_date = new ALDateTimeField(); note = new ALStringField(); baseImageLink = new ALStringField(); baseImageRawLink = new ALStringField(); is_public = true; new_wiki = false; } public void initalizeWikiModel(String imgUri, String internalLinkUri) { model = new WikiModel(imgUri, internalLinkUri); } /** * @return */ public ALNumberField getId() { return id; } /** * @param i */ public void setId(long i) { id.setValue(i); } /** * @return */ public String getName() { return name.toString(); } public String getNameHtml() { return ALCommonUtils.replaceToAutoCR(name.toString()); } /** * @param string */ public void setName(String string) { name.setValue(string); } /** * @return */ public String getNote() { String htmlText; try { String noteText = note.toString(); /* 太字 */ noteText = noteText.replaceAll("'''", "'''"); /* 斜体 */ noteText = noteText.replaceAll("''", "''"); /* 下線 */ noteText = noteText.replaceAll("<u>", "<u>"); noteText = noteText.replaceAll("</u>", "</u>"); /* 取り消し線 */ noteText = noteText.replaceAll("<del>", "<del>"); noteText = noteText.replaceAll("</del>", "</del>"); if (null == model) { model = new WikiModel("", ""); } htmlText = model.render(noteText); /* 添付ファイル */ for (FileuploadBean attachmentfile : attachmentFileList) { htmlText = htmlText .replace( "!" + attachmentfile.getFileName() + "!", "<br>" + "<a href=\"javascript:void(0);\" onclick=\"aipo.fileupload.showImageDialog('" + baseImageRawLink + "/ownerid/" + owner_id.getValue() + "/entityid/" + id + "/attachmentindex/" + attachmentfile.getFileId() + "/f/" + attachmentfile.getFileName() + "');\" >" + "<img class='width_thumbs' border='0' alt='" + attachmentfile.getFileName() + "' title='" + attachmentfile.getFileName() + "' src='" + baseImageLink + "?entityid=" + id + "&attachmentindex=" + attachmentfile.getFileId() + "'></a>"); } } catch (Exception e) { logger.error("WikiResultData.getNote", e); return ALLocalizationUtils.getl10n("WIKI_ERROR"); } return htmlText; } /** * @param string */ public void setNote(String string) { note.setValue(string); } /** * @return */ public ALDateTimeField getCreateDate() { return ALEipUtils.getFormattedTime(create_date); } /** * @return */ public ALDateTimeField getUpdateDate() { return ALEipUtils.getFormattedTime(update_date); } /** * @param string */ public void setCreateDate(Date date) { create_date.setValue(date); } /** * @param string */ public void setUpdateDate(Date date) { if (date == null) { return; } this.update_date.setValue(date); } public ALStringField getCreateUser() { return create_user; } public void setCreateUser(String str) { create_user.setValue(str); } public void setCreateUser(ALEipUser user) { create_user = user.getName(); } public ALStringField getUpdateUser() { return update_user; } public void setUpdateUser(ALEipUser user) { update_user = user.getName(); } public void setUpdateUser(String str) { update_user.setValue(str); } public void setBaseInternalLink(String str) { baseImageLink.setValue(str); } public void setBaseImageRawLink(String str) { baseImageRawLink.setValue(str); } /** * 公開/非公開フラグ. * * @return */ public boolean isPublic() { return is_public; } /** * @return */ public void setPublicFlag(boolean bool) { is_public = bool; } public boolean isNew() { return new_wiki; } public void setNewFlag(boolean bool) { new_wiki = bool; } public List<FileuploadBean> getAttachmentFileList() { return attachmentFileList; } public void setAttachmentFiles(List<FileuploadBean> list) { attachmentFileList = list; } public ALNumberField getOwnerId() { return owner_id; } public ALNumberField getParentId() { return parent_id; } public ALNumberField getUpdateUserId() { return update_user_id; } public void setOwnerId(long i) { this.owner_id.setValue(i); } public void setParentId(long i) { this.parent_id.setValue(i); } public void setUpdateUserId(long i) { this.update_user_id.setValue(i); } public ALStringField getParentName() { return parent_name; } public String getParentNameHtml() { return ALCommonUtils.replaceToAutoCR(parent_name.toString()); } public void setParentName(String str) { this.parent_name.setValue(str); } public boolean isParent() { return is_parent; } public void setParentFlag(boolean bool) { this.is_parent = bool; } public boolean isChild() { return 0 != this.parent_id.getValue(); } }