Exemple #1
0
        }//end uxGroupView_CellEditFinished event handler

        /// <summary>
        /// Updates the group manager based off of a list of timedInstances
        /// </summary>
        private void UpdateGroupManager(TypedObjectListView<TimedInstance> times,
            TimeGroupManager timeGroupManager)
        {
            TimeGroupManager newManager = new TimeGroupManager();

            foreach(TimedInstance time in times.Objects)
            {
                newManager.AddTime(time, time.CurrentGroup.GroupName);
            }//end looping over all the times from the listview

            timeGroupManager = newManager;
        }//end UpdateGroupManager
Exemple #2
0
        public HoursTracker()
        {
            InitializeComponent();
            uxGroupsDefaultLocation = uxGroupsGroup.Location;
            uxHoursDefaultLocation = uxSavedHoursGroup.Location;

            clockInTime = DateTime.Now;
            clockOutTime = DateTime.Now;

            groupManager = new TimeGroupManager();

            SystemTimeTimer.Enabled = true;
            SystemTimeTimer_Tick(null, null);

            //Do some whack ObjectListView things

            //set up the typed olvs
            typedGroupView = new TypedObjectListView<TimeGrouping>(this.uxGroupsView);
            typedTimeView = new TypedObjectListView<TimedInstance>(this.uxSavedHoursView);

            //set up weird delegate things
            for(int i = 0; i < uxSavedHoursView.Columns.Count; i++)
            {
                typedTimeView.GetColumn(i).GroupKeyGetter = delegate (TimedInstance timedInstance)
                {
                    TimedInstance time = timedInstance;
                    return time.CurrentGroup;
                };
            }//end setting all columns to use group name as group key

            for(int i = 0; i < uxSavedHoursView.AllColumns.Count; i++)
            {
                uxSavedHoursView.AllColumns[i].GroupKeyToTitleConverter = delegate (object groupKey)
                {
                    if (groupKey == null) return "No Group Found";
                    TimeGrouping groupObj = (TimeGrouping)groupKey;
                    return groupObj.GroupName;
                };//end setting GroupKeyToTitleConverter
            }//end looping to set groupKeyToTitleConverter for all the columns
            
            // do the group formatters

            uxStartDateColumn.GroupFormatter = (OLVGroup group,
                GroupingParameters parms) =>
            {
                parms.GroupComparer = Comparer<OLVGroup>.Create
                (
                    (x, y) => (((TimeGrouping)x.Key).EarliestDate.TimeSpan.Ticks.CompareTo(
                        ((TimeGrouping)y.Key).EarliestDate.TimeSpan.Ticks)
                    )
                );//end group comparer definition
            };//end group formatter for start date

            uxEndDateColumn.GroupFormatter = (OLVGroup group,
                GroupingParameters parms) =>
            {
                parms.GroupComparer = Comparer<OLVGroup>.Create
                (
                    (x, y) => (((TimeGrouping)x.Key).EarliestDate.TimeSpan.Ticks.CompareTo(
                        ((TimeGrouping)y.Key).EarliestDate.TimeSpan.Ticks)
                    )
                );//end group comparer definition
            };//end group formatter for end date

            uxStartTimeColumn.GroupFormatter = (OLVGroup group,
                GroupingParameters parms) =>
            {
                parms.GroupComparer = Comparer<OLVGroup>.Create
                (
                    (x, y) => (((TimeGrouping)x.Key).EarliestTime.TimeSpan.Ticks.CompareTo(
                        ((TimeGrouping)y.Key).EarliestTime.TimeSpan.Ticks)
                    )
                );//end group comparer definition
            };//end group formatter for start time

            uxEndTimeColumn.GroupFormatter = (OLVGroup group,
                GroupingParameters parms) =>
            {
                parms.GroupComparer = Comparer<OLVGroup>.Create
                (
                    (x, y) => (((TimeGrouping)x.Key).EarliestTime.TimeSpan.Ticks.CompareTo(
                        ((TimeGrouping)y.Key).EarliestTime.TimeSpan.Ticks)
                    )
                );//end group comparer definition
            };//end group formatter for end time

            uxHoursColumn.GroupFormatter = (OLVGroup group, GroupingParameters parms) =>
            {
                parms.GroupComparer = Comparer<OLVGroup>.Create
                    (
                        (x, y) => ((TimeGrouping)x.Key).TotalHours.CompareTo(
                        ((TimeGrouping)y.Key).TotalHours)
                    );//end GroupCompareer
            };//end GroupFormatter for Hours

            uxMinutesColumn.GroupFormatter = (OLVGroup group, GroupingParameters parms) =>
            {
                parms.GroupComparer = Comparer<OLVGroup>.Create
                    (
                        (x, y) => ((TimeGrouping)x.Key).TotalMinutes.CompareTo(
                        ((TimeGrouping)y.Key).TotalMinutes)
                    );//end GroupCompareer
            };//end GroupFormatter for Minutes

            uxInstanceColumn.GroupFormatter = (OLVGroup group, GroupingParameters parms) =>
            {
                parms.GroupComparer = Comparer<OLVGroup>.Create
                (
                    (x, y) => ((TimeGrouping)x.Key).GroupName.CompareTo(((TimeGrouping)y.Key).GroupName)
                );//end groupComparer
            };//end GroupFormatter for InstanceName
        }//end constructor