public class Timesheet
extends java.lang.Object
implements java.io.Serializable
Timesheet definition and instance
Modifier and Type | Class and Description |
---|---|
class |
Timesheet.GanttBlock
Assignment element as a floating block
|
class |
Timesheet.GanttNode
Node of resource with blocks
|
class |
Timesheet.TimesheetLine
Timesheet line between 2 resources
|
Modifier and Type | Field and Description |
---|---|
static int |
GANTT_FORWARD
Add a link to Gantt view in the timesheet view
|
static int |
GANTT_HIDDEN
Hide Gantt access in the timesheet view
|
static int |
GANTT_INLINED
Inline Gantt display in the timesheet view
|
int |
m_showGanttInTimesheet |
static int |
PERIOD_DAY_SIZE
Minimum size of period in days
|
static int |
PERIOD_MONTH_SIZE
Minimum size of period in months
|
static int |
PERIOD_WEEK_SIZE
Minimum size of period in weeks
|
static char |
TYPE_DAY
Manage inputs by days
|
static char |
TYPE_MONTH
Manage inputs by months
|
static char |
TYPE_WEEK
Manage inputs by weeks
|
Constructor and Description |
---|
Timesheet(ObjectDB assign,
java.lang.String id,
java.lang.String name,
char type,
boolean flying,
boolean backward,
java.lang.String ref1,
java.lang.String ref2,
java.lang.String workloadField,
java.lang.String beginDateField,
java.lang.String endDateField,
java.lang.String statusField,
boolean chartRes,
boolean chartGantt,
int showGantt,
boolean dragX,
boolean dragY,
boolean resizable)
Timesheet definition
|
Modifier and Type | Method and Description |
---|---|
void |
addInputField(java.lang.String name,
Grant g)
Add an input field in the timesheet.
|
void |
buildCurrentPeriod(java.lang.String begin,
java.lang.String end)
Build the current period to display
|
Timesheet.GanttNode |
buildGanttData(Parameters params) |
java.util.Vector<java.lang.String[]> |
buildPeriod(java.lang.String begin,
java.lang.String end)
Return a period between 2 dates
|
boolean |
canShiftField(int fieldIndex)
Shift the field charges when its GanttBlock moves (from copiable property of field) ?
|
java.lang.String |
convertDateToKey(java.lang.String date)
Convert a date to its key
|
double[] |
convertInputToMonthCharges(java.lang.String encodedInput)
Convert the encoded input into 12 months of charges (TYPE_DAYS and TYPE_WEEK only)
|
java.lang.String |
convertKeyToDate(java.lang.String key)
Convert a key to its date
|
void |
enableGanttDragX(boolean b) |
void |
enableGanttDragY(boolean b) |
void |
enableGanttResizable(boolean b) |
void |
filterParams(ObjectDB assign,
Parameters params) |
void |
fitPeriodToAssignments(Parameters params)
Period including all assignments periods
|
void |
fitPeriodToInputs()
Change the current period to include all timesheet inputs for the current resources
|
java.lang.String |
ganttDataToJson(Parameters params)
Serialize to JSON the GANTT
|
java.lang.String |
getCurrentColor(java.lang.String label)
Get the color of a resource
|
ObjectField |
getCurrentEndDate()
Current end date to display
|
java.util.Vector<Timesheet.TimesheetLine> |
getCurrentLines()
Current timesheet lines
|
java.util.Vector<java.lang.String[]> |
getCurrentPeriod()
Current period to display
|
java.lang.String |
getCurrentResource1()
Current parent resource 1 (null when 2 is set)
|
java.lang.String |
getCurrentResource2()
Current parent resource 2 (null when 1 is set)
|
ObjectField |
getCurrentStartDate()
Current first date to display
|
ObjectField |
getFieldBeginDate()
Get the begin date field
|
ObjectField |
getFieldEndDate()
Get the end date field
|
ObjectField |
getFieldResource1()
Get the resource1 field
|
ObjectField |
getFieldResource2()
Get the resource2 field
|
ObjectField |
getFieldStatus()
Get the timesheet status field
|
ObjectField |
getFieldWorkload()
Get the workload field
|
Timesheet.GanttNode |
getGanttData()
GANTT tree
|
java.util.LinkedHashMap<ObjectDB,java.util.LinkedHashMap<java.lang.String,java.util.HashMap<java.lang.String,Timesheet.GanttNode>>> |
getGanttFilters()
GANTT filters: Object in hierarchy => list of UK Label => list of id => Node
|
java.lang.String |
getId()
Timesheet id
|
ObjectField |
getInputField(java.lang.String name)
Input field by name
|
java.util.Vector<ObjectField> |
getInputFields()
Input fields for each line
|
java.lang.String[] |
getInputMinMaxDates()
Get the period including all timesheet inputs for the current resources
|
java.lang.String |
getName()
Timesheet name
|
ObjectDB |
getObjectAssign()
Get the assignment object
|
ObjectDB |
getObjectResource1(Grant g) |
ObjectDB |
getObjectResource2(Grant g) |
ObjectDB |
getObjectTimesheet()
Get the timesheet object to store inputs
|
java.util.Vector<java.lang.String[]> |
getResources(boolean resetFilter,
java.lang.String resourceId1,
java.lang.String resourceId2,
java.lang.String beginDate,
java.lang.String endDate)
Retrieve resources from the other
|
double |
getResourceWorkloadFactor(java.lang.String name) |
java.util.Hashtable<java.lang.String,Timesheet.TimesheetLine> |
getTimesheet(boolean resetFilter,
boolean inPeriod)
Load timesheet from DB
|
java.util.Hashtable<java.lang.String,Timesheet.TimesheetLine> |
getTimesheet(ObjectDB assign,
ObjectField r1,
ObjectField r2,
java.lang.String resId1,
java.lang.String resId2,
ObjectField d1,
ObjectField d2,
boolean resetFilter,
boolean loadLabel,
boolean inPeriod,
java.lang.String fromKey,
java.lang.String toKey) |
char |
getType()
get the timesheet type : TYPE_DAY, TYPE_WEEK or TYPE_MONTH
|
boolean |
isBackwardInputAllowed()
Allows change for old inputs ?
|
boolean |
isChartEnabled()
Use resource chart ?
|
boolean |
isChartVisible()
Is resource chart visible ?
|
boolean |
isFlying()
Floating timesheet = starts period on any day
|
boolean |
isGanttDragXEnabled()
Is the horizontal drag allowed ?
|
boolean |
isGanttDragYEnabled()
Is the vertical drag allowed ?
|
boolean |
isGanttEnabled()
Is the GANTT chart enabled ?
|
boolean |
isGanttResizable()
Is the block resizing allowed ?
|
boolean |
isGanttVisible()
Is the GANTT chart visible ?
|
boolean |
isInputAllowed(java.lang.String key,
java.lang.String assignId,
java.lang.String resId1,
java.lang.String resId2)
Allows change for a period key ?
Default is based on the backward input
|
boolean |
isResourceAndInputSwapped() |
boolean |
isTimesheetEnabled()
Use timesheet input form ?
|
java.util.Vector<java.lang.String> |
merge(ObjectDB assign,
java.lang.String assignId,
java.lang.String resId1,
java.lang.String resId2)
Merge assignments and related timesheets
|
java.util.Vector<java.lang.String> |
reassign(ObjectDB assign,
java.lang.String assignIdFrom,
java.lang.String assignIdTo,
java.lang.String resIdTo,
java.lang.String resId1,
java.lang.String resId2,
double factor,
java.lang.String begin,
java.lang.String end)
Transfers assignment charge between 2 resources
|
java.util.Vector<java.lang.String> |
save()
Save the current timesheet
|
java.util.Vector<java.lang.String> |
save(java.util.Vector<Timesheet.TimesheetLine> lines,
java.util.Vector<java.lang.String[]> period)
Save a timesheet.
|
void |
setBackward(boolean b) |
void |
setChartEnabled(boolean b) |
void |
setChartVisible(boolean b) |
void |
setCurrentColor(java.lang.String label,
java.lang.String color)
Assign a color to a resource
|
void |
setCurrentLines(java.util.Vector<Timesheet.TimesheetLine> lines) |
void |
setCurrentPeriod(java.util.Vector<java.lang.String[]> p) |
void |
setCurrentResource1(java.lang.String id) |
void |
setCurrentResource2(java.lang.String id) |
void |
setFlying(boolean f) |
void |
setGanttEnabled(boolean b) |
void |
setGanttInTimesheet(int option) |
void |
setGanttVisible(boolean b) |
void |
setResourceWorkloadFactor(java.lang.String name,
double factor)
Factor to get charge in days of input value on the resource/gantt chart.
|
void |
setShiftable(int fieldIndex,
boolean shift) |
void |
setTimesheetEnabled(boolean b) |
void |
setType(char type) |
java.util.Vector<java.lang.String> |
shiftTimesheet(ObjectDB assign,
java.lang.String assignId,
java.lang.String resId1,
java.lang.String resId2,
java.lang.String oldBeginDate,
java.lang.String newBeginDate,
java.lang.String oldEndDate,
java.lang.String newEndDate)
Shifts the timesheet charges of one assignment
|
int |
showGanttInTimesheet()
Is GANTT accessible in the timesheet view ? GANTT_HIDDEN, GANTT_INLINED or GANTT_FORWARD
|
void |
swapResourceAndInput()
Swap display of resource and input fields
|
java.lang.String |
toString() |
static java.util.Vector<Timesheet.TimesheetLine> |
toVector(java.util.Hashtable<java.lang.String,Timesheet.TimesheetLine> lines,
boolean sort)
Sort lines by resource labels
|
public static final char TYPE_DAY
public static final char TYPE_WEEK
public static final char TYPE_MONTH
public static final int GANTT_HIDDEN
public static final int GANTT_INLINED
public static final int GANTT_FORWARD
public int m_showGanttInTimesheet
public static final int PERIOD_DAY_SIZE
public static final int PERIOD_WEEK_SIZE
public static final int PERIOD_MONTH_SIZE
public Timesheet(ObjectDB assign, java.lang.String id, java.lang.String name, char type, boolean flying, boolean backward, java.lang.String ref1, java.lang.String ref2, java.lang.String workloadField, java.lang.String beginDateField, java.lang.String endDateField, java.lang.String statusField, boolean chartRes, boolean chartGantt, int showGantt, boolean dragX, boolean dragY, boolean resizable)
Timesheet definition
assign
- Assignment object between 2 resourcesid
- Timesheet idname
- Timesheet nametype
- TYPE_DAY, TYPE_WEEK or TYPE_MONTHflying
- Floating period to the current datebackward
- Allow backward inputsref1
- Foreign id of resource 1 in assignmentref2
- Foreign id of resource 2 in assignmentworkloadField
- Optional workload field of assignmentbeginDateField
- Optional begin field of assignmentendDateField
- Optional end field of assignmentstatusField
- Optional status field for each timesheetchartRes
- Enable resource chartchartGantt
- Enable GANTT chartshowGantt
- GANTT option GANTT_*dragX
- Enable GANTT X drag/drop = shift in timedragY
- Enable GANTT Y drag/drop = reassignmentresizable
- Enable GANTT resizingpublic java.lang.String getId()
public java.lang.String getName()
public ObjectDB getObjectAssign()
public ObjectDB getObjectTimesheet()
public ObjectField getFieldStatus()
public ObjectField getFieldResource1()
public ObjectField getFieldResource2()
public ObjectField getFieldWorkload()
public ObjectField getFieldBeginDate()
public ObjectField getFieldEndDate()
public char getType()
public void setType(char type)
public boolean isFlying()
public void setFlying(boolean f)
public boolean isBackwardInputAllowed()
public void setBackward(boolean b)
public boolean isInputAllowed(java.lang.String key, java.lang.String assignId, java.lang.String resId1, java.lang.String resId2)
key
- Period keyresId1
- Resource 1 idresId2
- Resource 2 idpublic void swapResourceAndInput()
public boolean isResourceAndInputSwapped()
public boolean isTimesheetEnabled()
public void setTimesheetEnabled(boolean b)
public boolean isChartEnabled()
public void setChartEnabled(boolean b)
public boolean isChartVisible()
public void setChartVisible(boolean b)
public int showGanttInTimesheet()
public void setGanttInTimesheet(int option)
public java.util.Vector<ObjectField> getInputFields()
public ObjectField getInputField(java.lang.String name)
public void addInputField(java.lang.String name, Grant g)
name
- Field nameg
- User rightspublic boolean canShiftField(int fieldIndex)
public void setShiftable(int fieldIndex, boolean shift)
public void setResourceWorkloadFactor(java.lang.String name, double factor)
name
- The name of the input fieldfactor
- Factor value to convert the input charge in dayspublic double getResourceWorkloadFactor(java.lang.String name)
public java.lang.String getCurrentResource1()
public void setCurrentResource1(java.lang.String id)
public java.lang.String getCurrentResource2()
public void setCurrentResource2(java.lang.String id)
public java.util.Vector<Timesheet.TimesheetLine> getCurrentLines()
public void setCurrentLines(java.util.Vector<Timesheet.TimesheetLine> lines)
public java.util.Vector<java.lang.String[]> getCurrentPeriod()
public void setCurrentPeriod(java.util.Vector<java.lang.String[]> p)
public ObjectField getCurrentStartDate()
public ObjectField getCurrentEndDate()
public void buildCurrentPeriod(java.lang.String begin, java.lang.String end)
begin
- Optional start date yyyy-MM-dd (default is today)end
- Optional end date yyyy-MM-ddpublic java.util.Vector<java.lang.String[]> buildPeriod(java.lang.String begin, java.lang.String end)
begin
- Begin dateend
- End datepublic java.lang.String getCurrentColor(java.lang.String label)
label
- Any resource labelpublic void setCurrentColor(java.lang.String label, java.lang.String color)
label
- Any resource labelcolor
- #RRGGBBpublic void fitPeriodToAssignments(Parameters params)
public java.lang.String[] getInputMinMaxDates()
public void fitPeriodToInputs()
public java.util.Vector<java.lang.String[]> getResources(boolean resetFilter, java.lang.String resourceId1, java.lang.String resourceId2, java.lang.String beginDate, java.lang.String endDate)
resourceId1
- optional resource idresourceId2
- optional resource idbeginDate
- start dateendDate
- end datepublic java.util.Hashtable<java.lang.String,Timesheet.TimesheetLine> getTimesheet(boolean resetFilter, boolean inPeriod)
resetFilter
- true to ignore UI filtersinPeriod
- true to watch timesheets in current periodpublic java.util.Hashtable<java.lang.String,Timesheet.TimesheetLine> getTimesheet(ObjectDB assign, ObjectField r1, ObjectField r2, java.lang.String resId1, java.lang.String resId2, ObjectField d1, ObjectField d2, boolean resetFilter, boolean loadLabel, boolean inPeriod, java.lang.String fromKey, java.lang.String toKey)
public java.util.Vector<java.lang.String> save(java.util.Vector<Timesheet.TimesheetLine> lines, java.util.Vector<java.lang.String[]> period)
lines
- Input linesperiod
- Perod to savepublic java.util.Vector<java.lang.String> save()
public java.util.Vector<java.lang.String> shiftTimesheet(ObjectDB assign, java.lang.String assignId, java.lang.String resId1, java.lang.String resId2, java.lang.String oldBeginDate, java.lang.String newBeginDate, java.lang.String oldEndDate, java.lang.String newEndDate)
assignId
- Assignment idoldBeginDate
- Original begin datenewBeginDate
- Destination begin dateoldEndDate
- Original end datenewEndDate
- Destination end datepublic java.util.Vector<java.lang.String> merge(ObjectDB assign, java.lang.String assignId, java.lang.String resId1, java.lang.String resId2)
assign
- Assign objectassignId
- Master assignment to keepresId1
- Resource 1resId2
- Resource 2public java.util.Vector<java.lang.String> reassign(ObjectDB assign, java.lang.String assignIdFrom, java.lang.String assignIdTo, java.lang.String resIdTo, java.lang.String resId1, java.lang.String resId2, double factor, java.lang.String begin, java.lang.String end)
assign
- Assign objectassignIdFrom
- Source assign id to transferassignIdTo
- Target assign id (create a new one if null)resIdTo
- New resource id (in case of creation)resId1
- Id to get timesheets from resource 1resId2
- or Id to get timesheets from resource 2factor
- Percentage of charge to reassign (0=nothing .. 1=100%)begin
- Optional start dateend
- Optional end datepublic static java.util.Vector<Timesheet.TimesheetLine> toVector(java.util.Hashtable<java.lang.String,Timesheet.TimesheetLine> lines, boolean sort)
public java.lang.String convertDateToKey(java.lang.String date)
date
- yyyy-MM-ddpublic java.lang.String convertKeyToDate(java.lang.String key)
key
- yyyy-MM-dd (day), yyyy-WW (week), yyyy-MM (month)public double[] convertInputToMonthCharges(java.lang.String encodedInput)
public void filterParams(ObjectDB assign, Parameters params)
public Timesheet.GanttNode getGanttData()
public java.util.LinkedHashMap<ObjectDB,java.util.LinkedHashMap<java.lang.String,java.util.HashMap<java.lang.String,Timesheet.GanttNode>>> getGanttFilters()
public boolean isGanttEnabled()
public void setGanttEnabled(boolean b)
public boolean isGanttVisible()
public void setGanttVisible(boolean b)
public boolean isGanttDragXEnabled()
public void enableGanttDragX(boolean b)
public boolean isGanttDragYEnabled()
public void enableGanttDragY(boolean b)
public boolean isGanttResizable()
public void enableGanttResizable(boolean b)
public Timesheet.GanttNode buildGanttData(Parameters params)
public java.lang.String ganttDataToJson(Parameters params)
public java.lang.String toString()
toString
in class java.lang.Object
Copyright (c)2006-2014 Simplicite Software. All Rights Reserved.