001/* 002 * (C) Copyright 2011 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 * Contributors: 017 */ 018package org.nuxeo.ecm.platform.task.dashboard; 019 020import java.io.Serializable; 021import java.util.Date; 022import java.util.Locale; 023import java.util.Map; 024 025import org.nuxeo.ecm.core.api.DocumentModel; 026import org.nuxeo.ecm.core.api.DocumentRef; 027import org.nuxeo.ecm.platform.task.Task; 028 029/** 030 * Item holding information about a Document with a task attached to it. 031 * <p> 032 * Aimed at being used in Dashboard fragments. 033 * 034 * @author <a href="mailto:[email protected]">Julien Anguenot</a> 035 * @since 5.5 036 */ 037public interface DashBoardItem extends Serializable { 038 039 /** 040 * Returns the identifier of the workflow task instance. 041 * 042 * @return the identifier of the dash board item. 043 */ 044 String getId(); 045 046 /** 047 * Returns the name of the DashBoardItem. 048 * 049 * @return the name of the DashBoardItem 050 */ 051 String getName(); 052 053 /** 054 * Returns the document reference on which the item is bound. 055 * 056 * @return a document reference instance 057 */ 058 DocumentRef getDocRef(); 059 060 /** 061 * Returns the description of the item. 062 * 063 * @return the description of the item 064 */ 065 String getDescription(); 066 067 /** 068 * Returns the associated item comment. 069 * 070 * @return the associated item comment 071 */ 072 String getComment(); 073 074 /** 075 * Returns the date when the task has been started. 076 * 077 * @return the date when the task has been started 078 */ 079 Date getStartDate(); 080 081 /** 082 * Returns the date at which the task needs to be closed. 083 * 084 * @return the date at which the task needs to be closed 085 */ 086 Date getDueDate(); 087 088 /** 089 * Returns the item associated directive. 090 * 091 * @return the item associated directive 092 */ 093 String getDirective(); 094 095 /** 096 * Returns the icon path for the doc ref. 097 * 098 * @return the icon path for the doc ref 099 */ 100 DocumentModel getDocument(); 101 102 /** 103 * Does the user reach the deadline? 104 * 105 * @return the expired flag. 106 */ 107 boolean isExpired(); 108 109 /** 110 * Returns the underneath task instance 111 */ 112 Task getTask(); 113 114 /** 115 * Defines the {@link Locale} that will be used to generate translations 116 * 117 * @param locale 118 */ 119 void setLocale(Locale locale); 120 121 /** 122 * Get the Translated TaskName (Locale must be set) 123 * 124 * @return 125 */ 126 String getI18nTaskName(); 127 128 /** 129 * Get the Translated Task Directive (Locale must be set) 130 * 131 * @return 132 */ 133 String getI18nDirective(); 134 135 /** 136 * Returns JSON representation of the item as map 137 */ 138 Map<String, Object> asMap(); 139 140 /** 141 * Return the link url to the target Document 142 * 143 * @param includeWorkflowTab 144 * @return 145 */ 146 String getDocumentLink(boolean includeWorkflowTab); 147 148}