/[cvs]/api/Classes/MatrisList/ObjectMatrisList.h
ViewVC logotype

Annotation of /api/Classes/MatrisList/ObjectMatrisList.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (vendor branch)
Sun Jul 1 20:47:58 2001 UTC (23 years ago) by bearsoft
Branch: lazy, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
First import

1 bearsoft 1.1 #ifndef __ObjectMatrisList_H__
2     #define __ObjectMatrisList_H__
3    
4     #include "../String/String.h"
5     #include "../LinkedList/StringLinkedList.h"
6     #include "../LinkedList/ObjectLinkedList.h"
7     #include "../Element/ObjectElement.h"
8     #include "../Element/ObjectMatrisElement.h"
9     #include "../System/System.h"
10     #include "../Array/ObjectArray.h"
11     #include "../System/SystemDefine.h"
12    
13     template <class ClassName>
14    
15     class ObjectMatrisList
16     {
17    
18     public:
19    
20     ObjectMatrisList(int iColumnSize)
21     {
22     howfar=0;
23     columnLength=iColumnSize;
24     objectArray = new ObjectArray<ClassName>(columnLength);
25    
26     for ( int i=0; i<columnLength ; i++ )
27     {
28     addColumn(1,"test");
29     }
30     }
31    
32     ~ObjectMatrisList()
33     {
34     removeAllElement();
35    
36     if (objectArray != null)
37     {
38     objectArray->resetArray();
39    
40     delete objectArray;
41     }
42     }
43    
44     void removeAllElement()
45     {
46     if ( howfar != 0 )
47     {
48     ObjectMatrisElement<ClassName> *element=first;
49    
50     for ( int s=0; s<howfar ; s++ )
51     {
52     ObjectMatrisElement<ClassName> *tempElement=element->next;
53     delete element;
54     element=tempElement;
55     }
56     }
57     }
58    
59     int columnSize()
60     {
61     return howfar;
62     }
63    
64     int rowSize()
65     {
66     if (howfar!=0)
67     {
68     ObjectLinkedList<ClassName> *objectList = getColumn(0);
69     return objectList->size();
70     }
71    
72     return 0;
73     }
74    
75     void addColumnInRow(ClassName *object, String &iName ,int index)
76     {
77     if ( index >= 0 && index < columnLength )
78     {
79     objectArray->setObject(object, iName.buffer, index);
80     }
81     }
82    
83     void addColumnInRow(ClassName *object, String *iName ,int index)
84     {
85     if ( index >= 0 && index < columnLength )
86     {
87     objectArray->setObject(object, iName->buffer, index);
88     }
89     }
90    
91     void addColumnInRow(ClassName *object, char *iName ,int index)
92     {
93     if ( index >= 0 && index < columnLength )
94     {
95     objectArray->setObject(object, iName, index);
96     }
97     }
98    
99    
100     void addColumn(int type, char *iName)
101     {
102     addColumnMain(type, iName);
103     }
104    
105     void addColumnMain(int type, char *iName)
106     {
107     if (howfar == 0)
108     {
109     first = new ObjectMatrisElement<ClassName>(iName);
110     last=first;
111     }
112     else
113     {
114     last->next = new ObjectMatrisElement<ClassName>(iName);
115     last->next->previos=last;
116     last=last->next;
117     }
118    
119     howfar++;
120     }
121    
122     void addRow()
123     {
124     ObjectLinkedList<ClassName> *objectList=null;
125    
126     for ( int i=0; i<howfar ; i++ )
127     {
128     objectList = getColumn(i);
129     ObjectElement<ClassName> *object=objectArray->getObjectElement(i);
130     objectList->addLast(object->classNameElement,object->name);
131     }
132    
133     int size=objectList->size()-1;
134    
135     for ( int r=0; r<howfar ; r++ )
136     {
137     ObjectLinkedList<ClassName> *objectList = getColumn(r);
138     ObjectLinkedList<ClassName> *objectListPrevios = getColumn(r-1);
139     ObjectLinkedList<ClassName> *objectListNext = getColumn(r+1);
140    
141     ObjectElement<ClassName> *object=objectList->getObjectElement(size);
142    
143     ObjectElement<ClassName> *objectPrevios=null;
144    
145     if (objectListPrevios!=null)
146     {
147     objectPrevios=objectListPrevios->getObjectElement(size);
148     }
149    
150     ObjectElement<ClassName> *objectNext=null;
151    
152     if (objectListNext!=null)
153     {
154     objectNext=objectListNext->getObjectElement(size);
155     }
156    
157     object->sideNext=objectNext;
158     object->sidePrevios=objectPrevios;
159     }
160    
161     objectArray->resetArray();
162     }
163    
164     ObjectArray<ClassName> *getRow(int columnIndex, int rowIndex)
165     {
166     objectArray->resetArray();
167    
168     ObjectLinkedList<ClassName> *objectList = getColumn(columnIndex);
169     ObjectElement<ClassName> *objectElementIndex = objectList->getObjectElement(rowIndex);
170    
171    
172     ObjectElement<ClassName> *objectElement=objectElementIndex;
173    
174     int indexBack=columnIndex;
175    
176     for (int i=0; i<columnIndex ; i++)
177     {
178     --indexBack;
179     objectElement=objectElement->sidePrevios;
180     objectArray->setObject(objectElement->classNameElement, indexBack);
181     }
182    
183     objectElement=objectElementIndex;
184    
185     for (int r=0; r<(columnLength-columnIndex) ; r++)
186     {
187     objectArray->setObject(objectElement->classNameElement, r+columnIndex);
188     objectElement=objectElement->sideNext;
189     }
190    
191     return objectArray;
192     }
193    
194    
195    
196     void sortColumnInSmallestOrder(int index)
197     {
198     ObjectLinkedList<ClassName> *objectList = getColumn(index);
199    
200     if (objectList!=null)
201     {
202     objectList->sortSmallestOrder();
203     }
204     }
205    
206     void sortColumnInLargestOrder(int index)
207     {
208     ObjectLinkedList<ClassName> *objectList = getColumn(index);
209    
210     if (objectList!=null)
211     {
212     objectList->sortLargestOrder();
213     }
214     }
215    
216     ObjectLinkedList<ClassName> *getColumn(int index)
217     {
218     if ( index >= 0 && index < howfar)
219     {
220     ObjectMatrisElement<ClassName> *element=first;
221    
222     for ( int s=0; s<index ; s++ )
223     {
224     element=element->next;
225     }
226    
227     // stringLength=element->length;
228    
229     return element->classNameElement;
230     }
231    
232     return null;
233     }
234    
235    
236     ObjectMatrisElement<ClassName> *first;
237     ObjectMatrisElement<ClassName> *last;
238    
239     int howfar;
240     int columnLength;
241     ObjectArray<ClassName> *objectArray;
242    
243     };
244    
245     #endif

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26