| 954 |
import hklfile |
import hklfile |
| 955 |
reflectionList = hklfile.ReflectionList(fileName) |
reflectionList = hklfile.ReflectionList(fileName) |
| 956 |
ftype = reflectionList.FileType() |
ftype = reflectionList.FileType() |
| 957 |
print ftype.FileType() |
#print ftype.FileType() |
| 958 |
|
|
| 959 |
if ftype.FileType() in [hklfile.ReflectionFileType.ABSENT,hklfile.ReflectionFileType.UNKNOWN]: |
if ftype.FileType() in [hklfile.ReflectionFileType.ABSENT,hklfile.ReflectionFileType.UNKNOWN]: |
| 960 |
raise CException(self.__class__,101,fileName) |
raise CException(self.__class__,101,fileName) |
| 1935 |
for item in self.ROWITEMS: |
for item in self.ROWITEMS: |
| 1936 |
obj = self.parent().getDataObjects(item) |
obj = self.parent().getDataObjects(item) |
| 1937 |
self.connectSignal(obj,'dataChanged',functools.partial(self.handleComponentChange,item)) |
self.connectSignal(obj,'dataChanged',functools.partial(self.handleComponentChange,item)) |
| 1938 |
|
self.connectSignal(obj,'itemAdded',functools.partial(self.handleInsertRow,item)) |
| 1939 |
|
self.connectSignal(obj,'itemDeleted',functools.partial(self.handleDeleteRow,item)) |
| 1940 |
|
|
| 1941 |
def handleComponentChange(self,mode=None): |
def handleComponentChange(self,mode=None): |
| 1942 |
print 'CCrystalCompositionTable.handleComponentChange',mode |
print 'CCrystalCompositionTable.handleComponentChange',mode |
| 1943 |
|
|
| 1944 |
def addColumn(self,headerValue=None,index=-1): |
def addColumn(self,headerValue=None,index=-1): |
| 1945 |
if headerValue is None: |
if headerValue is None: |
| 1946 |
val = self.__dict__['_columnHeaders'].__len__() + 1 |
headerValue = str(self.__dict__['_columnHeaders'].__len__() + 1) |
| 1947 |
while self.__dict__['_columnHeaders'].count(str(val)): val = val + 1 |
while self.__dict__['_columnHeaders'].count(headerValue): headerValue = str(int(headerValue) + 1) |
| 1948 |
headerValue = str(val) |
#print 'addColumn',headerValue |
|
print 'addColumn',headerValue |
|
| 1949 |
if index<0 or index >= self.__dict__['_columnHeaders'].__len__(): |
if index<0 or index >= self.__dict__['_columnHeaders'].__len__(): |
| 1950 |
self.__dict__['_columnHeaders'].append(headerValue) |
self.__dict__['_columnHeaders'].append(headerValue) |
| 1951 |
if len(self.__dict__['_value']) == 0: |
if len(self.__dict__['_value']) == 0: |
| 1957 |
for row in self.__dict__['_value']: row.insert(index,0) |
for row in self.__dict__['_value']: row.insert(index,0) |
| 1958 |
|
|
| 1959 |
def removeColumn(self,index): |
def removeColumn(self,index): |
| 1960 |
print 'CCrystalCompositionTable.removeColumn',index |
#print 'CCrystalCompositionTable.removeColumn',index |
| 1961 |
if index>=0 and index<self.__dict__['_columnHeaders'].__len__(): |
if index>=0 and index<self.__dict__['_columnHeaders'].__len__(): |
| 1962 |
del self.__dict__['_columnHeaders'][index] |
del self.__dict__['_columnHeaders'][index] |
| 1963 |
for row in self.__dict__['_value']: del row[index] |
for row in self.__dict__['_value']: del row[index] |
| 1964 |
print 'CCrystalCompositionTable.removeColumn',self.__dict__['_columnHeaders'],self.__dict__['_value'] |
#print 'CCrystalCompositionTable.removeColumn',self.__dict__['_columnHeaders'],self.__dict__['_value'] |
| 1965 |
|
|
| 1966 |
|
def myRowIndex(self,type=None,index=None): |
| 1967 |
|
if index>=0: |
| 1968 |
|
myIndex = index |
| 1969 |
|
else: |
| 1970 |
|
myIndex = self.parent().__getattr__(type).__len__() - 1 |
| 1971 |
|
for item in self.ROWITEMS: |
| 1972 |
|
if type == item: |
| 1973 |
|
return myIndex |
| 1974 |
|
else: |
| 1975 |
|
myIndex += self.parent().__getattr__(item).__len__() |
| 1976 |
|
|
| 1977 |
def handleInsertRow(self,type=None,index=None): |
def handleInsertRow(self,type=None,index=None): |
| 1978 |
pass |
print 'CCrystalCompositionTable.handleInsertRow',type,index |
| 1979 |
|
indx = self.myRowIndex(type=type,index=index) |
| 1980 |
|
row = self.buildRow() |
| 1981 |
|
self.__dict__['_value'].insert(indx,row) |
| 1982 |
|
self.emitSignal('rowInserted',indx) |
| 1983 |
|
|
| 1984 |
|
|
| 1985 |
def handleDeleteRow(self,type=None,index=None): |
def handleDeleteRow(self,type=None,index=None): |
| 1986 |
pass |
print 'CCrystalCompositionTable.handleDeleteRow',type,index |
| 1987 |
|
indx = self.myRowIndex(type=type,index=index) |
| 1988 |
|
del self.__dict__['_value'][indx] |
| 1989 |
|
self.emitSignal('rowDeleted',indx) |
| 1990 |
|
|
| 1991 |
|
def setColumnHeader(self,index,label): |
| 1992 |
|
if self.__dict__['_columnHeaders'][index] == label: return True |
| 1993 |
|
if self.__dict__['_columnHeaders'].count(label): return False |
| 1994 |
|
self.__dict__['_columnHeaders'][index] = label |
| 1995 |
|
return True |
| 1996 |
|
|
| 1997 |
|
|
| 1998 |
def setItem(self,row,column,arg): |
def setItem(self,row,column,arg): |
| 1999 |
if row<0 or column<0 or row>len(self.__dict__['_value']) or column>len(self.__dict__['_value'][0]): |
if row<0 or column<0 or row>len(self.__dict__['_value']) or column>len(self.__dict__['_value'][0]): |
| 2038 |
header = self.rowHeader(iRow) |
header = self.rowHeader(iRow) |
| 2039 |
#print 'CCrystalCompositionTable.getEtree',header,type(header) |
#print 'CCrystalCompositionTable.getEtree',header,type(header) |
| 2040 |
# Add underscore in case first char is integer and not valid xml |
# Add underscore in case first char is integer and not valid xml |
| 2041 |
|
if header is not None: |
| 2042 |
rowEle = etree.Element('_'+header) |
rowEle = etree.Element('_'+header) |
| 2043 |
text = '' |
text = '' |
| 2044 |
if len(row)>0: |
if len(row)>0: |