3
* $Id: wxtreelistctrlacquisition.h $
6
* Copyright 2008-12 MetaEmotion S.L. All rights reserved.
7
* http://ginkgo-cadx.com
9
* This file is licensed under LGPL v3 license.
10
* See License.txt for details
20
#include <wx/gdicmn.h>
22
#include <wx/colour.h>
23
#include <wx/settings.h>
24
#include <wx/string.h>
25
#include <wx/stattext.h>
26
#include <wx/combobox.h>
27
#include <wx/srchctrl.h>
29
#include <wx/bitmap.h>
32
#include <wx/treelistctrl/treelistctrl.h>
33
#include <wx/link_additions.h>
34
#include <wx/radiobut.h>
35
#include <wx/datectrl.h>
36
#include <wx/dateevt.h>
37
#include <wx/statbox.h>
38
#include <wx/gbsizer.h>
39
#include <wx/button.h>
41
#include <wx/notebook.h>
42
#include <wx/dialog.h>
43
#include <wx/listbox.h>
46
#define DESCRIPTION_COLUMN 0
47
#define MODALITY_COLUMN 1
48
#define CREATOR_USER_NAME_COLUMN 2
49
#define LAST_MODIFICATOR_USER_NAME_COLUMN 3
52
#define BUCKET_ID_COLUMN 6
55
class wxTreeListCtrlCloud : public wxTreeListCtrl
58
wxTreeListCtrlCloud(wxWindow *parent, wxWindowID id = -1,
59
const wxPoint& pos = wxDefaultPosition,
60
const wxSize& size = wxDefaultSize,
61
long style = wxTR_DEFAULT_STYLE,
62
const wxValidator &validator = wxDefaultValidator,
63
const wxString& name = wxTreeListCtrlNameStr )
64
: wxTreeListCtrl(parent, id, pos, size, style, validator, name)
67
~wxTreeListCtrlCloud() {}
69
virtual int OnCompareItems (const wxTreeItemId& item1, const wxTreeItemId& item2)
71
wxTreeItemId root = GetRootItem();
72
if (item1.IsOk() && item2.IsOk()) {
73
//alphabetically no case sensitive
74
int descCompare = GetItemText(item1).CompareTo(GetItemText(item2), wxString::ignoreCase);
75
if (descCompare !=0) {
79
wxDateTime date1,date2;
80
date1.ParseFormat(GetItemText(item1, DATE_COLUMN), _("%m/%d/%Y %H:%M:%S"));
81
date2.ParseFormat(GetItemText(item2, DATE_COLUMN), _("%m/%d/%Y %H:%M:%S"));
82
if (date1.IsValid() && date2.IsValid()) {
83
wxTimeSpan diff = date1.Subtract(date2);
84
if (diff.IsPositive()) {
94
return wxTreeListCtrl::OnCompareItems(item1, item2);
97
virtual int OnCompareItems (const wxTreeItemId& item1, const wxTreeItemId& item2, int column)
99
wxTreeItemId root = GetRootItem();
100
if (item1.IsOk() && item2.IsOk() && column == DATE_COLUMN) {
101
if (GetItemParent(item1) == root && GetItemParent(item2) == root) {
102
//first case patient level:
103
//alphabetically no case sensitive
104
return wxTreeListCtrl::OnCompareItems(item1, item2, column);
106
//study and series level
108
wxDateTime date1,date2;
109
date1.ParseFormat(GetItemText(item1, DATE_COLUMN), _("%m/%d/%Y %H:%M:%S"));
110
date2.ParseFormat(GetItemText(item2, DATE_COLUMN), _("%m/%d/%Y %H:%M:%S"));
111
if (date1.IsValid() && date2.IsValid()) {
112
wxTimeSpan diff = date1.Subtract(date2);
113
if (diff.IsPositive()) {
123
return wxTreeListCtrl::OnCompareItems(item1, item2, column);