페이지

2011년 3월 11일 금요일

Dojo Tooltip 표시 예제

   1:  <html>
   2:     <head>
   3:        <title>Dojo Toolkit Test Page</title>    
   4:        
   5:  <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/tundra/tundra.css"/>
   6:  <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" type="text/javascript" djConfig="parseOnLoad:true, isDebug:true"></script>
   7:  <script type="text/javascript">
   8:   dojo.require("dijit.Tooltip"); 
   9:  </script>
  10:    
  11:     </head>
  12:     <body class="tundra">
  13:       
  14:   
  15:  <textarea id="textarea1">tooltip below</textarea>
  16:  <div dojoType="dijit.Tooltip" connectId="textarea1" style="display:none; width: 100px;" position="below" >
  17:  안녕하세요..
  18:  </div>
  19:   
  20:     </body>
  21:  </html>
  22:   



Dojo를 이용하여 툴팁을 표시하는 소스입니다.

position 속성에 below , above, before, after 를 입력하여 위치를 지정할 수 있습니다.

2011년 3월 10일 목요일

맥 트랙패드와 단축키

자주사용하는 단축키와 트랙패드에 관한 내용을 정리해봤습니다.

트랙패드 관련
- 처음에 클릭을 어찌하는지 몰라 당황했는데요. 트랙패드를 마우스 클릭하듯 실제로 클릭하는군요.
- 클릭해서 드래그하기가 답답했는데 한손가락으로 클릭한 상태에서 다른손가락으로 드래그할 수 있습니다.
- 마우스 우측버튼 효과는 control+클릭,두손가락 클릭 
- 두손가락으로 위아래로 드래그하면 휠효과를 볼 수 있습니다.

단축키 관련
- delete 키가 백스페이스키와 같은 역할을 합니다.
- fn+delete 키가 윈도우즈의 delete와 같습니다.
- 커맨드+delete 키를 누르면 현재 커서 위치부터 현재라인 맨앞까지 지웁니다.

- 한영변환키는 command+spacebar 입니다.

- 전체화면 스캔은 command+shift+3 입니다.
- 영역 스캔은 command+shift+4 입니다.
- 원하는 창의 command+shift+4+spacebar 입니다.

- 커맨드+좌측,우측 화살표는 윈도우즈의 home,end버튼과 같습니다.
- 커맨드+위,아래 화살표는 윈도우즈의 ctrl+home,ctrl+end와 같은듯합니다.

2011년 3월 4일 금요일

groovy로 htmlunit을 사용하기

하루에 몇번씩 확인하는 웹페이지가 있습니다.
로그인절차도 거쳐야 합니다.
매시간 이 웹페이지를 읽어서 메모장에 보여주는 스크립트를 작성해보았습니다.

HtmlUnit 준비

http://htmlunit.sourceforge.net/ 에서 라이브러리를 다운받습니다.

클래스패스

htmlunit 을 사용하기위해서 클래스패스에 관련라이브러리들을 추가해야 합니다.

groovy.home/extlib/htmlunit 폴더를 만들고 관련라이브러리를 모두 복사합니다.

conf/groovy-starter.conf 파일에 아래내용을 추가합니다.
load !{groovy.home}/extlib/htmlunit/*.jar

htmlunit.groovy

import com.gargoylesoftware.htmlunit.WebClient
def client = new WebClient()
client.setJavaScriptEnabled(false)

// 로그인처리
def page = client.getPage('로그인주소')


// 첫번째 폼이 로그인폼일경우 page.forms[0]
def j_username = page.forms[0].getInputByName('j_username') // 아이디 입력필드명
j_username.valueAttribute = '아이디'

def j_password = page.forms[0].getInputByName('j_password') // 암호 입력필드명
j_password.valueAttribute = '암호'

page = page.forms[0].submit() // 폼전송, 로그인처리
// 원하는페이지 가져오기
page = client.getPage('원하는페이지주소')

// 파일로 저장하고 html로 저장하고 싶으면 asXml()사용
new File('result.log').write(page.asText())

// 메모장으로 파일을 열어줍니다.
'notepad.exe result.log'.execute()


에러

Caught: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "org/w3c/dom/NamedNodeMap"
와 같은 에러가 발생하면
/extlib/htmlunit/xml-apis-*.jar 파일을 지워줍니다.

매시간 수행되도록 "제어판>예약된작업" 에 등록합니다.