понедельник, 17 ноября 2014 г.

Первое впечатление о Oculus Rift

Опробовал в кототком тесте данное устройство. Впечатления противоречивые. На обычные очки не одеть. Можно конечно подогнать линзами на самом устройстве но это не всегда удобно. Использовать устройство стоя без страховки сложно. Организм начинает считать, что что то не то происходит и соотвественно реагировать. Возможно сидя было бы проще и удобнее. Без системы как в "Газонокосильщике" использовать сложно и чревато. 
Вот как то так.

четверг, 27 марта 2014 г.

Себе на заметку: Определение номера колонки в JTable по которой произошол клик мышью.

В одном из проектов понадобилось переключать внутрению логику обработки редактирования данных в JTable в зависимости от клика на колонки.
В результате получилось следующее :

 JTable grid.getTableHeader().addMouseListener(new HeaderClick()); 

вешаем слушателя на заголовок таблицы.

класс HeaderClick выглядит следующим образом:

class HeaderClick implements MouseListener {

        @Override
        public void mouseClicked(MouseEvent me) {
            if (me.getSource() instanceof JTableHeader){
                TableColumnModel cl=((JTableHeader) me.getSource()).getColumnModel();
                if (cl.getColumn(cl.getColumnIndexAtX(me.getX())).getHeaderValue().toString().equals("Брутто")){
                    Glu.setCFG("CardSpecDirection", "brutto");
                    cl.getColumn(cl.getColumnIndexAtX(me.getX())).setHeaderRenderer(null);
                   
                }

            }

        }
 номер колонки по заголовку которой мы кликнули получаем с помошью -
cl.getColumnIndexAtX(me.getX())  т.е. me.getX() - это положение мыши и по положению мыши мы получаем номер колонки в заголовке.
 

вторник, 25 февраля 2014 г.

Себе на заметку: загрузка и выгрузка файлов с FTP

Загрузка файлов с FTP сервера

import os
import ftplib
# сохранем файлы по маске и ftp сервера
# из корня в папку expath
def copyData(expath,ftp_srv,user=None,passw=None,mask='.txt'):
    conn=ftplib.FTP(ftp_srv,user,passw)
    dir_res=[]
    conn.dir('.',dir_res.append)
    files=[f.split(None,8)[-1] for f in dir_res if f.startswith('-')]
    print files
    for f in files :
        if f.find(mask)!=-1:
            outf=open(expath+os.sep+f,'wb')
            try:
                conn.retrbinary('RETR %s' % f,outf.write)
            finally:
                outf.close()
    conn.quit()
Сохранение файлов на FTP сервере

import ftplib
import os

local_file=os.listdir('./exp')

ftp_srv='192.168.1.1'
user='ftp'
passw='1234'
# каталог на FTP сервере куда мы закидываем данныне remote_path='xt1'

conn=ftplib.FTP(ftp_srv,user,passw)

if len(remote_path)!=0:
    conn.cwd(remote_path)

for l in local_file:
    print l
    f=open('./exp/'+l,'rb')
# вот ради это все остальное и затевается     conn.storbinary('STOR '+l,f)
    f.close()
    pass

conn.quit()

пятница, 24 января 2014 г.

Рабочее место официанта..

Вот примерно такой дизайн у рабочего места официанта для кассовой системы Unicash. (Делается под Touch Screen)